Appearance
二进制部署
适用于快速体验或小型团队使用,无需安装 Node.js 开发环境。
前置要求
- 一台 Linux / macOS / Windows 服务器
- 已编译好的服务端二进制文件(或从 releases 下载)
部署步骤
1. 上传服务端文件
将编译好的服务端可执行文件上传到服务器:
bash
scp im-server user@your-server:/opt/im/2. 赋予执行权限
bash
chmod +x /opt/im/im-server3. 启动服务
bash
cd /opt/im
./im-server默认监听端口 3000。
4. 后台运行(推荐)
使用 nohup 或 systemd 保持后台运行:
方式一:nohup
bash
nohup ./im-server > im.log 2>&1 &方式二:systemd
创建服务文件 /etc/systemd/system/im-server.service:
ini
[Unit]
Description=IM Server
After=network.target
[Service]
Type=simple
User=www
WorkingDirectory=/opt/im
ExecStart=/opt/im/im-server
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target启动并设置开机自启:
bash
systemctl daemon-reload
systemctl start im-server
systemctl enable im-server5. 配置反向代理(可选)
使用 Nginx 将域名代理到 IM 服务:
nginx
server {
listen 443 ssl;
server_name chat.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
# REST API
location /api/ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
# WebSocket
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400;
}
}6. 验证
bash
# 检查服务是否启动
curl http://localhost:3000/api/push/public-key
# 应返回类似:
# {"code":200,"publicKey":"..."}注意事项
数据库文件位置
二进制部署模式下,数据库文件默认保存在运行目录下的 data/im.db
权限要求
确保运行目录有读写权限
自定义配置
如需自定义端口或配置,请参考 配置参考