工具 开源、安全、轻量、可私有部署的聊天程序 VoceChat

介绍​

VoceChat 是基于 React & Redux Toolkit 的开源聊天软件,相比于主打安全轻量且开源的 Telegram 而言,它最大的亮点便是支持私有部署。这种“去中心化”的思想十分类似于效仿 Twitter 的 Mastodon,也或许是未来互联网的发展方向。

除了 Web 端,这个程序还有 Android 与 iOS 客户端,且支持信息推送,因此基本上可以在聊天功能上替代其他软件了。


部署​

部署该程序主要通过 Docker 来实现,一般选择使用 Docker+nginx 反代的方式实现外部访问。

该程序默认端口为 3000,下面的默认代码中会将容器 3000 端口映射为 3009,并反代到 "https://vocechat.yourdomain.com"

Docker 运行命令:

代码:
docker run -d --restart=always \
  -p 3009:3000 \
  --name vocechat-server \
  -v ~/.vocechat-server/data:/home/vocechat-server/data \
  privoce/vocechat-server:latest \
--network.frontend_url "https://vocechat.yourdomain.com"

nginx 配置:

NGINX:
server{
  server_name vocechat.yourdomain.com;
  location / {
        proxy_pass http://127.0.0.1:3009; # this port number "3009" should be the same as the port of the vocechat docker image
        proxy_redirect off;
        proxy_set_header        Host    $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0; # this line aims to maximize the writing speed
        # SSE Configrations
        proxy_http_version 1.1;
        proxy_set_header Connection '';
    }
}
当然你也可以直接使用宝塔面板的反代功能

至此,部署 VoceChat 的任务基本已经完成。剩下的操作可以直接通过访问程序 URL 继续。