目录导读
- 为什么选择SafeW私有部署?
从数据主权、隐私保护与成本控制角度解析私有部署的核心优势。 - 部署前的准备工作
服务器选型、域名解析、端口规划,以及必要工具的安装。 - 环境依赖与系统要求
Docker、Nginx、数据库等组件的版本兼容性与配置建议。 - 详细安装步骤解析
从获取安装包到服务启动,每一步均附带验证命令与常见报错处理。 - 配置优化与安全加固
HTTPS证书部署、日志审计、防火墙规则及备份策略。 - 常见问题与解答(QA)
覆盖数据库连接失败、内存溢出、客户端无法登录等高频问题。
为什么选择SafeW私有部署?
在企业协同办公与即时通讯场景中,数据安全始终是第一优先级,SafeW作为一款端到端加密的聊天应用,提供了公有云与私有化两种部署模式,而私有部署意味着所有用户数据、聊天记录、文件传输均存储在你自己的服务器上,彻底规避第三方平台泄露风险,对于金融、医疗、政府等合规要求严格的行业,这一能力至关重要。

私有部署还能实现完全自定义的品牌形象——你可以修改登录页LOGO、启动壁纸,甚至集成企业已有的LDAP/AD认证系统,成本方面,按需购买服务器资源,长期来看比按人头付费的SaaS方案更经济。
提示:如果你正在寻找稳定可靠的聊天应用私有化方案,不妨先访问 SafeW下载 获取最新的安装包与官方文档。
部署前的准备工作
在开始安装之前,请确保你具备以下条件:
- 一台Linux服务器(推荐Ubuntu 20.04/22.04 LTS或CentOS 7/8),至少2核4G内存,50G SSD硬盘。
- 一个域名(
chat.yourcompany.com)并解析到服务器公网IP。 - 开放的端口:80(HTTP)、443(HTTPS)、3478(TURN服务)、5349(TURN/TLS)、6000-6001(WebRTC媒体端口)。
- 系统工具:
curl、wget、git、vim或nano。
建议提前注册一个docker hub账号用于拉取镜像,或者将SafeW官方提供的离线镜像包准备好,所有操作建议使用 root 用户或拥有 sudo 权限的普通用户执行。
环境依赖与系统要求
SafeW私有部署基于容器化架构,核心依赖如下:
| 组件 | 版本要求 | 作用 |
|---|---|---|
| Docker | 10+ | 容器运行时环境 |
| Docker Compose | x+ | 多容器编排工具 |
| Nginx | 18+ | 反向代理与SSL终结 |
| PostgreSQL | 12+(内置容器) | 主数据库存储用户与消息 |
| Redis | 6+(内置容器) | 缓存与实时消息队列 |
注意:不要在生产环境直接用
docker run启动数据库裸容器,应使用docker-compose.yml统一管理,SafeW官方提供的部署脚本会自动拉取依赖,但你需确保服务器能访问hub.docker.com,若处于内网环境,请参照 SafeW私有部署教程 中的离线部署章节。
快速安装Docker
curl -fsSL https://get.docker.com | bash sudo systemctl enable docker && sudo systemctl start docker sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
详细安装步骤解析
1 获取SafeW安装包
前往 SafeW下载 页面,根据你的系统架构选择对应的压缩包(通常为 safew-server-x.x.x.tar.gz),你也可以直接用 wget 从官方源拉取:
wget https://safew-tw.com.cn/download/safew-server-latest.tar.gz tar -xzf safew-server-latest.tar.gz cd safew-server
2 配置环境变量
复制样例配置文件并编辑:
cp .env.example .env vim .env
关键参数说明:
DOMAIN:填写你的域名,chat.yourcompany.comADMIN_EMAIL:管理员邮箱,用于SSL证书邮件通知POSTGRES_PASSWORD:数据库密码,建议16位以上随机字符串TURN_SECRET:TURN服务共享密钥,同样生成高强度密码
3 一键启动
执行以下命令完成所有容器构建与启动:
./safew.sh install
该脚本会自动完成:拉取镜像 → 创建网络 → 启动数据库、Redis → 运行Web服务 → 申请Let's Encrypt证书 → 启动TURN(用于P2P穿透)→ 最后展示管理员登录地址。
验证:使用 docker ps 查看所有容器是否均处于 Up 状态,若一切正常,访问 https://你的域名 即可看到SafeW登录页面。
4 首次登录与初始化
使用 .env 中设置的邮箱和密码登录(初始密码在脚本输出中,或查看 /opt/safew/admin_init.log),登录后进入后台面板,执行:
- 创建用户/导入组织架构
- 配置聊天记录保留时间
- 开启端到端加密(默认已启用)
配置优化与安全加固
1 HTTPS证书续期
SafeW部署脚本内置certbot,证书每90天自动续期,你可以设置cron定时任务:
crontab -e # 添加以下内容,每月1日凌晨2点检查 0 2 1 * * /usr/bin/docker exec safew_web certbot renew
2 防火墙规则
仅开放必要端口,用 ufw 或 iptables 限制:
ufw default deny incoming ufw allow 22/tcp # SSH ufw allow 443/tcp # HTTPS ufw allow 3478/udp # TURN ufw allow 5349/tcp # TURN/TLS ufw enable
3 数据库与日志备份
建议每周全量备份PostgreSQL数据库:
docker exec safew_db pg_dump -U safew safew > /backup/safew_$(date +%Y%m%d).sql
日志文件默认存储在 /var/log/safew/,可配置logrotate按天压缩。
常见问题与解答(QA)
Q1:部署完成后,客户端一直显示“连接中”怎么办?
A:首先检查服务器安全组/防火墙是否放行了3478(UDP)和5349(TCP)端口,在服务器上执行 telnet 你的域名 443 确保443可达,如果使用了CDN,需确认WebSocket功能已开启,若仍有问题,请参考 SafeW聊天应用 官方论坛的排错帖子。
Q2:如何更换默认的PostgreSQL数据库为外部数据库?
A:编辑 .env 文件,将 DB_HOST 改为外部数据库IP,并修改 DB_PORT、DB_USER、DB_PASSWORD 参数,注意外部数据库需提前创建好 safew 数据库并授予权限,且字符集必须为 UTF8MB4。
Q3:私有部署后,手机APP如何配置服务器地址?
A:打开SafeW手机APP,在登录页点击左上角“设置”图标,选择“私有服务器”,输入你的域名(如 https://chat.yourcompany.com)即可。注意:请确保APP版本不低于2.3.0,否则可能无法识别私有部署。
Q4:如果忘记管理员密码,如何重置?
A:登录到服务器,执行以下命令进入数据库容器:
docker exec -it safew_db psql -U safew -d safew UPDATE users SET password = '新密码的bcrypt哈希值' WHERE email = 'admin@yourcompany.com';
新密码的bcrypt哈希可使用在线工具生成,或通过Python脚本 python3 -c "import bcrypt; print(bcrypt.hashpw(b'newpass', bcrypt.gensalt()))" 获得。
Q5:如何升级到最新版本?
A:首先停止服务:./safew.sh stop,然后备份数据库与配置,接着下载新版安装包并解压覆盖原目录,重新执行 ./safew.sh install,升级脚本会自动识别已有数据并保留配置,注意:大版本升级前务必阅读官方更新日志,以免API不兼容。
通过以上步骤,你已成功搭建了属于自己的SafeW私有化聊天平台,无论是内部协作还是对外服务,数据始终掌握在自己手中,如果在部署过程中遇到任何其他难题,欢迎随时查阅 SafeW下载 页面提供的完整手册或提交工单获取支持。
