services:
  new-api:
    image: calciumion/new-api:v0.8.7.5
    container_name: ${CONTAINER_NAME}
    restart: always
    ports:
      - ${PANEL_APP_PORT_HTTP}:3000
    networks:
      - 1panel-network
    command: --log-dir /app/logs
    volumes:
      - ./data:/data
      - ./logs:/app/logs
    environment:
      - SQL_DSN=root:${PANEL_DB_ROOT_PASSWORD}@tcp(${CONTAINER_NAME}-mysql:3306)/${PANEL_DB_NAME}  # 修改此行，或注释掉以使用 SQLite 作为数据库
      - TZ=Asia/Shanghai
      - REDIS_CONN_STRING=redis://${CONTAINER_NAME}-redis
      - ERROR_LOG_ENABLED=true # 是否启用错误日志记录
    #      - STREAMING_TIMEOUT=120  # 流模式无响应超时时间，单位秒，默认120秒，如果出现空补全可以尝试改为更大值
    #      - SESSION_SECRET=random_string  # 多机部署时设置，必须修改这个随机字符串！！！！！！！
    #      - NODE_TYPE=slave  # Uncomment for slave node in multi-node deployment
    #      - SYNC_FREQUENCY=60  # Uncomment if regular database syncing is needed
    #      - FRONTEND_BASE_URL=https://openai.justsong.cn  # Uncomment for multi-node deployment with front-end URL
    depends_on:
      - redis
      - mysql
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $$2}'"]
      interval: 30s
      timeout: 10s
      retries: 3
    labels:
      createdBy: "Apps"

  mysql:
    image: mysql:8.2
    container_name: ${CONTAINER_NAME}-mysql
    restart: always
    volumes:
      - mysql_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${PANEL_DB_ROOT_PASSWORD}  # MySQL root用户密码
      - MYSQL_DATABASE=${PANEL_DB_NAME}                # 创建的数据库名
    networks:
      - 1panel-network
    
  redis:
    image: redis:latest
    container_name: ${CONTAINER_NAME}-redis
    restart: always
    networks:
      - 1panel-network

volumes:
  mysql_data:
    
networks:
  1panel-network:
    external: true
