(Last updated: June 7, 2024)

(See the full image)

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:

This is what made it work for me! Hopefully it works for you, too.