63 lines
1.7 KiB
YAML
63 lines
1.7 KiB
YAML
services:
|
|
dnsmasq:
|
|
image: strm/dnsmasq
|
|
container_name: pxe-dnsmasq
|
|
network_mode: "host" # Indispensable pour que le DHCP écoute sur eth0 et eth1 nativement
|
|
cap_add:
|
|
- NET_ADMIN
|
|
volumes:
|
|
- ./dnsmasq/dnsmasq.conf:/etc/dnsmasq.conf:ro
|
|
- ./tftpboot:/var/lib/tftpboot:ro
|
|
restart: unless-stopped
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: pxe-http
|
|
network_mode: "host" # Pour exposer facilement sur toutes les interfaces
|
|
volumes:
|
|
- ./www:/usr/share/nginx/html:ro
|
|
restart: unless-stopped
|
|
|
|
keycloak:
|
|
image: quay.io/keycloak/keycloak:latest
|
|
command: start-dev # Pour le test, nécessite une config en prod
|
|
environment:
|
|
KC_DB: dev-file
|
|
KEYCLOAK_ADMIN: admin
|
|
KEYCLOAK_ADMIN_PASSWORD: admin_password_temporaire
|
|
ports:
|
|
- "8080:8080"
|
|
|
|
# --- Serveur NFS pour les /home ---
|
|
nfs:
|
|
image: erichough/nfs-server
|
|
container_name: pxe-nfs
|
|
network_mode: host
|
|
privileged: true # Requis pour le serveur NFS en conteneur
|
|
environment:
|
|
- NFS_EXPORT_0=/mnt/usb-data/homes *(rw,sync,no_subtree_check,no_root_squash)
|
|
volumes:
|
|
- /mnt/usb-data/homes:/mnt/usb-data/homes
|
|
- /lib/modules:/lib/modules:ro
|
|
restart: unless-stopped
|
|
|
|
# --- Serveur de Logs (Loki) ---
|
|
loki:
|
|
image: grafana/loki:latest
|
|
container_name: pxe-loki
|
|
ports:
|
|
- "3100:3100"
|
|
command: -config.file=/etc/loki/local-config.yaml
|
|
volumes:
|
|
- /mnt/usb-data/logs:/loki
|
|
restart: unless-stopped
|
|
|
|
# --- Tableau de bord (Grafana) ---
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
container_name: pxe-grafana
|
|
ports:
|
|
- "3000:3000"
|
|
volumes:
|
|
- /mnt/usb-data/monitoring:/var/lib/grafana
|
|
restart: unless-stopped |