-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
75 lines (72 loc) · 3.16 KB
/
Copy pathdocker-compose.yml
File metadata and controls
75 lines (72 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
version: '3.8'
x-sb-proxy-common: &sb-proxy-common
container_name: sb-proxy
network_mode: host
restart: unless-stopped
environment:
- PORT=${PORT:-30000}
- BIND_ADDRESS=${BIND_ADDRESS:-0.0.0.0}
- CONFIG_DIR=${CONFIG_DIR:-/app/config}
- TZ=${TZ:-UTC+8}
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
- SINGBOX_BINARY=${SINGBOX_BINARY:-}
- SBPM_SINGBOX_LOG_OUTPUT=${SBPM_SINGBOX_LOG_OUTPUT:-stdout}
- SBPM_SINGBOX_LOG_MAX_BYTES=${SBPM_SINGBOX_LOG_MAX_BYTES:-10485760}
- SBPM_SINGBOX_LOG_BACKUPS=${SBPM_SINGBOX_LOG_BACKUPS:-3}
- SBPM_SINGBOX_RECOVERY_MAX_ATTEMPTS=${SBPM_SINGBOX_RECOVERY_MAX_ATTEMPTS:-5}
- SBPM_SINGBOX_RECOVERY_BASE_DELAY=${SBPM_SINGBOX_RECOVERY_BASE_DELAY:-1s}
- SBPM_SINGBOX_RECOVERY_MAX_DELAY=${SBPM_SINGBOX_RECOVERY_MAX_DELAY:-30s}
- SBPM_SINGBOX_RECOVERY_STABLE_WINDOW=${SBPM_SINGBOX_RECOVERY_STABLE_WINDOW:-1m}
- CORS_ALLOWED_ORIGINS=${CORS_ALLOWED_ORIGINS:-}
- SBPM_BATCH_CHECK_IP_CONCURRENCY=${SBPM_BATCH_CHECK_IP_CONCURRENCY:-}
- LOGIN_RATE_LIMIT_WINDOW_SECONDS=${LOGIN_RATE_LIMIT_WINDOW_SECONDS:-60}
- LOGIN_RATE_LIMIT_MAX_ATTEMPTS=${LOGIN_RATE_LIMIT_MAX_ATTEMPTS:-10}
- LOGIN_RATE_LIMIT_BLOCK_SECONDS=${LOGIN_RATE_LIMIT_BLOCK_SECONDS:-600}
- HTTP_READ_HEADER_TIMEOUT=${HTTP_READ_HEADER_TIMEOUT:-5s}
- HTTP_READ_TIMEOUT=${HTTP_READ_TIMEOUT:-15s}
- HTTP_WRITE_TIMEOUT=${HTTP_WRITE_TIMEOUT:-30s}
- HTTP_IDLE_TIMEOUT=${HTTP_IDLE_TIMEOUT:-60s}
- HTTP_MAX_HEADER_BYTES=${HTTP_MAX_HEADER_BYTES:-1048576}
- API_MAX_BODY_BYTES=${API_MAX_BODY_BYTES:-1048576}
- ADMIN_SESSION_TTL_HOURS=${ADMIN_SESSION_TTL_HOURS:-168}
- TRUSTED_PROXIES=${TRUSTED_PROXIES:-}
- DATABASE_URL=${DATABASE_URL:-}
- POSTGRES_DATABASE_URL=${POSTGRES_DATABASE_URL:-}
- MYSQL_DATABASE_URL=${MYSQL_DATABASE_URL:-}
- PGSQL=${PGSQL:-}
- MYSQL=${MYSQL:-}
- MYSQL_DATABASE_NAME=${MYSQL_DATABASE_NAME:-}
- DB_MAX_OPEN_CONNS=${DB_MAX_OPEN_CONNS:-10}
- DB_MAX_IDLE_CONNS=${DB_MAX_IDLE_CONNS:-5}
- DB_CONN_MAX_LIFETIME=${DB_CONN_MAX_LIFETIME:-}
- SBPM_INSTANCE_LEASE_DURATION=${SBPM_INSTANCE_LEASE_DURATION:-30s}
- SBPM_INSTANCE_LEASE_HEARTBEAT=${SBPM_INSTANCE_LEASE_HEARTBEAT:-10s}
- TURSO_DATABASE_URL=${TURSO_DATABASE_URL:-}
- TURSO_AUTH_TOKEN=${TURSO_AUTH_TOKEN:-}
- SBPM_UPDATE_CHECK_DISABLED=${SBPM_UPDATE_CHECK_DISABLED:-false}
- SBPM_UPDATE_CHECK_REPO=${SBPM_UPDATE_CHECK_REPO:-cheluen/singbox-proxy-manager}
- SBPM_UPDATE_CHECK_TTL=${SBPM_UPDATE_CHECK_TTL:-6h}
- SBPM_UPDATE_CHECK_TIMEOUT=${SBPM_UPDATE_CHECK_TIMEOUT:-5s}
volumes:
- ${CONFIG_VOLUME_HOST:-./config}:/app/config
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
services:
sb-proxy-ghcr:
<<: *sb-proxy-common
profiles: ["ghcr"]
image: ${GHCR_IMAGE:-ghcr.io/cheluen/singbox-proxy-manager:latest}
pull_policy: always
sb-proxy-local:
<<: *sb-proxy-common
profiles: ["local"]
image: ${LOCAL_IMAGE:-singbox-proxy-manager:local}
build:
context: .
args:
SINGBOX_VERSION: ${SINGBOX_VERSION:-1.12.12}
GOPROXY: ${GO_MODULE_PROXY:-https://proxy.golang.org,direct}
GOSUMDB: ${GO_SUM_DB:-sum.golang.org}