Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
54 lines (52 loc) · 1.65 KB
/
Copy pathdocker-compose.yml
File metadata and controls
54 lines (52 loc) · 1.65 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
services:
pocketbase:
image: ghcr.io/ben0551/planner/planner-pb:latest
container_name: planner-pb
restart: unless-stopped
# Not exposed via Traefik — the app container proxies PocketBase internally
ports:
- "8090:8090"
volumes:
- ./pb/pb_data:/pb_data
environment:
- PB_ADMIN_EMAIL=${PB_ADMIN_EMAIL}
- PB_ADMIN_PASSWORD=${PB_ADMIN_PASSWORD}
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8090/api/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- default
app:
image: ghcr.io/ben0551/planner/planner-app:latest
container_name: planner-app
restart: unless-stopped
environment:
- PB_INTERNAL_URL=http://pocketbase:8090
- PB_ADMIN_EMAIL=${PB_ADMIN_EMAIL}
- PB_ADMIN_PASSWORD=${PB_ADMIN_PASSWORD}
- ADMIN_EMAIL=${ADMIN_EMAIL}
- APP_URL=${APP_URL}
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY}
- VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY}
- VAPID_SUBJECT=${VAPID_SUBJECT}
- HOUSEHOLD_MODE=${HOUSEHOLD_MODE:-single}
depends_on:
pocketbase:
condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.http.routers.planner.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.planner.entrypoints=websecure"
- "traefik.http.routers.planner.tls.certresolver=letsencrypt"
- "traefik.http.services.planner.loadbalancer.server.port=3000"
networks:
- default
- traefik
networks:
default:
traefik:
external: true