From: V510UEFS "Kevin Lyda"
Date: 16-MAY-2025 16:13
Subj: Go version of BULLETIN

This is the Go port of BULLETIN based on the original FORTRAN BULLETIN
at version 2.07.

The Go port lacks news, mailing list and mail functionality. In addition
remote folders are not supported.  Commands and flags related to those
haven't been implemented.  In addition, it just uses a basic text editor,
not an editor like EDT.  Though I'm open to implementing one.

Several commands accepted files or allowed messages to be put in files.
All the file related functionality has been removed.

The PRINT command has been implemented, but it depends on a terminal
emulator implementing the passtrhru printing codes.  Most do not.

However the rest of BULLETIN works.  There are message boards, you can
add and read messages in them.  Not all the commands work yet, but they
are being added.

A mail system like VMS mail might be added.  Additional enhancements
being considered are:

  * Tab completion (partially works - only for commands).
  * Code highlighting.
  * Better editor options (current one is a stripped down tview example).

All of this should work as an unprivileged user and only need a single
binary that is started via an ssh connection.

Future enhancements that might need a daemon to run (as the unprivileged
user):

  * Remote folder support - possibly using something like activitypub?
  * An account signup system accessible via telnet.

To install this just run the following (assumes the go bin directory is
in your path):

    bulletin$ go install git.lyda.ie:kevin/bulletin@latest
    bulletin$ bulletin -u SYSTEM -b install

It will ask you for an initial account and seed the GENERAL board with
historical messages and this one.  It will also make disabled accounts.

It will create a crontab for the user it is run as and the following files:

  * ~/.bulletin-installed - a touch file to make sure install only
    runs once.
  * ~/.local/share/BULLETIN/bulletin.db - contains all the messages
    and users.
  * ~/.ssh/authorized_keys - keys are added and removed from here to
    let users connect.

Kevin
