-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
112 lines (105 loc) · 3.09 KB
/
docker-compose.yml
File metadata and controls
112 lines (105 loc) · 3.09 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
services:
db:
image: postgres:16
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
retries: 5
start_period: 30s
timeout: 10s
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data/pgdata
env_file:
- .env
environment:
- PGDATA=/var/lib/postgresql/data/pgdata
labels:
# This means the container will be stopped during backup to ensure backup integrity.
- docker-volume-backup.stop-during-backup=true
backup:
image: offen/docker-volume-backup:latest
restart: always
depends_on:
db:
condition: service_healthy
env_file:
- .env
environment:
# Enable notification settings from environment variables
- NOTIFICATION_URLS=${TELEGRAM_NOTIFICATION_URL:-}
- NOTIFICATION_LEVEL=${BACKUP_NOTIFICATION_LEVEL:-error}
volumes:
- postgres_data:/backup/postgres:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
# Local path to store the backup archives
# - ${BACKUP_ARCHIVE_PATH:-./backups}:/archive
pgadmin:
image: dpage/pgadmin4:latest
ports:
- "5050:5050"
depends_on:
- db
env_file:
- .env
volumes:
- pgadmin-data:/var/lib/pgadmin
environment:
- PG_USERNAME=${PG_USERNAME}
- PG_HASHED_PASSWORD=${PG_HASHED_PASSWORD}
- PGADMIN_CONFIG_X_CONTENT_TYPE_OPTIONS=${PGADMIN_CONFIG_X_CONTENT_TYPE_OPTIONS:-""}
- PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=${PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION:-True}
- PGADMIN_CONFIG_X_XSS_PROTECTION=${PGADMIN_CONFIG_X_XSS_PROTECTION:-1}
#labels:
# Basic auth for pgadmin using the environment variables PG_USERNAME and PG_HASHED_PASSWORD
# - traefik.http.middlewares.mybasicauth.basicauth.users=${PG_USERNAME}:${PG_HASHED_PASSWORD}
prestart:
image: "${DOCKER_IMAGE_BACKEND?Variable not set}:${TAG-latest}"
build:
context: ./backend
dockerfile: backend.dockerfile
depends_on:
db:
condition: service_healthy
restart: "no"
command: bash scripts/prestart.sh
env_file:
- .env
backend:
image: "${DOCKER_IMAGE_BACKEND?Variable not set}:${TAG-latest}"
restart: always
depends_on:
db:
condition: service_healthy
prestart:
condition: service_completed_successfully
env_file:
- .env
build:
context: ./backend
dockerfile: backend.dockerfile
# Alternative to whatsapp, uncomment to use
# waha:
# restart: always
# # in macos change to waha:arm
# image: devlikeapro/waha:latest-2025.7.9
# ports:
# - "127.0.0.1:3000:3000/tcp"
# depends_on:
# - backend
# env_file:
# - .env
# # used to expose the waha service to the internet
# cloudflaretunnel:
# image: cloudflare/cloudflared:latest
# restart: always
# depends_on:
# - waha
# environment:
# - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN}
# command: tunnel --no-autoupdate run --url http://waha:3000
volumes:
postgres_data:
pgadmin-data: