Skip to content

Commit 4afcbdb

Browse files
committed
Add docker-stack.yml for PostgreSQL backup services
1 parent 1c71024 commit 4afcbdb

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

docker-stack.yml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
version: "3.8"
2+
3+
services:
4+
# API Service
5+
postgres-backup-api:
6+
image: ghcr.io/evolutionapi/evolution-postgres-backup-api:main
7+
networks:
8+
- network_public
9+
environment:
10+
# ========== BASIC CONFIGURATION ==========
11+
PORT: 8080
12+
API_KEY: "a4f3a241-7763-4f3b-9101-0e26c5029f17"
13+
LOG_LEVEL: "info"
14+
BACKUP_TEMP_DIR: "/tmp/postgres-backups"
15+
# ========== DATABASE CONFIGURATION ==========
16+
DB_TYPE: "postgres"
17+
POSTGRES_HOST: "postgres-backup-db"
18+
POSTGRES_PORT: 5432
19+
POSTGRES_DB: "backup_service"
20+
POSTGRES_USER: "backup_admin"
21+
POSTGRES_PASSWORD: "backup_password_2024"
22+
# ========== S3 STORAGE CONFIGURATION ==========
23+
S3_ENDPOINT: "https://hel1.your-objectstorage.com"
24+
S3_REGION: "hel1"
25+
S3_BUCKET: "backup-chatpolos"
26+
S3_ACCESS_KEY_ID: "M4WID7GXREH2EC5J30V8"
27+
S3_SECRET_ACCESS_KEY: "pLTF4vVMSnon1AL6NI9iTU86G0fTaVd7QyG6xfax"
28+
S3_USE_SSL: "true"
29+
volumes:
30+
- postgres_backup_temp:/tmp/postgres-backups
31+
deploy:
32+
replicas: 2
33+
placement:
34+
constraints:
35+
- node.hostname == api1-server
36+
labels:
37+
- traefik.enable=true
38+
- traefik.http.routers.postgres_backup_api.rule=Host(`api.backup.chatpolos.com.br`)
39+
- traefik.http.routers.postgres_backup_api.entrypoints=websecure
40+
- traefik.http.routers.postgres_backup_api.tls.certresolver=letsencryptresolver
41+
- traefik.http.routers.postgres_backup_api.priority=1
42+
- traefik.http.routers.postgres_backup_api.service=postgres_backup_api
43+
- traefik.http.services.postgres_backup_api.loadbalancer.server.port=8080
44+
- traefik.http.services.postgres_backup_api.loadbalancer.passHostHeader=true
45+
46+
# Worker Service
47+
postgres-backup-worker:
48+
image: ghcr.io/evolutionapi/evolution-postgres-backup-worker:main
49+
networks:
50+
- network_public
51+
environment:
52+
# ========== BASIC CONFIGURATION ==========
53+
API_KEY: "a4f3a241-7763-4f3b-9101-0e26c5029f17"
54+
LOG_LEVEL: "info"
55+
BACKUP_TEMP_DIR: "/tmp/postgres-backups"
56+
WORKER_COUNT: 4
57+
# ========== DATABASE CONFIGURATION ==========
58+
DB_TYPE: "postgres"
59+
POSTGRES_HOST: "postgres-backup-db"
60+
POSTGRES_PORT: 5432
61+
POSTGRES_DB: "backup_service"
62+
POSTGRES_USER: "backup_admin"
63+
POSTGRES_PASSWORD: "backup_password_2024"
64+
# ========== S3 STORAGE CONFIGURATION ==========
65+
S3_ENDPOINT: "https://hel1.your-objectstorage.com"
66+
S3_REGION: "hel1"
67+
S3_BUCKET: "backup-chatpolos"
68+
S3_ACCESS_KEY_ID: "M4WID7GXREH2EC5J30V8"
69+
S3_SECRET_ACCESS_KEY: "pLTF4vVMSnon1AL6NI9iTU86G0fTaVd7QyG6xfax"
70+
S3_USE_SSL: "true"
71+
volumes:
72+
- postgres_backup_temp:/tmp/postgres-backups
73+
deploy:
74+
replicas: 2
75+
placement:
76+
constraints:
77+
- node.hostname == api1-server
78+
79+
# Frontend Service
80+
postgres-backup-frontend:
81+
image: ghcr.io/evolutionapi/evolution-postgres-backup-frontend:main
82+
networks:
83+
- network_public
84+
environment:
85+
# ========== FRONTEND CONFIGURATION ==========
86+
REACT_APP_API_BASE_URL: "https://api.backup.chatpolos.com.br"
87+
REACT_APP_API_KEY: "a4f3a241-7763-4f3b-9101-0e26c5029f17"
88+
deploy:
89+
replicas: 2
90+
placement:
91+
constraints:
92+
- node.hostname == api1-server
93+
labels:
94+
- traefik.enable=true
95+
- traefik.http.routers.postgres_backup_frontend.rule=Host(`backup.chatpolos.com.br`)
96+
- traefik.http.routers.postgres_backup_frontend.entrypoints=websecure
97+
- traefik.http.routers.postgres_backup_frontend.tls.certresolver=letsencryptresolver
98+
- traefik.http.routers.postgres_backup_frontend.priority=1
99+
- traefik.http.routers.postgres_backup_frontend.service=postgres_backup_frontend
100+
- traefik.http.services.postgres_backup_frontend.loadbalancer.server.port=80
101+
- traefik.http.services.postgres_backup_frontend.loadbalancer.passHostHeader=true
102+
103+
volumes:
104+
postgres_backup_data:
105+
external: true
106+
name: postgres_backup_data
107+
postgres_backup_temp:
108+
external: true
109+
name: postgres_backup_temp
110+
111+
networks:
112+
network_public:
113+
external: true
114+
name: network_public

0 commit comments

Comments
 (0)