-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdocker-compose.yml
125 lines (117 loc) · 3.57 KB
/
docker-compose.yml
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
version: "2.1"
services:
db:
container_name: psaggregator_db
restart: unless-stopped
image: mysql:8.0
volumes:
- mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
expose:
- "3306"
networks:
- mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 20s
retries: 10
frontend:
container_name: psaggregator_frontend
restart: unless-stopped
image: ghcr.io/zaanposni/psaggregator_frontend:latest
environment:
- PRIVATE_DATABASE_URL=${DATABASE_URL}
- PRIVATE_API_ANALYTICS_KEY=${API_ANALYTICS_KEY}
- PUBLIC_LEGAL_URL=${LEGAL_URL}
- PUBLIC_UMAMI_ID=${UMAMI_ID}
- PUBLIC_KOFI_USERNAME=${KOFI_USERNAME}
- PUBLIC_SENTRY_DSN=${SVELTEKIT_SENTRY_DSN}
depends_on:
db:
condition: service_healthy
networks:
- mysql
- nginx
expose:
- "3000"
dataimport:
container_name: psaggregator_dataimport
restart: unless-stopped
image: ghcr.io/zaanposni/psaggregator_dataimport:latest
environment:
- DATABASE_URL=${DATABASE_URL}
- REDDIT_CLIENT_ID=${REDDIT_CLIENT_ID}
- REDDIT_CLIENT_SECRET=${REDDIT_CLIENT_SECRET}
- TWITCH_CLIENT_ID=${TWITCH_CLIENT_ID}
- TWITCH_CLIENT_SECRET=${TWITCH_CLIENT_SECRET}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- SQLALCHEMY_SILENCE_UBER_WARNING=1
- YT_SERVER_BASE_URL=http://youtube-api
- INSTAGRAM_USERNAME=${INSTAGRAM_USERNAME}
- INSTAGRAM_PASSWORD=${INSTAGRAM_PASSWORD}
- INSTAGRAM_2FA_SECRET=${INSTAGRAM_2FA_SECRET}
- INSTAGRAM_CONFIG_PATH=/app/config/instagram.json
- TWITTER_USERNAME=${TWITTER_USERNAME}
- TWITTER_PASSWORD=${TWITTER_PASSWORD}
- TWITTER_LIST_ID=${TWITTER_LIST_ID}
- YOUTUBE_API_KEY=${YOUTUBE_API_KEY}
volumes:
- shared-data:/app/cdn
- config:/app/config
depends_on:
db:
condition: service_healthy
youtube-api:
condition: service_started
networks:
- mysql
- youtube
nginx:
container_name: psaggregator_nginx
restart: unless-stopped
image: ghcr.io/zaanposni/psaggregator_nginx:latest
depends_on:
- frontend
- imageresizer
ports:
- "127.0.0.1:5650:80"
networks:
- nginx
- imageresizer
imageresizer:
container_name: psaggregator_imageresizer
restart: unless-stopped
image: ghcr.io/zaanposni/psaggregator_imageresizer:latest
environment:
- PORT=3000
- CDN_FILE_BASE_DIRECTORY=/app/cdn
volumes:
- shared-data:/app/cdn
ports:
- "3000"
networks:
- imageresizer
youtube-api:
image: ceramicwhite/youtube-operational-api
container_name: youtube-api
restart: unless-stopped
expose:
- "80"
networks:
- youtube
networks:
mysql:
nginx:
youtube:
imageresizer:
volumes:
mysql:
config:
shared-data:
driver: local
driver_opts:
type: none
o: bind
device: ./cdn