
pequeno servidor de chat baseado em SSH
Um servidor de chat via SSH com canais públicos e privados (somente para convidados)
Cada canal tem um proprietário que pode alterar seu banner e convidar usuários (qualquer um pode entrar se for público)
Experimente com
ssh [email protected]

Este projeto é muito novo agora, então não confie nele para nada crítico
Por enquanto, o código está todo em um arquivo, main.go, mas estou planejando limpá-lo e dividi-lo, especialmente a lógica dos comandos
Construído usando a stack charm bubbletea/wish
Você pode compilar o binário você mesmo usando go build ou usar o 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
Além disso, um arquivo docker-compose está neste repositório. O formato do arquivo config.toml é:
Host = "0.0.0.0"
Port = "2222"
ServerName = "isle.chat" # Nome do servidor
AdminUsername = "admin" # Nome de usuário do administrador (Pode postar no canal de anúncios)
BotUsername = "islebot" # Nome de usuário do bot para mensagens do sistema
GlobalBanner = "banner" # Banner usado para o canal #global
AnnouncementChannel = "news" # Nome do canal de anúncios somente leitura
DefaultBanner = "banner" # Banner padrão para novos canais
WelcomeMessage = "A new user joined for the first time! Welcome @%s. Run /help for information" # Mensagem enviada quando um usuário entra. %s é o nome de usuário
FilterPublicMessages = false # Se as mensagens públicas devem ser filtradas por palavrões
RegistrationHeader = "isle.chat registration " # Texto exibido no topo da página de registro
DatabaseMode = "sqlite" # Pode ser sqlite ou postgres
PostgresHost = "postgres"
PostgresUser = "islechat"
PostgresPassword = "password"
PostgresDBName = "islechat"
PostgresPort = "5432"
PostgresSSL = "disable"
A chave SSH é usada a partir do caminho: .ssh/id_ed25519" (Elas serão criadas automaticamente se você não especificar uma).
Se você quiser que a detecção de fuso horário baseada em IP funcione, precisa baixar o GeoLite2-City.mmdb do site (você só precisa criar uma conta, é gratuito) e atualizá-lo de vez em quando.