sitebox一体化部署
非容器模式 前端部署 后端部署 容器模式 在一个 VPS 上部署前后端时,最科学、最省资源的方案是:利用前端容器自带的 Nginx 兼职做全站反代。 在这种情况下,只需要 一个 Nginx(即前端容器里的那个) 就可以处理所有事情:发送 HTML、解决 SPA 路由、转发 API 请求。 以下是针对“同机部署”的两种模板: 方案一:本地构建模式 (Build 模式) 适用场景:你在 VPS 上拉取了源码,想直接根据源码生成镜像并运行。 📂 目录结构 /opt/sitebox/ ├── frontend/ # 前端源码 (含 Dockerfile 和 nginx.conf) ├── backend/ # 后端源码 (含 Dockerfile 和 server.node.js) └── docker-compose.yml 🚀 docker-compose.yml (Build) version: '3.8' services: # 前端:既是网页服务器,也是 API 网关 frontend: build: context: ./frontend dockerfile: Dockerfile container_name: sitebox-frontend restart: always ports: - "80:80" # 外部通过 80 端口访问整个项目 environment: - BACKEND_PROTO=http - BACKEND_ADDR=backend:3000 # 使用内部服务名,流量不走公网,安全且快 - BACKEND_HOST=backend networks: - sitebox-net # 后端:纯 API 服务 backend: build: context: ./backend dockerfile: Dockerfile container_name: sitebox-backend restart: always expose: - "3000" # 端口只对容器开放 # ports: # - "3000:3000" # 端口对公网开放,比如给插件使用 environment: - PORT=3000 - DB_PATH=/app/data/db/sitebox.db - DEPLOY_MODE=docker # 如果要同步到github这下面三个参数是必填项 - GITHUB_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxx - GITHUB_REPO=xxxxxx/yyyyyyyy - GITHUB_PATH=backup_json/backup.json volumes: - ./data/db:/app/data/db # 持久化数据库 networks: - sitebox-net networks: sitebox-net: driver: bridge 方案二:远程镜像模式 (Image 模式) 适用场景:已经在本地打包好镜像推送到 Docker Hub,VPS 只需要一行命令直接起飞。 ...