-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
157 lines (145 loc) · 3.76 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
157 lines (145 loc) · 3.76 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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
services:
db:
container_name: enpitsu_db
image: postgres:16
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready", "-U", "enpitsu", "-d", "enpitsu"]
interval: 3s
retries: 10
start_period: 30s
environment:
POSTGRES_DB: enpitsu
POSTGRES_USER: enpitsu
POSTGRES_PASSWORD: enpitsu
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- db:/var/lib/postgresql/data
ports:
- 5432:5432
cache:
container_name: enpitsu_redis
image: redis:6.2-alpine
healthcheck:
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
interval: 1s
timeout: 3s
retries: 5
restart: always
command: redis-server --save 20 1 --loglevel warning --requirepass enpitsu --maxmemory-policy noeviction
volumes:
- cache:/data
expose:
- 6379
web:
container_name: enpitsu_admin
image: rmecha/enpitsu:main
restart: always
depends_on:
db:
condition: service_healthy
cache:
condition: service_healthy
environment:
DATABASE_URL: postgresql://enpitsu:enpitsu@db:5432/enpitsu
REDIS_URL: redis://:enpitsu@cache:6379/
AUTH_URL: https://${ENPITSU_VIRTUAL_HOST}
AUTH_SECRET: ${ENPITSU_AUTH_SECRET}
AUTH_GOOGLE_ID: ${ENPITSU_AUTH_GOOGLE_ID}
AUTH_GOOGLE_SECRET: ${ENPITSU_AUTH_GOOGLE_SECRET}
CORS_ORIGIN: ${ENPITSU_CORS_ORIGIN}
SPECIAL_ADMIN_USERS: ${ENPITSU_SPECIAL_ADMIN_USERS}
RUNNING_EDITION: ${ENPITSU_RUNNING_EDITION}
YJS_SERVER: ${ENPITSU_YJS_SERVER}
ports:
- 3000:3000
processor:
container_name: enpitsu_question_processor
image: rmecha/enpitsu-processor:main
restart: always
volumes:
- processor_log:/vote-processor/logs
depends_on:
web:
condition: service_started
environment:
DATABASE_URL: postgresql://enpitsu:enpitsu@db:5432/enpitsu
REDIS_URL: redis://:enpitsu@cache:6379/
yjs:
container_name: enpitsu_yjs_server
image: rmecha/enpitsu-yjs:main
restart: always
depends_on:
web:
condition: service_started
environment:
DATABASE_URL: postgresql://enpitsu:enpitsu@db:5432/enpitsu
REDIS_URL: redis://:enpitsu@cache:6379/
ports:
- 3030:1234
# The following are the needed services for Chibisafe file server:
# - sfs: Static File Server
# - chibisafe: Chibisafe Web Interface
# - chibisafe_server: Chibisafe Server
sfs:
container_name: enpitsu_chibisafe_sfs
image: halverneus/static-file-server:v1.8.3
profiles:
- files
ports:
- "8002:8080"
volumes:
- "chibisafe_uploads:/web"
environment:
- ALLOW_INDEX=false
- SHOW_LISTING=false
restart: unless-stopped
chibisafe:
container_name: enpitsu_chibisafe
image: chibisafe/chibisafe:latest
profiles:
- files
environment:
- BASE_API_URL=http://chibisafe_server:8000
expose:
- 8001
ports:
- 8001:8001
restart: unless-stopped
chibisafe_server:
container_name: enpitsu_chibisafe_server
image: chibisafe/chibisafe-server:latest
profiles:
- files
volumes:
- chibisafe_db:/app/database:rw
- chibisafe_uploads:/app/uploads:rw
- chibisafe_logs:/app/logs:rw
expose:
- 8000
ports:
- 8000:8000
restart: unless-stopped
# Nginx
nginx:
image: 'jc21/nginx-proxy-manager:latest'
container_name: enpitsu_nginx
restart: unless-stopped
ports:
- '8080:80'
- '4433:443'
- '8181:81'
environment:
TZ: "Asia/Jakarta"
volumes:
- nginx_data:/data
- nginx_letsencrypt:/etc/letsencrypt
volumes:
db:
cache:
processor_log:
chibisafe_db:
chibisafe_uploads:
chibisafe_logs:
nginx_data:
nginx_letsencrypt: