自托管httpSMS教程:Docker一键部署你的私人短信服务
httpSMS是一款强大的开源工具,它能将你的Android手机转变为短信网关,通过简单的HTTP API发送和接收短信。本教程将带你通过Docker快速部署属于自己的私人短信服务,无需复杂配置,让技术新手也能轻松上手。[
- 至少2GB可用内存和10GB磁盘空间
- 稳定的网络连接(用于下载Docker镜像和项目代码)
- 一台Android手机(Android 8.0+系统)用于接收和发送短信
步骤1:获取项目代码
首先克隆httpSMS项目仓库到本地:
git clone https://gitcode.com/gh_mirrors/ht/httpsms
cd httpsms
项目结构清晰,主要包含三个核心部分:
步骤2:配置环境变量
httpSMS需要一些必要的环境变量才能正常运行,我们需要创建两个.env文件:
- 配置Web前端环境变量:
cp web/.env.docker web/.env
编辑web/.env文件,填入Firebase配置信息(需要提前在Firebase控制台创建项目)
- 配置API服务环境变量:
cp api/.env.docker api/.env
编辑api/.env文件,设置SMTP邮件服务和Firebase凭据
⚠️ 注意:SMTP服务用于发送系统通知,开发环境可使用mailtrap等测试服务
步骤3:Docker一键启动服务
httpSMS使用Docker Compose管理多个服务组件,包括:
- PostgreSQL数据库(存储短信和用户数据)
- Redis缓存(提高系统性能)
- API服务(核心业务逻辑)
- Web界面(用户操作界面)
只需一条命令即可启动所有服务:
docker compose up --build
首次运行会下载所需的Docker镜像并构建服务,可能需要几分钟时间。成功启动后,你可以通过以下地址访问服务:
- Web界面:http://localhost:3000
- API服务:http://localhost:8000
步骤4:创建系统用户
服务启动后,需要创建系统用户来处理异步事件。通过数据库客户端连接PostgreSQL(默认端口5435),执行以下SQL:
INSERT INTO users (id, api_key, email) VALUES ('your-system-user-id', 'your-system-api-key', 'system@example.com');
将生成的用户ID和API密钥更新到api/.env文件的EVENTS_QUEUE_USER_ID和EVENTS_QUEUE_USER_API_KEY字段,然后重启API服务:
docker compose restart api
步骤5:配置Android客户端
- 在Android Studio中打开android/项目
- 替换
android/app/google-services.json文件(从Firebase控制台获取) - 构建APK并安装到你的Android手机
- 打开应用,使用在Web界面注册的账号登录
- 授予应用短信发送和接收权限
验证服务是否正常运行
服务部署完成后,可以通过以下方式验证:
- 访问Web界面(http://localhost:3000)并完成注册
- 在Android应用中登录相同账号
- 在Web界面发送测试短信:
- 导航到"Messages"页面
- 输入目标手机号和短信内容
- 点击发送,查看Android手机是否收到发送指令
如果一切正常,你的Android手机会立即发送短信,发送状态将同步到Web界面。
高级配置:提升服务可用性
为确保服务稳定运行,建议进行以下配置:
- 设置开机自启动:
# 创建systemd服务文件
sudo nano /etc/systemd/system/httpsms.service
添加适当的服务配置,确保服务器重启后服务能自动恢复
-
数据备份: 定期备份PostgreSQL数据卷,该卷在
docker-compose.yml中定义为postgres卷 -
安全加固:
- 修改默认数据库密码(在
docker-compose.yml中) - 配置反向代理(如Nginx)并启用HTTPS
- 限制API访问来源IP
常见问题解决
Q: Docker启动后Web界面无法访问?
A: 检查端口是否被占用,可修改docker-compose.yml中web服务的端口映射
Q: 手机收不到发送指令?
A: 确保Firebase配置正确,Android应用已授予所有必要权限,网络连接正常
Q: 如何迁移现有数据?
A: 通过PostgreSQL的pg_dump和pg_restore工具迁移数据库数据
总结
通过Docker部署httpSMS,你只需几个简单步骤就能拥有自己的私人短信网关。这个解决方案不仅成本低廉,还能确保短信数据的安全性和隐私性。无论是个人使用还是小型企业需求,httpSMS都能提供可靠的短信API服务。
现在就开始使用httpSMS,释放你的Android手机潜力,打造属于自己的短信服务吧!
更多推荐






所有评论(0)