Files
docker-openbao/docker-compose.yml
hcornet 73f193bc9b
Deployment Verification / deploy-and-test (push) Failing after 16s
Update docker-compose.yml
2026-08-01 11:08:55 +02:00

85 lines
3.0 KiB
YAML

---
# OpenBao — gestion de secrets (fork MPL-2.0 de HashiCorp Vault)
# Hôte : SLDOKP03 — /opt/openbao
# Exposition : openbao.tips-of-mine.com via Traefik (tunnel Cloudflare)
services:
openbao-app:
image: openbao/openbao:${OPENBAO_VERSION}
container_name: openbao-app
restart: unless-stopped
# command: ["server", "-config=/openbao/config/openbao.hcl"]
command: ["server"]
# Le conteneur tourne directement sous l'utilisateur openbao : l'entrypoint
# saute alors sa phase root (chown + su-exec), ce qui permet de garder
# cap_drop ALL. Valeurs à reprendre de ton installation précédente.
user: "${OPENBAO_UID}:${OPENBAO_GID}"
# Pas de `command:` — l'entrypoint ajoute déjà -config=/openbao/config.
# Le préciser ici provoquait l'avertissement « duplicate configuration ».
environment:
- TZ=Europe/Paris
# Pour que `docker exec openbao-app bao ...` fonctionne sans -address
- BAO_ADDR=http://127.0.0.1:8200
volumes:
- ./config:/openbao/config:ro # openbao.hcl
- ./data:/openbao/data # storage raft (bolt) — chown 100:1000
- ./logs:/openbao/logs # audit device (activé plus tard)
networks:
- traefik_front_network
- back_network_openbao
# Durcissement : raft/bolt mmap la base, on désactive mlock côté HCL,
# donc aucune capability n'est nécessaire.
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
healthcheck:
# `bao status` : 0 = descellé, 2 = scellé (état normal après reboot),
# 1 = erreur réelle. On accepte 0 et 2.
test: ["CMD-SHELL", "bao status >/dev/null 2>&1; s=$$?; [ $$s -eq 0 ] || [ $$s -eq 2 ]"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
labels:
# --- Traefik -------------------------------------------------------
- traefik.enable=true
- traefik.docker.network=traefik_front_network
- traefik.http.routers.openbao-https.rule=Host(`openbao.${DOMAIN}`)
- traefik.http.routers.openbao-https.entrypoints=https
- traefik.http.routers.openbao-https.tls=true
- traefik.http.routers.openbao-https.service=openbao
- traefik.http.services.openbao.loadbalancer.server.port=8200
# --- Homepage ------------------------------------------------------
- homepage.group=Security
- homepage.name=OpenBao
- homepage.icon=openbao.png
- homepage.href=https://openbao.${DOMAIN}
- homepage.description=Gestion de secrets (fork Vault)
# --- Watchtower ----------------------------------------------------
# VOLONTAIREMENT ABSENT : une mise à jour = un redémarrage = coffre
# rescellé, donc indisponible jusqu'à saisie manuelle des clés Shamir.
# Les montées de version d'OpenBao se font à la main.
- com.centurylinklabs.watchtower.enable=false
networks:
traefik_front_network:
external: true
back_network_openbao:
driver: bridge