Skip to content

About Servers

ENiGMA½ runs two kinds of server, and the distinction matters because they are configured in different blocks and do different jobs.

A login server is a way for a person to reach your board — it carries a terminal session, hands the user to a first menu, and from there they are on the BBS. Configured under loginServers in config.hjson.

ServerDefault portNotes
Telnet8888Enabled by default. Not secure — credentials cross the wire in the clear
SSH8889Encrypted, supports public key authentication. Needs a host key generated first
WebSocket8810 / 8811Browser access, paired with a client such as VTX

Features that require a secure connection — 2FA/OTP enrolment, uploading an SSH public key — are available over SSH and secure WebSocket, and deliberately blocked over plain Telnet.

A content server exposes parts of the board without a terminal session — message areas to a newsreader, files to a browser, your system to the Fediverse. Configured under contentServers.

ServerDefault portExposes
Web8080 / 8443Temporary file download links, password reset pages, static files, and the routes other handlers register
Gopher8070Message conferences and areas, plus anything in your Gopher hole
NNTP8119 / 8563Message conferences and areas to newsreaders

Two further pieces build on the web server rather than standing alone: the REST API, and the web handlers that add routes — including WebFinger and ActivityPub for Fediverse federation.

At minimum, one login server, or nobody can call. Everything under content servers is opt-in, and every one of them defaults to disabled.

The one that repays enabling early is the web server: password reset links and temporary file download URLs both depend on it, and those are features users notice missing.