-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
42 lines (35 loc) · 1.37 KB
/
docker-compose.yml
File metadata and controls
42 lines (35 loc) · 1.37 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
services:
app:
image: example42/pabawi:latest
container_name: pabawi
env_file:
- .env
volumes:
# All Pabawi data lives under /opt/pabawi inside the container.
# Mount host directories to the matching container paths.
# SQLite database persistence (required)
- ./data:/opt/pabawi/data
# Bolt project directory (required, read-only)
- ./bolt-project:/opt/pabawi/bolt-project:ro
# Hiera control repository (optional)
# - /path/to/control-repo:/opt/pabawi/control-repo:ro
# Ansible project directory (optional)
# - /path/to/ansible:/opt/pabawi/ansible:ro
# SSL certificates for PuppetDB/Puppetserver/Proxmox (optional)
# - /path/to/certs:/opt/pabawi/certs:ro
# SSH keys and config for SSH integration (optional)
# - ~/.ssh:/opt/pabawi/ssh:ro
ports:
- "${PORT:-3000}:3000"
healthcheck:
test: ["CMD", "node", "-e", "const http=require('http');http.get('http://localhost:3000/api/health',(r)=>{let d='';r.on('data',c=>d+=c);r.on('end',()=>{try{const j=JSON.parse(d);process.exit(r.statusCode===200&&j.status==='ok'?0:1)}catch{process.exit(1)}})}).on('error',()=>process.exit(1))"]
interval: 30s
timeout: 3s
start_period: 5s
retries: 3
restart: unless-stopped
networks:
- pabawi-network
networks:
pabawi-network:
driver: bridge