
Piccolo server chat basato su SSH
Un server chat basato su SSH con canali pubblici e privati (solo su invito)
Ogni canale ha un proprietario che può cambiarne il banner e invitare utenti (chiunque può unirsi se è pubblico)
Provalo con
ssh [email protected]

Questo progetto è molto recente al momento, quindi non fare affidamento su di esso per nulla di critico
Per ora il codice è tutto in un unico file, main.go, ma ho intenzione di ripulirlo e suddividerlo, soprattutto la logica dei comandi.
Costruito con lo stack bubbletea/wish di charm
Puoi compilare il binario da solo usando go build oppure puoi usare docker.
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
Inoltre nel repository è presente un file docker-compose. Il formato del file config.toml è:
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"
La chiave SSH viene usata dal percorso: .ssh/id_ed25519" (verranno create automaticamente se non ne specifichi una).
Se vuoi che il rilevamento del fuso orario basato su IP funzioni, devi scaricare GeoLite2-City.mmdb dal sito web (basta creare un account, è gratuito) e aggiornarlo di tanto in tanto