首页 > 应用开发 > Go语言 > vocechat-适合个人或企业的开源聊天系统
VoceChat是一款支持独立部署的个人云社交媒体聊天服务。15MB 的大小可部署在任何的服务器上,部署简单,很少需要维护。前端可以内嵌到自己的网站下,数据完全由用户自己掌握,传输过程加密。VoceChat 适用于团队内部交流,个人聊天服务,网站客服,网站内嵌社区的场景。
我们认为 Web 3.0 去中心化的第一步是基于个人云的去平台化,通过个性化的计算与个性化的存储,让个人和组织拥有自己的平台,所以 VoceChat 的定位是能轻易部署在私有云上的社交协作程序。
团队国际化,远程合作,贡献者来自中、美、巴西等地区, VoceChat 是一个开放的、赋能用户的产品,欢迎大家点 star 关注,提 issues,或者以其他形式参与贡献。
本文推荐使用docker容器进行安装部署,部署简单快捷,适合小白。
|
名称 |
技术 |
项目 |
License |
说明 |
|
服务端: |
Rust |
vocechat-server(暂未开源) |
待定 |
聊天服务端,支持主流平台: Linux x86_64, Windows 32/64, Arm32, Arch64 |
|
客户端: |
Flutter |
Apache-2.0 |
聊天客户端,支持 Android, iOS 平台的客户端 | |
|
Web: |
React |
GPL-3.0 |
聊天功能的浏览器版本,整合了管理 | |
|
Web-SDK: |
React |
vocechat-web-sdk(暂未开源) |
GPL-3.0 |
可以整合到其他 Web 产品中,使其赋能聊天功能 |
VoceChat 目前支持两种安装方式:Docker 和 Shell 脚本。你可以根据自己的服务器情况,选择对应的安装方式:
我们推荐使用Docker+Nginx的安装方式
适用于小型设备(比如树莓派、NAS设备),或者想最大化性能
提示
我们推荐使用 Docker 安装,并且开启 https,体验功能更丰富的 VoceChat
重要提示
请确认你的系统架构:默认安装 linux/amd64,如果是 linux/arm64,请拉取privoce/vocechat-server:latest-arm64
提示
假如没有服务器,但是在本地电脑装有 Docker,可以执行以下命令行,快速体验 VoceChat
docker
run -d --restart=always \
-p
3009
:3000 \
--name vocechat-server \
privoce/vocechat-server:latest
浏览器访问: http://localhost:3009/
安装完成后,打开浏览器访问本地ip地址加端口号,按照步骤设置您的服务器:


编辑
提示
请提前准备好一个域名,以下用vocechat.yourdomain.com举例
运行 VoceChat
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 http 反向代理
在 Nginx 配置文件目录(一般在/etc/nginx/conf.d)新建 Nginx 配置文件vocechat.yourdomain.com.conf,并配置好 http 请求:
server
{
server_name
vocechat.yourdomain.com;
location
/ {
proxy_pass
http://127.0.0.1:3009;
# 此处端口号取决于docker运行的对外端口号
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
;
# 关掉硬盘缓存,增加写速度
# SSE 相关配置
proxy_http_version
1.1;
proxy_set_header
Connection
''
;
}
}
检查配置文件的语法: nginx -t ,没问题后,启用新增配置: nginx -s reload 。此时,浏览器访问 http://vocechat.yourdomain.com ,能够进入初始化页面,即为配置成功。
提示
不要忘记设置域名解析
配置 https
基本原理:让 Nginx 监听 443 端口,证书配置在 Nginx,通过 host 转发给 vocechat-server:3009,此时 vocechat-server 接受的依旧是 http。
┌─────────┐ ┌─────────┐ ┌─────────┐
│ │ │ Nginx │ │ │
│ Client ├─────────────────►│ CA ├──────► │ vocechat│
│ │ │ 443 │ │ 3000 │
└─────────┘ └─────────┘ └─────────┘
启用 https 有多种方式,此处我们推荐使用 certbot ,借助 certbot 可以自动生成证书并自动添加到对应域名的 Nginx 配置文件,完成 https 的启用。
Certbot 的使用
访问 Certbot Instructions | Certbot ,请自行选择服务器环境,完成安装:
使用以下命令,certbot 会列出已有的 Nginx 配置,选择对应的域名,获取证书,并让 certbot 自动编辑该 Nginx 配置文件,一键开启 https 访问:
# 如果非root用户,把sudo加上
sudo
certbot certonly --nginx
此时,配置文件vocechat.yourdomain.com.conf已变为:
server
{
server_name
vocechat.yourdomain.com;
location
/ {
proxy_pass
http://127.0.0.1:3009;
# 此处端口号取决于docker运行的对外端口号
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
;
# 关掉硬盘缓存,增加写速度
# SSE 相关配置
proxy_http_version
1.1;
proxy_set_header
Connection
''
;
}
listen
443
ssl;
# managed by Certbot
ssl_certificate
/etc/letsencrypt/live/vocechat.yourdomain.com/fullchain.pem;
# managed by Certbot
ssl_certificate_key
/etc/letsencrypt/live/vocechat.yourdomain.com/privkey.pem;
# managed by Certbot
include
/etc/letsencrypt/options-ssl-nginx.conf;
# managed by Certbot
ssl_dhparam
/etc/letsencrypt/ssl-dhparams.pem;
# managed by Certbot
}
server
{
if
(
$host
= vocechat.yourdomain.com) {
return
301
https://
$host$request_uri
;
}
# managed by Certbot
listen
80
;
server_name
vocechat.yourdomain.com;
return
404
;
# managed by Certbot
}
重载 Nginx 配置( nginx -s reload )之后,此时,浏览器访问 http://vocechat.yourdomain.com 会自动切换为 https,即 https://vocechat.yourdomain.com
提示
如果你的服务器没有被其它服务占用 https 端口(即 443),可以考虑该方式,否则,请参考 Docker + Nginx
vocechat-server 支持自动申请 https 证书(借助 CertBot ),使用该部署方式有两个前提:
mkdir
-p ~/.vocechat-server/data
docker
run -d --restart=always \
-p
443
:443 \
--name vocechat-server \
-v ~/.vocechat-server/data:/home/vocechat-server/data \
privoce/vocechat-server:latest \
--network.bind
"0.0.0.0:443"
\
--network.domain
"vocechat.yourdomain.com"
\
--network.tls.type
"acme_tls_alpn_01"
\
--network.tls.acme.cache_path
"/home/vocechat-server/data/cert"
参数说明:
访问: https://vocechat.yourdomain.com/ ,完成初始化 。
如果 80/443 端口被 Nginx 占用, 请参考 Docker + Nginx
docker stop vocechat-server
docker logs -f vocechat-server
cp -rf ~/.vocechat-server/data ~/.vocechat-server/backup
docker
stop vocechat-server
docker
rm
vocechat-server
docker
pull privoce/vocechat-server:latest
# 这里改为自己之前部署执行过的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"
docker
exec -it vocechat-server /bin/sh
cd /home/vocechat-server/data
部署成功 vocechat,并且已完成初始化工作,可以继续安装使用我们的移动 APP,具体使用请移步: 使用 VoceChat APP ;还可以很方便地借助挂件,把聊天场景拓展到任意网站。具体请参看 使用挂件
提示
如需要帮助,请在官网联系我们: voce.chat ,如需合作请 email: han@privoce.com
提示
在安装的过程中,会询问绑定的端口,域名,和是否启用 TLS(会自动申请证书)。 这里要注意的是,如果你要开启 TLS,那么端口必须为 443,也就意味着你的 vocechat-server 必须独占 443。
curl -sSf https://s.voce.chat/install.sh | sh
/etc/init.d/vocechat-server.sh start
/etc/init.d/vocechat-server.sh stop
/etc/init.d/vocechat-server.sh log
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026958/viewspace-2936156/ ,如需转载,请注明出处,否则将追究法律责任。