No results
1
Services
pepper edited this page 2026-06-27 03:07:48 +00:00
📦 Services
🚪 Front / accès public
SWAG
- Image :
lscr.io/linuxserver/swag - Ports : 443, 80
- Rôle : Reverse proxy nginx. Termine le TLS (Let's Encrypt via DNS challenge Cloudflare). Seul service exposé à Internet.
- Mods chargés :
swag-crowdsec(bouncer lua CrowdSec),swag-authelia(forward-auth) - Config nginx :
./swag/conf/nginx/— un fichier par sous-domaine
WireGuard
- Image :
lscr.io/linuxserver/wireguard - Port : 51820/udp
- Rôle : VPN accès distant. Peers générés dans
./wireguard/config/peer*/. - Interface :
wg0— réseau10.13.13.0/24
🖥 Applications
Nextcloud
- Image :
nextcloud:34 - URL : nextcloud.molok.fr
- DB : PostgreSQL (
nextcloud_db) - Cache : Redis dédié (
redis-nextcloud) - Données :
./nextcloud/data/ - SSO : login natif (pas encore câblé OIDC)
Nextcloud-cron
- Image :
nextcloud:34 - Rôle : Lance
/cron.phptoutes les 5 minutes (tâches planifiées Nextcloud). Partage le même montage que nextcloud.
Forgejo
- Image :
codeberg.org/forgejo/forgejo:10 - URL : forgejo.molok.fr
- DB : PostgreSQL (
forgejo_db) - Données :
./forgejo/data/ - SSO : OIDC natif (Authentik) —
ENABLE_AUTO_REGISTRATION=truecrée le compte à la première connexion - Port interne : 3000
Jellyfin
- Image :
lscr.io/linuxserver/jellyfin - URL : jellyfin.molok.fr
- Config :
./jellyfin/config/ - Cache :
./jellyfin/cache/ - SSO : OIDC via plugin
jellyfin-plugin-sso(configuré parjellyfin-sso-init) - Médias : montage
./qbittorrent/downloads/(lecture)
Jellyfin-sso-init
- Rôle : Conteneur jetable (
restart: no). Configure le plugin SSO de Jellyfin au premier démarrage via l'API REST, puis s'arrête définitivement. - Dépendance : attend que Jellyfin réponde sur le healthcheck
qBittorrent
- Image :
lscr.io/linuxserver/qbittorrent - URL : qbittorrent.molok.fr
- Ports : 6881 tcp/udp (trafic torrent), 8080 (WebUI interne)
- Auth : forward-auth Authentik (pas de SSO natif)
- Downloads :
./qbittorrent/downloads/ - Config :
./qbittorrent/config/
🔐 Identité
Authentik-server
- Image :
ghcr.io/goauthentik/server:2026.x - URL : auth.molok.fr
- DB : PostgreSQL (
authentik_db) - Cache/sessions : Redis (AOF, persistant)
- Rôle : Fournisseur d'identité SSO. Gère : login, MFA, flows, tokens OIDC, groupes.
Authentik-worker
- Image : idem serveur (
command: worker) - Rôle : Tâches de fond (emails, certificats, sessions expirées).
- Réseau : seul service avec accès
outbound(sortie Internet) pour les webhooks et les emails.
🗄 Données
PostgreSQL
- Image :
postgres:18-alpine - Version : 18 (données dans
./postgres/data/18/docker/) - 3 bases :
authentik_db,forgejo_db,nextcloud_db - Création :
postgres-init/init.sh(s'exécute une seule fois, lit les secrets) - Tuning :
shared_buffers,work_mem,max_connectionsdans.env
Redis (Authentik)
- Image :
valkey/valkey:8-alpine - Persistance : AOF (
appendonly yes) — données dans./authentik/redis/ - Usage : sessions Authentik, cache
Redis-nextcloud
- Image :
valkey/valkey:8-alpine - Persistance : aucune (LRU cache pur) — données dans
./nextcloud/redis/ - Usage : cache APCu Nextcloud
📊 Supervision
| Service | Port interne | Rôle |
|---|---|---|
| Prometheus | 9090 | Collecte et stocke les métriques (rétention 30j / 10 GB) |
| Loki | 3100 | Agrège les logs |
| Alloy | — | Agent de collecte : logs conteneurs (Loki) + métriques cAdvisor (Prometheus) |
| Node-exporter | 9100 | Métriques machine hôte (CPU, RAM, disque, réseau) |
| Grafana | 3000 | Tableaux de bord — SSO Authentik (AUTO_LOGIN=true) |
🛡 Sécurité
CrowdSec
- Image :
crowdsecurity/crowdsec - LAPI : port 8080 interne
- Collections actives : nginx, http-bf, Authentik events
- Données :
./crowdsec/config/+./crowdsec/data/
🔄 Mise à jour / infra
Watchtower
- Mode : opt-in (label
com.centurylinklabs.watchtower.enable=true) - Socket : passe par
watchtower-socket-proxy(API Docker filtrée)
Watchtower-socket-proxy / Docker-socket-proxy
Deux proxies séparés pour deux usages distincts :
| Proxy | Pour | Accès |
|---|---|---|
watchtower-socket-proxy |
Watchtower | Lecture + recréation (filtré) |
docker-socket-proxy |
Alloy + CrowdSec | Lecture seule stricte (POST=0) |