(Last updated: June 7, 2024)
Introduction
Hotline is an old chat protocol, but it offered more than just chat – it also had file transfer and news functionality, too. It’s pretty obscure nowdays, although there are still some diehard fans who have managed to reverse-engineer the line protocol and keep Hotline from falling into oblivion. As far as I can tell, the most active users of Hotline today are connected to the Classic Mac community, such as Mac OS 9 Lives! and System 7 Today.
New Hotline server software is being built to this day, including one called Mobius. The advantage of Mobius is that it’s written in portable Go code, which means that it works very well on platforms beyond the officially supported Mac, Windows and Linux. Read on to learn how I accomplished this on NetBSD/amd64 10.0.
Installation and Setup
The Mobius package is available in pkgsrc as wip/go-mobius
. But if you
don’t have pkgsrc-wip installed, it’s not too difficult to build it from
source yourself. The main caveat is that you need Go 1.22 (lang/go122
),
which comes with only the very newest releases of pkgsrc.
Furthermore, you must ensure to install version 0.12.3 or newer – it contains my patch which allows Mobius to run on NetBSD (and other OSes beyond Mac, Windows and Linux, too).
pkgin install go122
git clone https://github.com/jhalter/mobius
cd mobus
go122 build -o mobius-hotline-server cmd/mobius-hotline-server/main.go
The Mobius server requires a fair bit of runtime bootstrapping, especially
regarding the user database. The easiest way to get started is to duplicate
the example configuration directory and all its contents. If you installed
the wip/go-mobius
package, it’s installed in
/usr/pkg/share/mobius/config
. If you built the server yourself from
source, it’s located in the Git repo under
cmd/mobius-hotline-server/mobius/config
. Indicate your copied directory
with the -config
option to the main program. For example:
mobius-hotline-server \
-config ./config \
-interface "0.0.0.0" \
-log-level debug \
-log-file mobius.log.txt
The example configuration establishes two logins: a superuser with all
permissions called admin
(initial password “admin”), and a regular user
called guest
(no password).
Don’t change the user database files directly. Instead, starting with the
default configuration as-is, log in with your favorite client as admin
.
Then, use your client to adminster changes to user accounts and so forth.
If this is a public server, then some of the first changes you might want to make are:
- change
admin
’s password. - allow those who log in as a
guest
to change their own nickname (this is how many public Hotline servers are set up today).
This is what made it work for me! Hopefully it works for you, too.