-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
109 lines (106 loc) · 5.34 KB
/
Copy pathdocker-compose.yml
File metadata and controls
109 lines (106 loc) · 5.34 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
x-logging: &default-logging
driver: json-file
options:
max-size: "10m"
max-file: "3"
services:
flowmusic2api:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
security_opt:
- no-new-privileges:true
logging: *default-logging
ports:
- "${FLOWMUSIC_HTTP_BIND:-127.0.0.1}:${FLOWMUSIC_HTTP_PORT:-8000}:8000"
environment:
FLOWMUSIC_HTTP_HOST: 0.0.0.0
FLOWMUSIC_HTTP_PORT: 8000
FLOWMUSIC_ROOT: /app
FLOWMUSIC_STATIC_DIR: /app/web/static
FLOWMUSIC_DATA_DIR: /app/data
FLOWMUSIC_CACHE_DIR: /app/tmp
FLOWMUSIC_CACHE_ENABLED: ${FLOWMUSIC_CACHE_ENABLED:-false}
FLOWMUSIC_CACHE_TIMEOUT_SECONDS: ${FLOWMUSIC_CACHE_TIMEOUT_SECONDS:-7200}
FLOWMUSIC_CACHE_BASE_URL: ${FLOWMUSIC_CACHE_BASE_URL:-}
FLOWMUSIC_CACHE_STORAGE_MODE: ${FLOWMUSIC_CACHE_STORAGE_MODE:-local}
FLOWMUSIC_S3_ENDPOINT: ${FLOWMUSIC_S3_ENDPOINT:-}
FLOWMUSIC_S3_REGION: ${FLOWMUSIC_S3_REGION:-}
FLOWMUSIC_S3_BUCKET: ${FLOWMUSIC_S3_BUCKET:-}
FLOWMUSIC_S3_ACCESS_KEY: ${FLOWMUSIC_S3_ACCESS_KEY:-}
FLOWMUSIC_S3_SECRET_KEY: ${FLOWMUSIC_S3_SECRET_KEY:-}
FLOWMUSIC_S3_USE_SSL: ${FLOWMUSIC_S3_USE_SSL:-true}
FLOWMUSIC_S3_FORCE_PATH_STYLE: ${FLOWMUSIC_S3_FORCE_PATH_STYLE:-false}
FLOWMUSIC_S3_PREFIX: ${FLOWMUSIC_S3_PREFIX:-}
FLOWMUSIC_S3_PUBLIC_BASE_URL: ${FLOWMUSIC_S3_PUBLIC_BASE_URL:-}
FLOWMUSIC_DB_DRIVER: postgres
FLOWMUSIC_DATABASE_URL: ${FLOWMUSIC_DATABASE_URL:-}
FLOWMUSIC_POSTGRES_HOST: ${FLOWMUSIC_POSTGRES_HOST:-postgres}
FLOWMUSIC_POSTGRES_PORT: ${FLOWMUSIC_POSTGRES_PORT:-5432}
FLOWMUSIC_POSTGRES_USER: ${FLOWMUSIC_POSTGRES_USER:-flowmusic}
FLOWMUSIC_POSTGRES_PASSWORD: ${FLOWMUSIC_POSTGRES_PASSWORD:-flowmusic}
FLOWMUSIC_POSTGRES_DB: ${FLOWMUSIC_POSTGRES_DB:-flowmusic2api}
FLOWMUSIC_POSTGRES_SSLMODE: ${FLOWMUSIC_POSTGRES_SSLMODE:-disable}
FLOWMUSIC_POSTGRES_MAX_OPEN_CONNS: ${FLOWMUSIC_POSTGRES_MAX_OPEN_CONNS:-32}
FLOWMUSIC_ADMIN_USER: ${FLOWMUSIC_ADMIN_USER:-admin}
FLOWMUSIC_ADMIN_PASSWORD: ${FLOWMUSIC_ADMIN_PASSWORD:-admin}
FLOWMUSIC_DEFAULT_API_KEY: ${FLOWMUSIC_DEFAULT_API_KEY:-fm123456}
FLOWMUSIC_ADMIN_JWT_SECRET: ${FLOWMUSIC_ADMIN_JWT_SECRET:-change-me}
FLOWMUSIC_INITIAL_ACCOUNT_EMAIL: ${FLOWMUSIC_INITIAL_ACCOUNT_EMAIL:-}
FLOWMUSIC_INITIAL_ACCOUNT_NAME: ${FLOWMUSIC_INITIAL_ACCOUNT_NAME:-}
FLOWMUSIC_INITIAL_ACCOUNT_REMARK: ${FLOWMUSIC_INITIAL_ACCOUNT_REMARK:-}
FLOWMUSIC_INITIAL_PROTOCOL_MODE: ${FLOWMUSIC_INITIAL_PROTOCOL_MODE:-}
FLOWMUSIC_INITIAL_REFRESH_TOKEN: ${FLOWMUSIC_INITIAL_REFRESH_TOKEN:-}
FLOWMUSIC_INITIAL_FLOW_BEARER: ${FLOWMUSIC_INITIAL_FLOW_BEARER:-}
FLOWMUSIC_INITIAL_PROVIDER_TOKEN: ${FLOWMUSIC_INITIAL_PROVIDER_TOKEN:-}
FLOWMUSIC_INITIAL_PROVIDER_REFRESH_TOKEN: ${FLOWMUSIC_INITIAL_PROVIDER_REFRESH_TOKEN:-}
FLOWMUSIC_INITIAL_COOKIES: ${FLOWMUSIC_INITIAL_COOKIES:-}
FLOWMUSIC_INITIAL_ACCOUNT_PROXY_URL: ${FLOWMUSIC_INITIAL_ACCOUNT_PROXY_URL:-}
FLOWMUSIC_INITIAL_AUTO_REFRESH_ENABLED: ${FLOWMUSIC_INITIAL_AUTO_REFRESH_ENABLED:-true}
FLOWMUSIC_INITIAL_REFRESH_INTERVAL_MINUTES: ${FLOWMUSIC_INITIAL_REFRESH_INTERVAL_MINUTES:-60}
FLOWMUSIC_BASE_URL: ${FLOWMUSIC_BASE_URL:-https://www.flowmusic.app}
FLOWMUSIC_SUPABASE_BASE_URL: ${FLOWMUSIC_SUPABASE_BASE_URL:-https://sb.flowmusic.app}
FLOWMUSIC_SUPABASE_ANON_KEY: ${FLOWMUSIC_SUPABASE_ANON_KEY:-}
FLOWMUSIC_GOOGLE_OAUTH_TOKEN_URL: ${FLOWMUSIC_GOOGLE_OAUTH_TOKEN_URL:-https://oauth2.googleapis.com/token}
FLOWMUSIC_GOOGLE_OAUTH_CLIENT_ID: ${FLOWMUSIC_GOOGLE_OAUTH_CLIENT_ID:-1032626174130-533micbc9tgsei76mqhtguq07lpoe4je.apps.googleusercontent.com}
FLOWMUSIC_GOOGLE_OAUTH_CLIENT_SECRET: ${FLOWMUSIC_GOOGLE_OAUTH_CLIENT_SECRET:-}
FLOWMUSIC_PROXY_URL: ${FLOWMUSIC_PROXY_URL:-}
FLOWMUSIC_TLS_INSECURE_SKIP_VERIFY: ${FLOWMUSIC_TLS_INSECURE_SKIP_VERIFY:-false}
FLOWMUSIC_UPSTREAM_TIMEOUT_SECONDS: ${FLOWMUSIC_UPSTREAM_TIMEOUT_SECONDS:-120}
FLOWMUSIC_GENERATION_TIMEOUT_SECONDS: ${FLOWMUSIC_GENERATION_TIMEOUT_SECONDS:-600}
FLOWMUSIC_STREAM_IDLE_TIMEOUT_SECONDS: ${FLOWMUSIC_STREAM_IDLE_TIMEOUT_SECONDS:-90}
FLOWMUSIC_DISABLE_WORKERS: ${FLOWMUSIC_DISABLE_WORKERS:-false}
FLOWMUSIC_TOKEN_REFRESH_LEAD_SECONDS: ${FLOWMUSIC_TOKEN_REFRESH_LEAD_SECONDS:-600}
FLOWMUSIC_TOKEN_REFRESH_INTERVAL_SECONDS: ${FLOWMUSIC_TOKEN_REFRESH_INTERVAL_SECONDS:-60}
FLOWMUSIC_STORAGE_PRESIGN_SECONDS: ${FLOWMUSIC_STORAGE_PRESIGN_SECONDS:-604800}
volumes:
- ./tmp:/app/tmp
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:8000/health >/dev/null || exit 1"]
interval: 15s
timeout: 3s
retries: 20
start_period: 20s
postgres:
image: postgres:16
restart: unless-stopped
security_opt:
- no-new-privileges:true
logging: *default-logging
environment:
POSTGRES_USER: ${FLOWMUSIC_POSTGRES_USER:-flowmusic}
POSTGRES_PASSWORD: ${FLOWMUSIC_POSTGRES_PASSWORD:-flowmusic}
POSTGRES_DB: ${FLOWMUSIC_POSTGRES_DB:-flowmusic2api}
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\""]
interval: 5s
timeout: 3s
retries: 20
volumes:
postgres-data: