@@ -16,7 +16,7 @@ Nginx / Frontend -- 内网 HTTP --> FastAPI Backend -- Docker 内网 --> Pos
1616TeslaMate Collector -- 内网 --> PostgreSQL + MQTT
1717```
1818
19- 默认生产部署只发布 ` web ` 的 ` WEB_PORT ` 。` api ` 只在 Docker 内网暴露 ` 8000 ` ,TeslaMate 只在 Docker 内网暴露 ` 4000 ` ,PostgreSQL 和 MQTT 也都只在内网可见。` db-init ` 服务会自动创建只读数据库账号,不需要手工执行 SQL。
19+ 默认生产部署只发布 ` web ` 的 ` WEB_PORT ` 。` api ` 只在 Docker 内网暴露 ` 8000 ` ,TeslaMate 只在 Docker 内网暴露 ` 4000 ` ,PostgreSQL 和 MQTT 也都只在内网可见。` database ` 镜像内置首次启动恢复备份脚本, ` db-init ` 服务会自动创建只读数据库账号,不需要手工执行 SQL,也不需要在部署目录额外复制脚本文件 。
2020
2121## 功能
2222
@@ -92,7 +92,6 @@ WEB_PORT=8080
9292BASIC_AUTH_USER=admin
9393BASIC_AUTH_PASSWORD=change-this-password
9494
95- POSTGRES_TAG=18-trixie
9695MOSQUITTO_TAG=2
9796TESLAMATE_TAG=latest
9897TM_ENCRYPTION_KEY=replace-with-a-long-random-encryption-key
@@ -115,6 +114,14 @@ openssl rand -base64 48
115114
116115大陆机器部署前,先在 GitHub Actions 手工运行一次 ` Build and Push Images ` ,把本项目镜像和运行依赖镜像都推送到阿里云镜像仓库。生产 ` compose.yaml ` 默认会从 ` ${IMAGE_REGISTRY}/${IMAGE_NAMESPACE} ` 拉取所有镜像,不再直接依赖 Docker Hub。
117116
117+ 生产部署目录最少只需要这些文件:
118+
119+ - ` compose.yaml `
120+ - ` .env `
121+ - 可选的 TeslaMate 数据库备份文件,例如 ` teslamate.bck `
122+
123+ 恢复备份和创建只读账号的脚本已经打进 ` tesla-dashboard-postgres ` 镜像,不需要额外复制 ` deploy/ ` 目录。
124+
118125### 2. 启动
119126
120127先确认部署机有 Docker Compose v2:
@@ -159,6 +166,18 @@ http://部署机IP:8080
159166
160167如果备份里包含旧的 TeslaMate token,并且 ` TM_ENCRYPTION_KEY ` 也保持一致,那么恢复后通常可以直接继续使用,不需要重新额外配置授权 token。
161168
169+ 完整重建并重新导入备份:
170+
171+ ``` bash
172+ sudo docker compose down -v --remove-orphans
173+ sudo docker compose pull
174+ sudo docker compose up -d database
175+ sudo docker compose logs -f database
176+ sudo docker compose up -d
177+ ```
178+
179+ ` down -v ` 会删除 PostgreSQL 持久化 volume。只有在确认同级目录里的备份文件可用时才执行这条命令。
180+
162181## GitHub Actions 推送到阿里云镜像仓库
163182
164183工作流在 [ .github/workflows/publish.yml] ( .github/workflows/publish.yml ) 。在 GitHub 仓库的 ` Settings -> Secrets and variables -> Actions ` 添加:
@@ -175,6 +194,7 @@ http://部署机IP:8080
175194``` text
176195registry.cn-shenzhen.aliyuncs.com/your-namespace/tesla-dashboard-api:<image_tag>
177196registry.cn-shenzhen.aliyuncs.com/your-namespace/tesla-dashboard-web:<image_tag>
197+ registry.cn-shenzhen.aliyuncs.com/your-namespace/tesla-dashboard-postgres:<image_tag>
178198registry.cn-shenzhen.aliyuncs.com/your-namespace/postgres:18-trixie
179199registry.cn-shenzhen.aliyuncs.com/your-namespace/eclipse-mosquitto:2
180200registry.cn-shenzhen.aliyuncs.com/your-namespace/teslamate:latest
0 commit comments