
petit serveur de chat propulsé par SSH
Un serveur de chat alimenté par SSH avec des canaux publics et privés (sur invitation uniquement)
Chaque canal a un propriétaire qui peut changer sa bannière et inviter des utilisateurs (tout le monde peut rejoindre s'il est public)
Démo avec
ssh [email protected]

Ce projet est très récent pour l'instant, ne vous y fiez pas pour quoi que ce soit de critique.
Pour l'instant, le code est entièrement dans un seul fichier, main.go, mais je prévois de le nettoyer et de le diviser, en particulier la logique des commandes.
Construit avec la stack charm bubbletea/wish
Vous pouvez soit construire le binaire vous-même avec go build, soit utiliser 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
De plus, un fichier docker-compose se trouve dans ce dépôt. Le format du fichier config.toml est :
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 clé SSH est utilisée depuis le chemin : .ssh/id_ed25519" (elles seront créées automatiquement si vous n'en spécifiez pas une).
Si vous voulez que la détection de fuseau horaire basée sur l'IP fonctionne, vous devez télécharger GeoLite2-City.mmdb depuis le site web (il suffit de créer un compte, c'est gratuit) et le mettre à jour de temps en temps.