
Winziger, auf SSH basierender Chat-Server
Ein SSH-betriebener Chat-Server mit öffentlichen und privaten (nur auf Einladung) Kanälen
Jeder Kanal hat einen Besitzer, der dessen Banner ändern und Benutzer einladen kann (jeder kann beitreten, wenn er öffentlich ist)
Demo mit
ssh [email protected]

Dieses Projekt ist derzeit noch sehr neu, also verlassen Sie sich nicht für kritische Dinge darauf.
Der Code befindet sich derzeit noch in einer Datei, main.go, aber ich plane, ihn zu bereinigen und aufzuteilen, insbesondere die Befehlslogik.
Erstellt mit dem Charm Bubbletea/Wish-Stack
Sie können die Binärdatei entweder selbst mit go build erstellen oder Docker verwenden.
docker run -t -i -p 2222:2222 -e CLICOLOR_FORCE=1 -e COLORTERM=truecolor -e TERM=xterm-256color --tmpfs /tmp -v ./ssh_keys/id_ed25519:/home/islechat/app/.ssh/id_ed25519:ro -v ./config.toml:/home/islechat/config.toml ashfn0/islechat
Zusätzlich befindet sich eine docker-compose-Datei in diesem Repository. Das Format der config.toml-Datei ist:
Host = "0.0.0.0"
Port = "2222"
ServerName = "isle.chat" # Name of the server
AdminUsername = "admin" # Admin's username (Can post in the announcement channel)
BotUsername = "islebot" # Username of the bot for system messages
GlobalBanner = "banner" # Banner used for the #global channel
AnnouncementChannel = "news" # Name of read-only announcement channel
DefaultBanner = "banner" # Default banner for new channels
WelcomeMessage = "A new user joined for the first time! Welcome @%s. Run /help for information" # Message sent when a user joins. %s is the username of the user
FilterPublicMessages = false # Whether or not public messages should be filtered for profanity
RegistrationHeader = "isle.chat registration " # Text shown at top of registration page
DatabaseMode = "sqlite" # Either sqlite or postgres
PostgresHost = "postgres"
PostgresUser = "islechat"
PostgresPassword = "password"
PostgresDBName = "islechat"
PostgresPort = "5432"
PostgresSSL = "disable"
Der SSH-Schlüssel wird aus dem Pfad .ssh/id_ed25519 verwendet (Sie werden automatisch erstellt, wenn Sie keinen angeben).
Wenn Sie die IP-basierte Zeitzonenerkennung nutzen möchten, müssen Sie GeoLite2-City.mmdb von der Website herunterladen (Sie müssen nur ein Konto erstellen, es ist kostenlos) und es gelegentlich aktualisieren.