ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Open Wearables生产部署完全指南:Docker与Railway实战及安全加固清单

Open Wearables生产部署完全指南:Docker与Railway实战及安全加固清单 Open Wearables生产部署完全指南Docker与Railway实战及安全加固清单【免费下载链接】open-wearablesSelf-hosted platform to unify wearable health data through one AI-ready API.项目地址: https://gitcode.com/gh_mirrors/op/open-wearablesOpen Wearables 是一个自托管平台通过统一的 AI-ready API 整合各类可穿戴设备的健康数据。本文带你完成 Open Wearables 部署从 Docker Compose 生产级搭建到 Railway 一键托管最后给出一份可直接照做的安全加固清单确保你的实例上线即安全。Open Wearables 生产部署架构一览一次典型部署由应用容器与配套服务组成所有后端角色API、Celery worker、beat、flower共用同一个后端镜像仅靠启动脚本区分角色组件作用端口appFastAPI API 服务启动时自动执行数据库迁移与种子脚本8000celery-worker后台任务数据同步、Webhook 处理—celery-beat定时调度周期性同步—frontendReact 前端面板Nitro 服务3000PostgreSQL 18主数据库5432Redis 8Celery 消息队列与缓存6379flower可选Celery 监控面板5555svix-server可选仅在启用出站 Webhook 时需要8071下图展示了数据从设备、SDK 到 API 与 Webhook 的完整流转路径理解它有助于你规划反向代理与端口暴露策略⚠️ 仓库根目录的 docker-compose.yml 是开发环境配置从本地源码构建、硬编码数据库口令。生产部署请基于官方发布的镜像编写自己的编排文件。Docker 生产部署三步拉起完整服务栈镜像标签怎么选Open Wearables 发布两个生产镜像后端open-wearables-backend与前端open-wearables-frontend。生产环境请固定精确版本标签如0.7.0避免使用latest或nightly确保部署可复现、升级可控。标签指向适用场景版本号如0.7.0该次发布不可变生产环境首选latest最新稳定版快速试用nightlymain最新构建测试未发布变更切勿用于生产一键启动步骤准备配置将 backend/config/.env.example 复制为 Compose 文件旁的.env至少覆盖这些生产值变量建议值ENVIRONMENTproductionDB_PASSWORD高强度数据库密码SECRET_KEY长随机字符串用于 JWT 签名ADMIN_PASSWORD首次启动种管的管理员密码CORS_ORIGINS你的前端域名如[https://app.example.com]API_BASE_URL/FRONTEND_URLAPI 与前端的公网地址VITE_API_URL浏览器访问 API 的地址前端变量手动追加到.env拉取镜像并启动docker compose pull docker compose up -d验证服务app容器会先执行迁移与种子脚本见 backend/scripts/start/app.sh首次启动稍慢属正常现象。docker compose ps # db 应为 Up (healthy) curl -fsS http://localhost:8000/openapi.json /dev/null echo OK浏览器打开http://localhost:3000看到登录页即部署成功。前端 API 地址的运行时注入前端镜像无需为不同后端重新构建Nitro 服务在请求时读取VITE_API_URL环境变量并注入页面同一镜像可指向任意后端。该逻辑位于 frontend/src/lib/api/runtime-config.ts。下图是应用与 Open Wearables 之间的云 Provider 集成流程API_BASE_URL正是其中 OAuth 回调地址的来源配置错误会导致 Garmin、Oura 等授权失败Railway 一键部署最快速的上线路径不想维护服务器Railway 模板可一次预配置全部 7 个服务PostgreSQL、Backend、Frontend、Redis、Celery Worker、Celery Beat、Flower服务间网络与环境变量自动注入无需手动搭建基础设施。详细文档见 docs/deployment/railway.mdx。部署后必做的两件事配置 Provider OAuth 凭据在 Backend 服务中按需添加各厂商的 Client ID/Secret只配置你要用的设备厂商即可。绑定自定义域名可选默认*.up.railway.app域名可用于试用绑定自己的域名后记得同步更新VITE_API_URLFrontend与CORS_ORIGINSBackend否则前后端会因跨域失败。 首次启动会自动创建管理员账号仅当尚无任何开发者账号时。若使用了默认凭据请务必在首次登录后立即从开发者门户修改密码后续账号通过门户邀请添加。安全加固清单上线前逐项打勾健康数据是高度敏感的个人数据以下清单覆盖 Open Wearables 部署中所有关键安全点建议逐项核对SECRET_KEY换成 64 位以上随机串它是 JWT 签名密钥示例文件中的默认值secret-key-str绝不能用于生产。可用python3 -c import secrets; print(secrets.token_urlsafe(64))生成DB_PASSWORD、ADMIN_PASSWORD使用高强度密码且不在代码仓库中明文提交锁定镜像版本标签禁止生产环境使用latest/nightly收紧CORS_ORIGINS到仅前端域名保持CORS_ALLOW_ALLfalseTLS 全链路API 与前端置于反向代理之后启用 HTTPS不要直接暴露8000/3000容器端口Redis 加密码或启用 TLS托管 Redis如 ElastiCache、Upstash开启传输加密时将REDIS_SSL设为true并配置REDIS_PASSWORDProvider Webhook 密钥单独生成如WITHINGS_WEBHOOK_TOKEN用openssl rand -hex 32生成启用出站 Webhook 时确认SVIX_JWT_SECRET已独立设置启用 Sentry 监控配置SENTRY_DSN便于第一时间发现异常相关逻辑见 backend/app/integrations/sentry.py发现安全漏洞时请通过项目安全政策联系维护者勿公开披露参见 SECURITY.mdSDK 移动端接入时app_secret只保存在你自己的后端、经认证 API 转发令牌绝不下发到手机 App令牌过期后 SDK 自动刷新这套机制保证了凭据最小暴露面常用运维命令速查场景命令/位置构建并启动开发环境make run基于 Makefile应用全部数据库迁移make migrateAlembicupgrade head回滚上一次迁移make downgrade查看迁移脚本backend/migrations/versions/官方部署文档docs/deployment/docker.mdx · docs/deployment/railway.mdx环境变量全量参考backend/config/.env.example小结生产部署的要点可以浓缩为三句话——固定镜像版本、把.env.example中所有默认值替换为强密钥、用反向代理提供 TLS。完成上述 Docker 或 Railway 路径加安全清单后你就拥有了一个可对外服务的 Open Wearables 健康数据平台。【免费下载链接】open-wearablesSelf-hosted platform to unify wearable health data through one AI-ready API.项目地址: https://gitcode.com/gh_mirrors/op/open-wearables创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表