SuperAPI AI 工具集

vm-docker

部署与运维

查看项目

更新于 10-15 22:14

技能介绍

用途:在虚拟机(Pop!_OS)上部署 Docker 服务,Web 服务经 Traefik(端口 80)反向代理并注册到 Homepage 仪表盘(根路径 /)。访问域名为 vm.local(mDNS),用于应用的 CMD_DOMAIN/BASE_URL;网络使用外部桥接 traefik-proxy,所有 Web 容器需加入。

主要能力与配置:Traefik 静态配置在 ~/traefik/traefik.yml,按服务路由在 ~/traefik/dynamic/*.yml(自动重载),Homepage 条目在 ~/homepage/config/services.yaml。架构示例:/ 为 Homepage,/hedgedoc、/freshrss、/traefik 分别指向对应服务。crane 位于 ~/go/bin/crane(不在 PATH),Compose 用 docker compose 插件,必须 cd 进服务目录(-f 参数不可用)。

部署步骤:mkdir -p ~/docker/<service>/{data,config};用 ~/go/bin/crane pull <image>:<tag> /tmp/<name>.tar 拉取;docker load -i 加载;写 docker-compose.yml 后 cd 进目录执行 docker compose up -d;创建 Traefik 动态配置;添加 Homepage 条目;用 curl -sI --noproxy '*' http://localhost/<service> 验证。写配置前必须先用 curl 验证每条 URL 与路由,不要假设可用。

注意事项:Traefik 配置用 http://<container>:<port> 而非 localhost;子路径需同时配置 stripPrefix 与应用的 BASE_URL,并检查 CSS/JS 资源;部分 SPA(如 Booklore)不支持子路径,改用直接主机端口并在 Homepage 用 http://172.16.252.7:<port>;CMD_DOMAIN 需与用户实际访问地址一致;由 Traefik 路由时不要暴露主机端口;Traefik 仪表盘需两个路由器(/traefik 用 stripPrefix + api@internal,另加 PathPrefix(/api) → api@internal,勿用 api.basePath);所有路由器设优先级 10;卷路径用绝对路径;认证用 auth@file。更多模板与排错见 @templates.md、@troubleshooting.md 及 references/*.yml。具体收费、价格等信息暂未提供。