-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
150 lines (134 loc) · 3.75 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
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
version: '3.4'
# Logging environment variables
x-logging-env: &logging-env
hive_stack: ${COMPOSE_PROJECT_NAME}
hive_service: # Set by each service
# Base app configuration
x-base-app: &base-app
env_file:
- stack.env
networks:
- internal
- db-network
logging:
driver: gelf
options:
gelf-address: "udp://127.0.0.1:12201"
env: hive_stack,hive_service
# Service app configuration
x-service-app: &service-app
<<: *base-app
restart: unless-stopped
depends_on:
migration:
condition: service_completed_successfully
services:
# Backend services
app:
<<: *service-app
image: beabee/beabee-legacy-app:${HIVE_VERSION:-v0.23.5}
environment:
<<: *logging-env
hive_service: app
api_app:
<<: *service-app
image: beabee/beabee-api-app:${HIVE_VERSION:-v0.23.5}
environment:
<<: *logging-env
hive_service: api_app
webhook_app:
<<: *service-app
image: beabee/beabee-webhook-app:${HIVE_VERSION:-v0.23.5}
environment:
<<: *logging-env
hive_service: webhook_app
cron_app:
<<: *service-app
image: beabee/beabee-cron-app:${HIVE_VERSION:-v0.23.5}
environment:
<<: *logging-env
hive_service: cron
img_upload_app:
image: beabee/pictshare:v0.2.0
restart: unless-stopped
environment:
URL: ${BEABEE_AUDIENCE}/uploads/
volumes:
- upload_data:/var/www/data
networks:
- internal
# Migration service
migration:
<<: *base-app
image: beabee/beabee-api-app:${HIVE_VERSION:-v0.23.5}
command: 'npm run typeorm migration:run'
environment:
<<: *logging-env
hive_service: migration
# Helper to run commands (GELF logging disabled)
run:
<<: *base-app
image: beabee/beabee-api-app:${HIVE_VERSION:-v0.23.5}
profiles:
- tools
logging:
driver: none
# Frontend service
frontend:
image: beabee/beabee-frontend:${HIVE_VERSION:-v0.23.5}
restart: unless-stopped
environment:
APP_BASE_URL: ${BEABEE_AUDIENCE}
API_BASE_URL: /api/1.0
CNR_MODE: ${BEABEE_CNR_MODE-}
EXPERIMENTAL_FEATURES: ${BEABEE_EXPERIMENTAL_FEATURES-}
APPSIGNAL_KEY: ${APPSIGNAL_KEY-}
CAPTCHAFOX_KEY: ${BEABEE_CAPTCHAFOX_KEY-}
MAPTILER_KEY: ${BEABEE_MAPTILER_KEY-}
networks:
- internal
# Application router
app_router:
image: beabee/beabee-router:${HIVE_VERSION:-v0.23.5}
restart: unless-stopped
labels:
- "traefik.docker.network=traefik-ingress"
- "traefik.enable=true"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}.entryPoints=https"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}.rule=Host(`${BEABEE_DOMAIN}`)"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}.tls=true"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}.tls.certResolver=letsencrypt"
- "traefik.http.services.${COMPOSE_PROJECT_NAME}.loadbalancer.server.port=80"
environment:
LEGACY_APP_COOKIE_DOMAIN: ${BEABEE_COOKIE_DOMAIN}
TRUSTED_ORIGINS: ${BEABEE_TRUSTEDORIGINS-}
networks:
- internal
- traefik-ingress
# Telgram bot
telegram_bot:
profiles:
- telegram
image: beabee/telegram-bot:latest
volumes:
- telegram-bot_data:/app/telegram-bot/data
restart: unless-stopped
environment:
BEABEE_AUDIENCE: ${BEABEE_AUDIENCE}
API_PROXY_URL: ${BEABEE_AUDIENCE}
TELEGRAM_TOKEN: ${BEABEE_TELEGRAM_BOT_TOKEN}
BEABEE_API_TOKEN: ${BEABEE_TELEGRAM_BOT_API_TOKEN}
BEABEE_SERVICE_SECRET: ${BEABEE_SERVICE_SECRET}
TELEGRAM_BOT_ENVIRONMENT: ${BEABEE_ENVIRONMENT}
DEBUG: grammy*
API_BASE_URL: /api/1.0
networks:
internal:
driver: bridge
db-network:
external: true
traefik-ingress:
external: true
volumes:
upload_data:
telegram-bot_data: