services:
  sub2api:
    image: weishaw/sub2api:0.2.15
    container_name: ${CONTAINER_NAME}
    restart: always
    networks:
      - 1panel-network
    environment:
      - AUTO_SETUP=true
      - SERVER_HOST=0.0.0.0
      - SERVER_PORT=8080
      - SERVER_MODE=${SERVER_MODE}
      - RUN_MODE=${RUN_MODE}
      - DATABASE_HOST=${PANEL_DB_HOST}
      - DATABASE_PORT=${PANEL_DB_PORT}
      - DATABASE_USER=${PANEL_DB_USER}
      - DATABASE_PASSWORD=${PANEL_DB_USER_PASSWORD}
      - DATABASE_DBNAME=${PANEL_DB_NAME}
      - DATABASE_SSLMODE=disable
      - REDIS_HOST=${PANEL_REDIS_HOST}
      - REDIS_PORT=6379
      - REDIS_PASSWORD=${PANEL_REDIS_ROOT_PASSWORD}
      - REDIS_DB=0
      - ADMIN_EMAIL=${ADMIN_EMAIL}
      - ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
      - JWT_SECRET=${JWT_SECRET}
      - JWT_EXPIRE_HOUR=24
      - TOTP_ENCRYPTION_KEY=${TOTP_ENCRYPTION_KEY}
      - TZ=${TZ}
      - UPDATE_PROXY_URL=${UPDATE_PROXY_URL:-}
    ports:
      - "${PANEL_APP_PORT_HTTP}:8080"
    volumes:
      - ./data:/app/data
    labels:
      createdBy: "Apps"
    healthcheck:
      test: ["CMD", "wget", "-q", "-T", "5", "-O", "/dev/null", "http://localhost:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s

networks:
  1panel-network:
    external: true
