Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
陈曦
sub2api
Commits
bff3c66d
Commit
bff3c66d
authored
Dec 30, 2025
by
yangjianbo
Browse files
feat: 增加测试用docker compose配置文件
parent
2ea4dafa
Changes
1
Hide whitespace changes
Inline
Side-by-side
deploy/docker-compose-test.yml
0 → 100644
View file @
bff3c66d
# =============================================================================
# Sub2API Docker Compose Configuration
# =============================================================================
# Quick Start:
# 1. Copy .env.example to .env and configure
# 2. docker-compose up -d
# 3. Check logs: docker-compose logs -f sub2api
# 4. Access: http://localhost:8080
#
# All configuration is done via environment variables.
# No Setup Wizard needed - the system auto-initializes on first run.
# =============================================================================
services
:
# ===========================================================================
# Sub2API Application
# ===========================================================================
sub2api
:
image
:
sub2api:latest
container_name
:
sub2api
restart
:
unless-stopped
ports
:
-
"
${BIND_HOST:-0.0.0.0}:${SERVER_PORT:-8080}:8080"
volumes
:
# Data persistence (config.yaml will be auto-generated here)
-
sub2api_data:/app/data
environment
:
# =======================================================================
# Auto Setup (REQUIRED for Docker deployment)
# =======================================================================
-
AUTO_SETUP=true
# =======================================================================
# Server Configuration
# =======================================================================
-
SERVER_HOST=0.0.0.0
-
SERVER_PORT=8080
-
SERVER_MODE=${SERVER_MODE:-release}
-
RUN_MODE=${RUN_MODE:-standard}
# =======================================================================
# Database Configuration (PostgreSQL)
# =======================================================================
-
DATABASE_HOST=postgres
-
DATABASE_PORT=5432
-
DATABASE_USER=${POSTGRES_USER:-sub2api}
-
DATABASE_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}
-
DATABASE_DBNAME=${POSTGRES_DB:-sub2api}
-
DATABASE_SSLMODE=disable
# =======================================================================
# Redis Configuration
# =======================================================================
-
REDIS_HOST=redis
-
REDIS_PORT=6379
-
REDIS_PASSWORD=${REDIS_PASSWORD:-}
-
REDIS_DB=${REDIS_DB:-0}
# =======================================================================
# Admin Account (auto-created on first run)
# =======================================================================
-
ADMIN_EMAIL=${ADMIN_EMAIL:-admin@sub2api.local}
-
ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
# =======================================================================
# JWT Configuration
# =======================================================================
# Leave empty to auto-generate (recommended)
-
JWT_SECRET=${JWT_SECRET:-}
-
JWT_EXPIRE_HOUR=${JWT_EXPIRE_HOUR:-24}
# =======================================================================
# Timezone Configuration
# This affects ALL time operations in the application:
# - Database timestamps
# - Usage statistics "today" boundary
# - Subscription expiry times
# - Log timestamps
# Common values: Asia/Shanghai, America/New_York, Europe/London, UTC
# =======================================================================
-
TZ=${TZ:-Asia/Shanghai}
# =======================================================================
# Gemini OAuth Configuration (for Gemini accounts)
# =======================================================================
-
GEMINI_OAUTH_CLIENT_ID=${GEMINI_OAUTH_CLIENT_ID:-}
-
GEMINI_OAUTH_CLIENT_SECRET=${GEMINI_OAUTH_CLIENT_SECRET:-}
-
GEMINI_OAUTH_SCOPES=${GEMINI_OAUTH_SCOPES:-}
depends_on
:
postgres
:
condition
:
service_healthy
redis
:
condition
:
service_healthy
networks
:
-
sub2api-network
healthcheck
:
test
:
[
"
CMD"
,
"
curl"
,
"
-f"
,
"
http://localhost:8080/health"
]
interval
:
30s
timeout
:
10s
retries
:
3
start_period
:
30s
# ===========================================================================
# PostgreSQL Database
# ===========================================================================
postgres
:
image
:
postgres:18-alpine
container_name
:
sub2api-postgres
restart
:
unless-stopped
volumes
:
-
postgres_data:/var/lib/postgresql/data
environment
:
-
POSTGRES_USER=${POSTGRES_USER:-sub2api}
-
POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}
-
POSTGRES_DB=${POSTGRES_DB:-sub2api}
-
TZ=${TZ:-Asia/Shanghai}
networks
:
-
sub2api-network
healthcheck
:
test
:
[
"
CMD-SHELL"
,
"
pg_isready
-U
${POSTGRES_USER:-sub2api}
-d
${POSTGRES_DB:-sub2api}"
]
interval
:
10s
timeout
:
5s
retries
:
5
start_period
:
10s
# 注意:不暴露端口到宿主机,应用通过内部网络连接
# 如需调试,可临时添加:ports: ["127.0.0.1:5433:5432"]
# ===========================================================================
# Redis Cache
# ===========================================================================
redis
:
image
:
redis:7-alpine
container_name
:
sub2api-redis
restart
:
unless-stopped
volumes
:
-
redis_data:/data
command
:
>
redis-server
--save 60 1
--appendonly yes
--appendfsync everysec
${REDIS_PASSWORD:+--requirepass ${REDIS_PASSWORD}}
environment
:
-
TZ=${TZ:-Asia/Shanghai}
# REDISCLI_AUTH is used by redis-cli for authentication (safer than -a flag)
-
REDISCLI_AUTH=${REDIS_PASSWORD:-}
networks
:
-
sub2api-network
healthcheck
:
test
:
[
"
CMD"
,
"
redis-cli"
,
"
ping"
]
interval
:
10s
timeout
:
5s
retries
:
5
start_period
:
5s
# =============================================================================
# Volumes
# =============================================================================
volumes
:
sub2api_data
:
driver
:
local
postgres_data
:
driver
:
local
redis_data
:
driver
:
local
# =============================================================================
# Networks
# =============================================================================
networks
:
sub2api-network
:
driver
:
bridge
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment