一个基于SSH的聊天服务器,支持公共和私密(仅限邀请)频道
每个频道都有一个所有者,可以更改频道的横幅并邀请用户(如果是公共频道,任何人都可以加入)
通过以下命令体验演示版:
ssh [email protected]

这个项目目前非常新,因此不要将其用于任何关键用途
目前代码都在一个文件 main.go 中,但我计划进行清理和拆分,尤其是命令逻辑部分
使用 charm bubbletea/wish 技术栈构建
你可以使用 go build 自行构建二进制文件,或者使用 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
此外,此仓库中还包含一个 docker-compose 文件。config.toml 文件的格式如下:
Host = "0.0.0.0"
Port = "2222"
ServerName = "isle.chat" # 服务器名称
AdminUsername = "admin" # 管理员用户名(可以在公告频道发帖)
BotUsername = "islebot" # 用于系统消息的机器人用户名
GlobalBanner = "banner" # #global 频道使用的横幅
AnnouncementChannel = "news" # 只读公告频道的名称
DefaultBanner = "banner" # 新频道的默认横幅
WelcomeMessage = "A new user joined for the first time! Welcome @%s. Run /help for information" # 用户加入时发送的消息。%s 是用户名
FilterPublicMessages = false # 是否过滤公共消息中的脏话
RegistrationHeader = "isle.chat registration " # 注册页面顶部显示的文本
DatabaseMode = "sqlite" # 可选 sqlite 或 postgres
PostgresHost = "postgres"
PostgresUser = "islechat"
PostgresPassword = "password"
PostgresDBName = "islechat"
PostgresPort = "5432"
PostgresSSL = "disable"
SSH 密钥从路径 .ssh/id_ed25519 使用(如果你未指定,则会自动创建)。
如果你希望基于IP的时区检测功能正常工作,你需要从网站下载 GeoLite2-City.mmdb 文件(只需注册一个免费账户即可),并定期更新。