
Pequeño servidor de chat impulsado por SSH
Un servidor de chat con tecnología SSH con canales públicos y privados (solo por invitación)
Cada canal tiene un propietario que puede cambiar su banner e invitar usuarios (cualquiera puede unirse si es público)
Pruébalo con
ssh [email protected]

Este proyecto es muy nuevo ahora mismo, así que no confíes en él para nada crítico
Por ahora el código está todo en un solo archivo, main.go, pero planeo limpiarlo y dividirlo, especialmente la lógica de comandos
Construido con el stack charm bubbletea/wish
Puedes compilar el binario tú mismo usando go build o puedes usar 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
Además, hay un archivo docker-compose en este repositorio. El formato del archivo config.toml es:
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 clave SSH se usa desde la ruta: .ssh/id_ed25519" (se crearán automáticamente si no especificas una).
Si quieres que la detección de zona horaria basada en ip funcione, necesitas descargar GeoLite2-City.mmdb desde el sitio web (solo tienes que crear una cuenta, es gratis) y actualizarlo de vez en cuando