-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Expand file tree
/
Copy pathdocker-compose.coolify.yml
More file actions
124 lines (124 loc) · 3.6 KB
/
Copy pathdocker-compose.coolify.yml
File metadata and controls
124 lines (124 loc) · 3.6 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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
name: cap
services:
cap-web:
image: 'ghcr.io/capsoftware/cap-web:latest'
restart: unless-stopped
depends_on:
mysql:
condition: service_healthy
minio:
condition: service_healthy
environment:
SERVICE_URL_CAP_WEB_3000: ''
DATABASE_URL: 'mysql://cap:${SERVICE_PASSWORD_MYSQL}@mysql:3306/cap'
WEB_URL: '${SERVICE_URL_CAP_WEB}'
NEXTAUTH_URL: '${SERVICE_URL_CAP_WEB}'
DATABASE_ENCRYPTION_KEY: '${SERVICE_HEX_32_DATABASEENCRYPTIONKEY}'
NEXTAUTH_SECRET: '${SERVICE_HEX_32_NEXTAUTHSECRET}'
CAP_AWS_ACCESS_KEY: capadmin
CAP_AWS_SECRET_KEY: '${SERVICE_PASSWORD_MINIO}'
CAP_AWS_BUCKET: cap
CAP_AWS_REGION: us-east-1
S3_PUBLIC_ENDPOINT: '${SERVICE_URL_MINIO}'
S3_INTERNAL_ENDPOINT: 'http://minio:9000'
S3_PATH_STYLE: 'true'
RESEND_API_KEY: '${RESEND_API_KEY:-}'
RESEND_FROM_DOMAIN: '${RESEND_FROM_DOMAIN:-}'
GOOGLE_CLIENT_ID: '${GOOGLE_CLIENT_ID:-}'
GOOGLE_CLIENT_SECRET: '${GOOGLE_CLIENT_SECRET:-}'
APPLE_CLIENT_ID: '${APPLE_CLIENT_ID:-}'
APPLE_CLIENT_SECRET: '${APPLE_CLIENT_SECRET:-}'
MEDIA_SERVER_URL: 'http://media-server:3456'
MEDIA_SERVER_WEBHOOK_SECRET: '${SERVICE_HEX_32_MEDIASERVER}'
MEDIA_SERVER_WEBHOOK_URL: 'http://cap-web:3000'
healthcheck:
test:
- CMD
- wget
- '-q'
- '-O'
- /dev/null
- 'http://127.0.0.1:3000/'
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
media-server:
image: 'ghcr.io/capsoftware/cap-media-server:latest'
restart: unless-stopped
environment:
PORT: 3456
MEDIA_SERVER_WEBHOOK_SECRET: '${SERVICE_HEX_32_MEDIASERVER}'
healthcheck:
test:
- CMD
- bun
- '-e'
- "fetch('http://127.0.0.1:3456/health').then((response) => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))"
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
mysql:
image: 'mysql:8.0'
restart: unless-stopped
environment:
MYSQL_DATABASE: cap
MYSQL_USER: cap
MYSQL_PASSWORD: '${SERVICE_PASSWORD_MYSQL}'
MYSQL_ROOT_PASSWORD: '${SERVICE_PASSWORD_64_MYSQL}'
command:
- '--max_connections=1000'
- '--character-set-server=utf8mb4'
- '--collation-server=utf8mb4_unicode_ci'
volumes:
- 'cap-mysql-data:/var/lib/mysql'
healthcheck:
test:
- CMD
- mysqladmin
- ping
- '-h'
- localhost
- '-u'
- cap
- '-p${SERVICE_PASSWORD_MYSQL}'
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
minio:
image: 'minio/minio:latest'
restart: unless-stopped
command: 'server /data --console-address ":9001"'
environment:
MINIO_ROOT_USER: capadmin
MINIO_ROOT_PASSWORD: '${SERVICE_PASSWORD_MINIO}'
SERVICE_URL_MINIO_9000: ''
volumes:
- 'cap-minio-data:/data'
healthcheck:
test:
- CMD
- mc
- ready
- local
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
minio-setup:
container_name: cap-minio-setup
image: 'minio/mc:latest'
exclude_from_hc: true
depends_on:
minio:
condition: service_healthy
entrypoint: "/bin/sh -c \" mc alias set capminio http://minio:9000 capadmin $${SERVICE_PASSWORD_MINIO}; mc mb capminio/cap --ignore-existing; exit 0; \"\n"
environment:
MINIO_ROOT_USER: capadmin
MINIO_ROOT_PASSWORD: '${SERVICE_PASSWORD_MINIO}'
S3_BUCKET: cap
volumes:
cap-mysql-data: null
cap-minio-data: null