Ctrl K
ComunidadGuías…

docker-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  postgres:
    image: postgres:17-alpine
    container_name: assetpilot-postgres
    restart: unless-stopped
    environment:
      - POSTGRES_DB=assetpilot
      - POSTGRES_USER=assetpilot
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-assetpilot}
    volumes:
      - assetpilot-postgres:/var/lib/postgresql/data

  assetpilot:
    image: es94111/assetpilot:latest
    # 如果要自行建置,取消下一行註解並註解 image:
    # build: .
    container_name: assetpilot
    restart: unless-stopped
    depends_on:
      - postgres
    # 僅綁定 loopback:nginx.conf 透過 Docker 內部網路以服務名稱
    # (http://assetpilot:3000)連線,不需要把 3000 對外發布到所有介面。
    # 對外發布會讓任何人略過 nginx(見 nginx.conf 對 XFF/X-Real-IP 的覆寫)
    # 直連 Node,偽造 X-Forwarded-For 繞過應用層速率限制(AUTH-VULN-06)。
    ports:
      - "127.0.0.1:3000:3000"
    volumes:
      - assetpilot-data:/app/data
    environment:
      - PORT=3000
      - HOSTNAME=0.0.0.0
      - NEXT_TELEMETRY_DISABLED=1
      - DATABASE_URL=${DATABASE_URL:-postgres://assetpilot:assetpilot@postgres:5432/assetpilot}
      - ENV_PATH=/app/data/.env
      - SSL_PATH=/app/data/SSL
      - JWT_EXPIRES=7d
      - APP_JWT_EXPIRES=90d
      - GOOGLE_CLIENT_ID=
      # JWT_SECRET 首次啟動自動產生並寫入 /app/data/.env

# 具名 Volume — Docker 自動管理,資料不會因容器刪除而遺失
volumes:
  assetpilot-data:
    driver: local
  assetpilot-postgres:
    driver: local