Repository navigation
Expand file tree
/
Copy pathcompose.yml
More file actions
76 lines (72 loc) · 2.35 KB
/
Copy pathcompose.yml
File metadata and controls
76 lines (72 loc) · 2.35 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
# Local development stack.
#
# PostgreSQL 18 (Alpine) backs Chronos; Mailpit captures outbound SMTP
# from local dev runs so notification emails are viewable, not sent; Garage
# is the S3 object store announcement images live in.
#
# docker compose up # run both services in the foreground
# docker compose up -d # run detached
# docker compose down -v # stop and remove volumes
#
# Mailpit web UI: http://localhost:8025
# Mailpit SMTP: localhost:1025
# PostgreSQL: postgresql://postgres:postgres@localhost:5432/postgres
# Garage S3 API: http://localhost:3900, bucket filc-dev
#
# Garage needs credentials before it will start: export
# GARAGE_DEFAULT_ACCESS_KEY and GARAGE_DEFAULT_SECRET_KEY in `.env` or your
# shell first (see CONTRIBUTING.md).
#
# This is an alternative to the pg-dispo script documented in CONTRIBUTING.md;
# do not run both at once — they share host port 5432.
services:
postgres:
image: postgres:18-alpine
container_name: filc-postgres
restart: unless-stopped
ports:
- "127.0.0.1:5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
volumes:
- postgres-data:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
mailpit:
image: axllent/mailpit:v1.32.0
container_name: filc-mailpit
restart: unless-stopped
ports:
- "127.0.0.1:1025:1025" # SMTP
- "127.0.0.1:8025:8025" # Web UI
environment:
MP_DATABASE: /data/mailpit.db
volumes:
- mailpit-data:/data
garage:
image: dxflrs/garage:v2.4.1
container_name: filc-garage
restart: unless-stopped
command: ["/garage", "server", "--single-node", "--default-bucket"]
ports:
- "127.0.0.1:3900:3900" # S3 API
- "127.0.0.1:3901:3901" # cluster RPC
- "127.0.0.1:3903:3903" # admin/metrics API
environment:
GARAGE_DEFAULT_ACCESS_KEY: ${GARAGE_DEFAULT_ACCESS_KEY:?set me}
GARAGE_DEFAULT_SECRET_KEY: ${GARAGE_DEFAULT_SECRET_KEY:?set me}
GARAGE_DEFAULT_BUCKET: ${GARAGE_DEFAULT_BUCKET:-filc-dev}
volumes:
- ./garage.toml:/etc/garage.toml:ro
- garage-data:/var/lib/garage/data
- garage-meta:/var/lib/garage/meta
volumes:
postgres-data:
mailpit-data:
garage-data:
garage-meta: