自托管httpSMS教程:Docker一键部署你的私人短信服务

【免费下载链接】httpsms HTTP API for sending and receiving SMS messages using an android phone. 【免费下载链接】httpsms 项目地址: https://gitcode.com/gh_mirrors/ht/httpsms

httpSMS是一款强大的开源工具,它能将你的Android手机转变为短信网关,通过简单的HTTP API发送和接收短信。本教程将带你通过Docker快速部署属于自己的私人短信服务,无需复杂配置,让技术新手也能轻松上手。

httpSMS服务介绍图

为什么选择自托管httpSMS?

自托管httpSMS带来三大核心优势:

  • 数据隐私保护:短信数据完全存储在自己的服务器,避免第三方平台的数据泄露风险
  • 成本控制:无需支付短信网关服务费用,利用现有Android设备即可实现短信收发
  • 自定义灵活:根据需求调整服务配置,支持高级功能如短信加密和Webhook集成

特别适合需要稳定短信服务但对隐私要求高的个人用户和小型企业,尤其适合那些无法使用虚拟号码服务的地区。

准备工作:部署前的环境检查

开始部署前,请确保你的系统满足以下条件:

  • 安装Docker和Docker Compose(推荐Docker 20.10+版本)
  • 至少2GB可用内存和10GB磁盘空间
  • 稳定的网络连接(用于下载Docker镜像和项目代码)
  • 一台Android手机(Android 8.0+系统)用于接收和发送短信

步骤1:获取项目代码

首先克隆httpSMS项目仓库到本地:

git clone https://gitcode.com/gh_mirrors/ht/httpsms
cd httpsms

项目结构清晰,主要包含三个核心部分:

  • api/:后端服务,提供HTTP API接口
  • web/:Web管理界面
  • android/:Android客户端应用

步骤2:配置环境变量

httpSMS需要一些必要的环境变量才能正常运行,我们需要创建两个.env文件:

  1. 配置Web前端环境变量:
cp web/.env.docker web/.env

编辑web/.env文件,填入Firebase配置信息(需要提前在Firebase控制台创建项目)

  1. 配置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

Docker Compose服务架构

步骤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_IDEVENTS_QUEUE_USER_API_KEY字段,然后重启API服务:

docker compose restart api

步骤5:配置Android客户端

  1. 在Android Studio中打开android/项目
  2. 替换android/app/google-services.json文件(从Firebase控制台获取)
  3. 构建APK并安装到你的Android手机
  4. 打开应用,使用在Web界面注册的账号登录
  5. 授予应用短信发送和接收权限

Android应用权限设置

验证服务是否正常运行

服务部署完成后,可以通过以下方式验证:

  1. 访问Web界面(http://localhost:3000)并完成注册
  2. 在Android应用中登录相同账号
  3. 在Web界面发送测试短信:
    • 导航到"Messages"页面
    • 输入目标手机号和短信内容
    • 点击发送,查看Android手机是否收到发送指令

如果一切正常,你的Android手机会立即发送短信,发送状态将同步到Web界面。

高级配置:提升服务可用性

为确保服务稳定运行,建议进行以下配置:

  1. 设置开机自启动
# 创建systemd服务文件
sudo nano /etc/systemd/system/httpsms.service

添加适当的服务配置,确保服务器重启后服务能自动恢复

  1. 数据备份: 定期备份PostgreSQL数据卷,该卷在docker-compose.yml中定义为postgres

  2. 安全加固

  • 修改默认数据库密码(在docker-compose.yml中)
  • 配置反向代理(如Nginx)并启用HTTPS
  • 限制API访问来源IP

常见问题解决

Q: Docker启动后Web界面无法访问?
A: 检查端口是否被占用,可修改docker-compose.yml中web服务的端口映射

Q: 手机收不到发送指令?
A: 确保Firebase配置正确,Android应用已授予所有必要权限,网络连接正常

Q: 如何迁移现有数据?
A: 通过PostgreSQL的pg_dumppg_restore工具迁移数据库数据

总结

通过Docker部署httpSMS,你只需几个简单步骤就能拥有自己的私人短信网关。这个解决方案不仅成本低廉,还能确保短信数据的安全性和隐私性。无论是个人使用还是小型企业需求,httpSMS都能提供可靠的短信API服务。

现在就开始使用httpSMS,释放你的Android手机潜力,打造属于自己的短信服务吧!

【免费下载链接】httpsms HTTP API for sending and receiving SMS messages using an android phone. 【免费下载链接】httpsms 项目地址: https://gitcode.com/gh_mirrors/ht/httpsms

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐