Initial commit - Talloires documentation
This commit is contained in:
68
docs/index.md
Normal file
68
docs/index.md
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
# Talloires - Home Server
|
||||||
|
|
||||||
|
Bienvenue sur le portail de documentation de **Talloires**, le serveur domestique Raspberry Pi 5.
|
||||||
|
|
||||||
|
## Services
|
||||||
|
|
||||||
|
### 🎬 Média
|
||||||
|
| Service | URL | Description |
|
||||||
|
|---------|-----|-------------|
|
||||||
|
| Jellyfin | [jellyfin.talloires.local](https://jellyfin.talloires.local) | Streaming média |
|
||||||
|
| Transmission | [transmission.talloires.local](https://transmission.talloires.local) | Client torrent |
|
||||||
|
|
||||||
|
### ✅ Productivité
|
||||||
|
| Service | URL | Description |
|
||||||
|
|---------|-----|-------------|
|
||||||
|
| Vikunja | [vikunja.talloires.local](https://vikunja.talloires.local) | Gestion de tâches (Todoist-like) |
|
||||||
|
| Outline | [outline.talloires.local](https://outline.talloires.local) | Wiki collaboratif |
|
||||||
|
| Hoarder | [hoarder.talloires.local](https://hoarder.talloires.local) | Bookmarks avec AI |
|
||||||
|
| Linkwarden | [linkwarden.talloires.local](https://linkwarden.talloires.local) | Bookmarks avancés |
|
||||||
|
| LanguageTool | [languagetool.talloires.local](https://languagetool.talloires.local) | Correcteur grammatical |
|
||||||
|
|
||||||
|
### 🔧 Infrastructure
|
||||||
|
| Service | URL | Description |
|
||||||
|
|---------|-----|-------------|
|
||||||
|
| Portainer | [portainer.talloires.local](https://portainer.talloires.local) | Gestion Docker |
|
||||||
|
| Dockge | [dockge.talloires.local](https://dockge.talloires.local) | Docker Compose UI |
|
||||||
|
| Gitea | [git.talloires.local](https://git.talloires.local) | Git self-hosted |
|
||||||
|
| MkDocs | [docs.talloires.local](https://docs.talloires.local) | Documentation |
|
||||||
|
|
||||||
|
### 📊 Monitoring
|
||||||
|
| Service | URL | Description |
|
||||||
|
|---------|-----|-------------|
|
||||||
|
| Grafana | [grafana.talloires.local](https://grafana.talloires.local) | Dashboards |
|
||||||
|
| Netdata | [netdata.talloires.local](https://netdata.talloires.local) | Monitoring temps réel |
|
||||||
|
| Uptime Kuma | [uptime.talloires.local](https://uptime.talloires.local) | Status des services |
|
||||||
|
| Cockpit | [cockpit.talloires.local](https://cockpit.talloires.local) | Admin système |
|
||||||
|
|
||||||
|
### 🏠 Domotique
|
||||||
|
| Service | URL | Description |
|
||||||
|
|---------|-----|-------------|
|
||||||
|
| Home Assistant | [homeassistant.talloires.local](https://homeassistant.talloires.local) | Domotique |
|
||||||
|
|
||||||
|
### 🔐 Sécurité
|
||||||
|
| Service | URL | Description |
|
||||||
|
|---------|-----|-------------|
|
||||||
|
| Authelia | [auth.talloires.local](https://auth.talloires.local) | SSO / 2FA |
|
||||||
|
| CrowdSec | - | Protection intrusion |
|
||||||
|
|
||||||
|
## Accès ZeroTier (externe)
|
||||||
|
|
||||||
|
Services accessibles via ZeroTier (sans Authelia) :
|
||||||
|
|
||||||
|
| Service | URL |
|
||||||
|
|---------|-----|
|
||||||
|
| Vikunja | [vikunja.talloires.1871.zt](https://vikunja.talloires.1871.zt) |
|
||||||
|
| Outline | [outline.talloires.1871.zt](https://outline.talloires.1871.zt) |
|
||||||
|
| Hoarder | [hoarder.talloires.1871.zt](https://hoarder.talloires.1871.zt) |
|
||||||
|
| Linkwarden | [linkwarden.talloires.1871.zt](https://linkwarden.talloires.1871.zt) |
|
||||||
|
| LanguageTool | [languagetool.talloires.1871.zt](https://languagetool.talloires.1871.zt) |
|
||||||
|
|
||||||
|
## Accès rapide
|
||||||
|
|
||||||
|
- [Vue ensemble des services](services/overview.md)
|
||||||
|
- [Configuration SSO](services/authelia.md)
|
||||||
|
- [Backup](services/backup.md)
|
||||||
|
- [Ports utilisés](reference/ports.md)
|
||||||
|
- [Commandes utiles](reference/commands.md)
|
||||||
|
- [Scripts de maintenance](reference/scripts.md)
|
||||||
7
docs/javascripts/external-links.js
Normal file
7
docs/javascripts/external-links.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
var links = document.querySelectorAll('a[href^="http"]');
|
||||||
|
links.forEach(function(link) {
|
||||||
|
link.setAttribute('target', '_blank');
|
||||||
|
link.setAttribute('rel', 'noopener noreferrer');
|
||||||
|
});
|
||||||
|
});
|
||||||
118
docs/reference/commands.md
Normal file
118
docs/reference/commands.md
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
# Commandes utiles
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Status de tous les containers
|
||||||
|
docker ps -a
|
||||||
|
|
||||||
|
# Logs dun service
|
||||||
|
docker logs -f <container>
|
||||||
|
|
||||||
|
# Redémarrer un service
|
||||||
|
docker restart <container>
|
||||||
|
|
||||||
|
# Recréer un service (après modif compose)
|
||||||
|
cd ~/docker/talloires && docker compose up -d <service>
|
||||||
|
|
||||||
|
# Tout redémarrer
|
||||||
|
cd ~/docker/talloires && docker compose down && docker compose up -d
|
||||||
|
|
||||||
|
# Shell dans un container
|
||||||
|
docker exec -it <container> sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Caddy
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Recharger la config
|
||||||
|
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
|
||||||
|
|
||||||
|
# Voir les logs
|
||||||
|
docker logs caddy -f
|
||||||
|
|
||||||
|
# Tester la config
|
||||||
|
docker exec caddy caddy validate --config /etc/caddy/Caddyfile
|
||||||
|
```
|
||||||
|
|
||||||
|
## Authelia
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Logs
|
||||||
|
docker logs authelia -f
|
||||||
|
|
||||||
|
# Générer un hash de mot de passe
|
||||||
|
docker exec authelia authelia crypto hash generate argon2 --password "motdepasse"
|
||||||
|
|
||||||
|
# Générer un hash pour OIDC secret
|
||||||
|
docker exec authelia authelia crypto hash generate pbkdf2 --password "secret"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Backup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Lancer un backup manuel
|
||||||
|
~/backup-to-annecy.sh
|
||||||
|
|
||||||
|
# Voir le log
|
||||||
|
cat ~/backup.log
|
||||||
|
|
||||||
|
# Lister les backups sur Annecy
|
||||||
|
sudo ssh -i /root/.ssh/id_ed25519 rsync-talloires@10.171.171.50 "ls -lh /volume1/Backups/talloires/"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Système
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Espace disque
|
||||||
|
df -h
|
||||||
|
|
||||||
|
# Mémoire
|
||||||
|
free -h
|
||||||
|
|
||||||
|
# Température CPU
|
||||||
|
vcgencmd measure_temp
|
||||||
|
|
||||||
|
# Services systemd
|
||||||
|
sudo systemctl status docker
|
||||||
|
sudo systemctl status cockpit
|
||||||
|
|
||||||
|
# Logs système
|
||||||
|
journalctl -f
|
||||||
|
```
|
||||||
|
|
||||||
|
## Réseau
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# IP des containers
|
||||||
|
docker network inspect talloires_net | grep -A2 Name
|
||||||
|
|
||||||
|
# Test DNS Docker
|
||||||
|
docker exec caddy nslookup authelia
|
||||||
|
|
||||||
|
# Connecter un container au réseau
|
||||||
|
docker network connect talloires_net <container>
|
||||||
|
```
|
||||||
|
|
||||||
|
## CrowdSec
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Status
|
||||||
|
docker exec crowdsec cscli metrics
|
||||||
|
|
||||||
|
# Décisions actives (bans)
|
||||||
|
docker exec crowdsec cscli decisions list
|
||||||
|
|
||||||
|
# Ajouter un ban manuel
|
||||||
|
docker exec crowdsec cscli decisions add --ip 1.2.3.4 --reason "test"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Certificats
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Exporter le CA Caddy (pour clients)
|
||||||
|
docker exec caddy cat /data/caddy/pki/authorities/local/root.crt > caddy-ca.crt
|
||||||
|
|
||||||
|
# Installer sur Mac
|
||||||
|
security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain-db caddy-ca.crt
|
||||||
|
```
|
||||||
77
docs/reference/ports.md
Normal file
77
docs/reference/ports.md
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# Ports utilisés
|
||||||
|
|
||||||
|
## Ports exposés (accessibles via réseau)
|
||||||
|
|
||||||
|
| Port | Service | Protocol | Notes |
|
||||||
|
|------|---------|----------|-------|
|
||||||
|
| 80 | Caddy (redirect HTTPS) | TCP | Redirige vers 443 |
|
||||||
|
| 443 | Caddy (reverse proxy) | TCP | Point d'entrée principal |
|
||||||
|
| 8096 | Jellyfin | TCP | Accès direct (optionnel) |
|
||||||
|
| 3030 | Gitea HTTP | TCP | Mappé depuis 3000 interne |
|
||||||
|
| 2222 | Gitea SSH | TCP | Mappé depuis 22 interne |
|
||||||
|
| 8123 | Home Assistant | TCP | Mode host network |
|
||||||
|
| 9090 | Cockpit | TCP | Admin système |
|
||||||
|
| 1514 | Syslog-ng | TCP/UDP | Collecte syslog |
|
||||||
|
| 51413 | Transmission P2P | TCP/UDP | BitTorrent |
|
||||||
|
|
||||||
|
## Ports internes Docker (talloires_net)
|
||||||
|
|
||||||
|
| Port | Service(s) | Notes |
|
||||||
|
|------|------------|-------|
|
||||||
|
| 3000 | Gitea, Grafana, Linkwarden, Hoarder, Outline | Plusieurs services partagent ce port |
|
||||||
|
| 3001 | Uptime Kuma | |
|
||||||
|
| 3100 | Loki | Agrégation logs |
|
||||||
|
| 3456 | Vikunja | |
|
||||||
|
| 5001 | Dockge | |
|
||||||
|
| 5432 | PostgreSQL | Linkwarden-db, Outline-db |
|
||||||
|
| 6379 | Redis | Outline-redis |
|
||||||
|
| 8000 | MkDocs | |
|
||||||
|
| 8010 | LanguageTool | |
|
||||||
|
| 9000 | Portainer | |
|
||||||
|
| 9091 | Authelia, Transmission Web | |
|
||||||
|
| 19999 | Netdata | |
|
||||||
|
|
||||||
|
## URLs par domaine
|
||||||
|
|
||||||
|
### Accès local (.talloires.local) - avec Authelia
|
||||||
|
|
||||||
|
| Service | URL | Authentification |
|
||||||
|
|---------|-----|------------------|
|
||||||
|
| Homepage | https://talloires.local | Authelia |
|
||||||
|
| Auth | https://auth.talloires.local | - |
|
||||||
|
| Git | https://git.talloires.local | OIDC Authelia |
|
||||||
|
| Jellyfin | https://jellyfin.talloires.local | Authelia |
|
||||||
|
| Grafana | https://grafana.talloires.local | Header Auth |
|
||||||
|
| Portainer | https://portainer.talloires.local | Authelia |
|
||||||
|
| Dockge | https://dockge.talloires.local | Authelia |
|
||||||
|
| Docs | https://docs.talloires.local | Authelia |
|
||||||
|
| Vikunja | https://vikunja.talloires.local | Authelia |
|
||||||
|
| Outline | https://outline.talloires.local | OIDC Authelia |
|
||||||
|
| Hoarder | https://hoarder.talloires.local | Authelia |
|
||||||
|
| Linkwarden | https://linkwarden.talloires.local | Authelia |
|
||||||
|
| LanguageTool | https://languagetool.talloires.local | Authelia |
|
||||||
|
| Transmission | https://transmission.talloires.local | Authelia |
|
||||||
|
| Netdata | https://netdata.talloires.local | Authelia |
|
||||||
|
| Uptime Kuma | https://uptime.talloires.local | Authelia |
|
||||||
|
| Cockpit | https://cockpit.talloires.local | Authelia |
|
||||||
|
| Home Assistant | https://homeassistant.talloires.local | Authelia |
|
||||||
|
|
||||||
|
### Accès ZeroTier (.talloires.1871.zt) - sans Authelia
|
||||||
|
|
||||||
|
Ces URLs sont accessibles depuis l'extérieur via le réseau ZeroTier, sans passer par Authelia (authentification propre à chaque service).
|
||||||
|
|
||||||
|
| Service | URL | Auth native |
|
||||||
|
|---------|-----|-------------|
|
||||||
|
| Vikunja | https://vikunja.talloires.1871.zt | Vikunja login |
|
||||||
|
| Outline | https://outline.talloires.1871.zt | OIDC Authelia |
|
||||||
|
| Hoarder | https://hoarder.talloires.1871.zt | Hoarder login |
|
||||||
|
| Linkwarden | https://linkwarden.1871.zt | Linkwarden login |
|
||||||
|
| LanguageTool | https://languagetool.talloires.1871.zt | Aucune (API) |
|
||||||
|
|
||||||
|
## Réseau ZeroTier
|
||||||
|
|
||||||
|
| Serveur | IP ZeroTier | Rôle |
|
||||||
|
|---------|-------------|------|
|
||||||
|
| Talloires | 10.144.221.22 | Serveur principal (Pi5) |
|
||||||
|
| Annecy | 10.144.78.193 | NAS Synology (backup) |
|
||||||
|
| Olympou | 10.144.46.46 | Mac de travail |
|
||||||
56
docs/reference/scripts.md
Normal file
56
docs/reference/scripts.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# Scripts de maintenance
|
||||||
|
|
||||||
|
Scripts utilitaires pour la gestion de Talloires.
|
||||||
|
|
||||||
|
## update-containers.sh
|
||||||
|
|
||||||
|
Met à jour tous les containers Docker en parcourant les répertoires avec un fichier docker-compose.
|
||||||
|
|
||||||
|
**Emplacement** :
|
||||||
|
|
||||||
|
=== Pulling latest images ===
|
||||||
|
|
||||||
|
**Usage** :
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## transmission-toggle.sh
|
||||||
|
|
||||||
|
Active/désactive le container Transmission à la demande (économie de ressources).
|
||||||
|
|
||||||
|
**Emplacement** :
|
||||||
|
|
||||||
|
🔴 Transmission is STOPPED
|
||||||
|
|
||||||
|
**Usage** :
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## backup-to-annecy.sh
|
||||||
|
|
||||||
|
Sauvegarde les configs Docker vers le NAS Synology (Annecy).
|
||||||
|
|
||||||
|
**Emplacement** :
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Planification** : Cron à 3h00 quotidien
|
||||||
|
|
||||||
|
|
||||||
|
**Vérifier les backups** :
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Watchtower (automatique)
|
||||||
|
|
||||||
|
Watchtower vérifie et met à jour automatiquement les containers à 4h00.
|
||||||
|
|
||||||
|
**Configuration** : Dans
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Logs** :
|
||||||
|
|
||||||
182
docs/services/authelia.md
Normal file
182
docs/services/authelia.md
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
# Authelia - SSO
|
||||||
|
|
||||||
|
Authelia fournit l'authentification unique (SSO) pour tous les services Talloires.
|
||||||
|
|
||||||
|
## Accès
|
||||||
|
|
||||||
|
| Paramètre | Valeur |
|
||||||
|
|-----------|--------|
|
||||||
|
| URL | [auth.talloires.local](https://auth.talloires.local) |
|
||||||
|
| Utilisateur | lionel |
|
||||||
|
| Email | dflected@dflected.org |
|
||||||
|
| 2FA | TOTP activé |
|
||||||
|
|
||||||
|
## Services protégés (forward_auth)
|
||||||
|
|
||||||
|
Ces services requièrent une authentification via Authelia avant d'accéder au backend :
|
||||||
|
|
||||||
|
| Service | URL |
|
||||||
|
|---------|-----|
|
||||||
|
| docs | docs.talloires.local |
|
||||||
|
| portainer | portainer.talloires.local |
|
||||||
|
| dockge | dockge.talloires.local |
|
||||||
|
| transmission | transmission.talloires.local |
|
||||||
|
| netdata | netdata.talloires.local |
|
||||||
|
| homeassistant | homeassistant.talloires.local |
|
||||||
|
| uptime | uptime.talloires.local |
|
||||||
|
| cockpit | cockpit.talloires.local |
|
||||||
|
| vikunja | vikunja.talloires.local |
|
||||||
|
| hoarder | hoarder.talloires.local |
|
||||||
|
| linkwarden | linkwarden.talloires.local |
|
||||||
|
| languagetool | languagetool.talloires.local |
|
||||||
|
| jellyfin | jellyfin.talloires.local |
|
||||||
|
|
||||||
|
## Services avec OAuth/OIDC
|
||||||
|
|
||||||
|
Ces services utilisent Authelia comme provider OpenID Connect :
|
||||||
|
|
||||||
|
### Gitea
|
||||||
|
| Paramètre | Valeur |
|
||||||
|
|-----------|--------|
|
||||||
|
| Client ID | gitea |
|
||||||
|
| Redirect URI | https://git.talloires.local/user/oauth2/Authelia/callback |
|
||||||
|
| Scopes | openid, email, profile |
|
||||||
|
|
||||||
|
### Outline
|
||||||
|
| Paramètre | Valeur |
|
||||||
|
|-----------|--------|
|
||||||
|
| Client ID | outline |
|
||||||
|
| Redirect URI | https://outline.talloires.local/auth/oidc.callback |
|
||||||
|
| Scopes | openid, offline_access, profile, email |
|
||||||
|
|
||||||
|
### Grafana (Header Auth)
|
||||||
|
Grafana utilise l'authentification par header via Authelia (pas OIDC) :
|
||||||
|
|
||||||
|
| Header | Valeur |
|
||||||
|
|--------|--------|
|
||||||
|
| Remote-User | Utilisateur authentifié |
|
||||||
|
| Remote-Email | Email de l'utilisateur |
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### Fichiers
|
||||||
|
| Fichier | Usage |
|
||||||
|
|---------|-------|
|
||||||
|
| ~/docker/authelia/config/configuration.yml | Config principale |
|
||||||
|
| ~/docker/authelia/config/users_database.yml | Base utilisateurs |
|
||||||
|
| ~/docker/authelia/config/oidc.key | Clé privée OIDC |
|
||||||
|
|
||||||
|
### SMTP (Proton Mail)
|
||||||
|
| Paramètre | Valeur |
|
||||||
|
|-----------|--------|
|
||||||
|
| Serveur | smtp.protonmail.ch:465 |
|
||||||
|
| Protocol | TLS implicite (submissions://) |
|
||||||
|
| From | Talloires <dflected@dflected.org> |
|
||||||
|
|
||||||
|
### Buffers HTTP
|
||||||
|
|
||||||
|
Pour éviter l'erreur 431 (Request Header Fields Too Large), la config inclut :
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
server:
|
||||||
|
buffers:
|
||||||
|
read: 8192
|
||||||
|
write: 8192
|
||||||
|
```
|
||||||
|
|
||||||
|
## Intégration Caddy
|
||||||
|
|
||||||
|
### Snippet forward_auth
|
||||||
|
```
|
||||||
|
(authelia) {
|
||||||
|
forward_auth authelia:9091 {
|
||||||
|
uri /api/authz/forward-auth
|
||||||
|
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage dans Caddyfile
|
||||||
|
```
|
||||||
|
monservice.talloires.local {
|
||||||
|
import authelia
|
||||||
|
reverse_proxy backend:port
|
||||||
|
tls internal
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Bypass Authelia (accès ZeroTier)
|
||||||
|
```
|
||||||
|
monservice.talloires.1871.zt {
|
||||||
|
# Pas de forward_auth = pas d'Authelia
|
||||||
|
reverse_proxy backend:port
|
||||||
|
tls internal
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ajouter un client OIDC
|
||||||
|
|
||||||
|
1. Générer le hash du secret :
|
||||||
|
```bash
|
||||||
|
docker exec authelia authelia crypto hash generate pbkdf2 --password "mon-secret"
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Ajouter dans configuration.yml (section identity_providers.oidc.clients) :
|
||||||
|
```yaml
|
||||||
|
- client_id: nouveau_client
|
||||||
|
client_name: Mon Service
|
||||||
|
client_secret: "$pbkdf2-sha512$..."
|
||||||
|
public: false
|
||||||
|
authorization_policy: two_factor
|
||||||
|
redirect_uris:
|
||||||
|
- https://service.talloires.local/callback
|
||||||
|
scopes:
|
||||||
|
- openid
|
||||||
|
- email
|
||||||
|
- profile
|
||||||
|
token_endpoint_auth_method: client_secret_post
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Redémarrer Authelia :
|
||||||
|
```bash
|
||||||
|
docker restart authelia
|
||||||
|
```
|
||||||
|
|
||||||
|
## Commandes utiles
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Logs
|
||||||
|
docker logs authelia -f
|
||||||
|
|
||||||
|
# Générer un hash de mot de passe utilisateur
|
||||||
|
docker exec authelia authelia crypto hash generate argon2 --password "motdepasse"
|
||||||
|
|
||||||
|
# Générer un hash pour OIDC client secret
|
||||||
|
docker exec authelia authelia crypto hash generate pbkdf2 --password "secret"
|
||||||
|
|
||||||
|
# Valider la configuration
|
||||||
|
docker exec authelia authelia validate-config
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dépannage
|
||||||
|
|
||||||
|
### Erreur 431 (Header Fields Too Large)
|
||||||
|
Augmenter les buffers dans configuration.yml :
|
||||||
|
```yaml
|
||||||
|
server:
|
||||||
|
buffers:
|
||||||
|
read: 8192
|
||||||
|
write: 8192
|
||||||
|
```
|
||||||
|
|
||||||
|
### OIDC "invalid_client"
|
||||||
|
Vérifier que le client_secret est hashé avec pbkdf2 (pas argon2).
|
||||||
|
|
||||||
|
### Cookies non persistants
|
||||||
|
Vérifier que le domain est correct dans session :
|
||||||
|
```yaml
|
||||||
|
session:
|
||||||
|
cookies:
|
||||||
|
- domain: talloires.local
|
||||||
|
authelia_url: https://auth.talloires.local
|
||||||
|
```
|
||||||
76
docs/services/backup.md
Normal file
76
docs/services/backup.md
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
# Backup
|
||||||
|
|
||||||
|
Sauvegarde automatique de Talloires vers Annecy (Synology NAS).
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
| Paramètre | Valeur |
|
||||||
|
|-----------|--------|
|
||||||
|
| Script | ~/backup-to-annecy.sh |
|
||||||
|
| Destination | rsync-talloires@10.171.171.50:/volume1/Backups/talloires/ |
|
||||||
|
| Méthode | tar over SSH (rsync SUID bloqué sur Synology DSM 7) |
|
||||||
|
| Schedule | Cron quotidien à 3h00 |
|
||||||
|
| Rétention | 7 derniers backups |
|
||||||
|
| Log | ~/backup.log |
|
||||||
|
|
||||||
|
## Données sauvegardées
|
||||||
|
|
||||||
|
- ~/docker/ (toutes les configs Docker)
|
||||||
|
|
||||||
|
### Exclusions
|
||||||
|
- *.log
|
||||||
|
- */cache/*
|
||||||
|
- */logs/*
|
||||||
|
- */__pycache__/*
|
||||||
|
|
||||||
|
## Authentification SSH
|
||||||
|
|
||||||
|
- Clé privée (root): /root/.ssh/id_ed25519
|
||||||
|
- Clé privée (lionel): ~/.ssh/id_ed25519
|
||||||
|
- Utilisateur distant: rsync-talloires
|
||||||
|
- Fingerprint: SHA256:CxpeBfvrBV/s+RNE49SwrY3WsG28Du3nyQ/2D9lApU8
|
||||||
|
|
||||||
|
## Commandes
|
||||||
|
|
||||||
|
### Lancer un backup manuel
|
||||||
|
```bash
|
||||||
|
~/backup-to-annecy.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Vérifier le log
|
||||||
|
```bash
|
||||||
|
cat ~/backup.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Vérifier les backups sur Annecy
|
||||||
|
```bash
|
||||||
|
sudo ssh -i /root/.ssh/id_ed25519 rsync-talloires@10.171.171.50 "ls -lh /volume1/Backups/talloires/"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Restaurer un backup
|
||||||
|
```bash
|
||||||
|
# Sur Talloires
|
||||||
|
sudo ssh -i /root/.ssh/id_ed25519 rsync-talloires@10.171.171.50 "cat /volume1/Backups/talloires/docker-backup-YYYYMMDD-HHMMSS.tar.gz" | sudo tar -xzf - -C /home/lionel/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Cron
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Voir le cron
|
||||||
|
sudo crontab -l
|
||||||
|
|
||||||
|
# Modifier
|
||||||
|
sudo crontab -e
|
||||||
|
```
|
||||||
|
|
||||||
|
Entrée actuelle :
|
||||||
|
```
|
||||||
|
0 3 * * * /home/lionel/backup-to-annecy.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes techniques
|
||||||
|
|
||||||
|
Le rsync classique ne fonctionne pas avec Synology DSM 7 car :
|
||||||
|
- rsync est SUID root sur DSM
|
||||||
|
- Les utilisateurs non-admin nont pas de shell par défaut
|
||||||
|
- Solution: tar over SSH fonctionne parfaitement
|
||||||
149
docs/services/overview.md
Normal file
149
docs/services/overview.md
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
# Vue ensemble des services
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
```
|
||||||
|
Client (Mac/iPhone)
|
||||||
|
|
|
||||||
|
| HTTPS (certificat Caddy CA)
|
||||||
|
v
|
||||||
|
[Caddy] :443
|
||||||
|
|
|
||||||
|
+-- forward_auth --> [Authelia] :9091
|
||||||
|
| |
|
||||||
|
| (si authentifié)
|
||||||
|
| |
|
||||||
|
+-------------------------+
|
||||||
|
|
|
||||||
|
v
|
||||||
|
Services Docker
|
||||||
|
```
|
||||||
|
|
||||||
|
## Services actifs (24 containers)
|
||||||
|
|
||||||
|
### 🎬 Média
|
||||||
|
| Service | Container | Port | Description |
|
||||||
|
|---------|-----------|------|-------------|
|
||||||
|
| Jellyfin | jellyfin | 8096 | Streaming vidéo avec transcodage hardware (VideoCore) |
|
||||||
|
| Transmission | transmission | 9091, 51413 | Client BitTorrent avec web UI |
|
||||||
|
|
||||||
|
### ✅ Productivité
|
||||||
|
| Service | Container | Port | Description |
|
||||||
|
|---------|-----------|------|-------------|
|
||||||
|
| Vikunja | vikunja | 3456 | Gestion de tâches style Todoist/Trello avec CalDAV |
|
||||||
|
| Outline | outline + outline-db + outline-redis | 3000 | Wiki collaboratif avec OIDC (PostgreSQL + Redis) |
|
||||||
|
| Hoarder | hoarder | 3000 | Bookmarks intelligents avec tagging AI (Anthropic) |
|
||||||
|
| Linkwarden | linkwarden + linkwarden-db | 3000 | Gestionnaire de bookmarks avancé avec archivage |
|
||||||
|
| LanguageTool | languagetool | 8010 | Serveur de correction grammaticale (FR/EN/DE) |
|
||||||
|
|
||||||
|
### 🔧 Infrastructure
|
||||||
|
| Service | Container | Port | Description |
|
||||||
|
|---------|-----------|------|-------------|
|
||||||
|
| Portainer | portainer | 9000 | Interface de gestion Docker |
|
||||||
|
| Dockge | dockge | 5001 | Interface Docker Compose |
|
||||||
|
| Gitea | gitea | 3000, 22 | Serveur Git avec SSO Authelia |
|
||||||
|
| MkDocs | mkdocs | 8000 | Cette documentation |
|
||||||
|
|
||||||
|
### 📊 Monitoring
|
||||||
|
| Service | Container | Port | Description |
|
||||||
|
|---------|-----------|------|-------------|
|
||||||
|
| Grafana | grafana | 3000 | Dashboards et visualisation (header auth via Authelia) |
|
||||||
|
| Netdata | netdata | 19999 | Monitoring système temps réel |
|
||||||
|
| Uptime Kuma | uptime-kuma | 3001 | Surveillance uptime des services |
|
||||||
|
| Loki | loki | 3100 | Agrégation de logs |
|
||||||
|
| Promtail | promtail | - | Collecte de logs pour Loki |
|
||||||
|
| Syslog-ng | syslog-ng | 1514 | Collecte syslog centralisée |
|
||||||
|
|
||||||
|
### 🏠 Domotique
|
||||||
|
| Service | Container | Port | Description |
|
||||||
|
|---------|-----------|------|-------------|
|
||||||
|
| Home Assistant | homeassistant | 8123 | Automatisation domotique (mode host network) |
|
||||||
|
|
||||||
|
### 🔐 Sécurité
|
||||||
|
| Service | Container | Port | Description |
|
||||||
|
|---------|-----------|------|-------------|
|
||||||
|
| Authelia | authelia | 9091 | SSO, 2FA, OIDC provider |
|
||||||
|
| CrowdSec | crowdsec | - | IDS/IPS collaboratif |
|
||||||
|
| Caddy | caddy | 80, 443 | Reverse proxy avec TLS automatique |
|
||||||
|
|
||||||
|
### 🔄 Maintenance
|
||||||
|
| Service | Container | Port | Description |
|
||||||
|
|---------|-----------|------|-------------|
|
||||||
|
| Watchtower | watchtower | 8080 | Mise à jour auto des containers (4h00) |
|
||||||
|
|
||||||
|
## Répertoires Docker
|
||||||
|
|
||||||
|
```
|
||||||
|
~/docker/
|
||||||
|
├── authelia/ # Config SSO
|
||||||
|
├── caddy/ # Caddyfile + certificats
|
||||||
|
├── crowdsec/ # Config IDS
|
||||||
|
├── dockge/ # Stacks Dockge
|
||||||
|
├── docs/ # MkDocs (cette doc)
|
||||||
|
├── gitea/ # Config + data Gitea
|
||||||
|
├── grafana/ # Dashboards
|
||||||
|
├── homeassistant/ # Config HA
|
||||||
|
├── languagetool/ # Config LT
|
||||||
|
├── linkwarden/ # Config Linkwarden
|
||||||
|
├── outline/ # Config Outline
|
||||||
|
├── syslog-ng/ # Config syslog
|
||||||
|
├── talloires/ # Stack principal (docker-compose.yml)
|
||||||
|
├── uptime-kuma/ # Data Uptime Kuma
|
||||||
|
├── vikunja/ # Config Vikunja
|
||||||
|
└── zeronsd/ # DNS ZeroTier
|
||||||
|
```
|
||||||
|
|
||||||
|
## Réseau
|
||||||
|
|
||||||
|
| Réseau | Plage | Usage |
|
||||||
|
|--------|-------|-------|
|
||||||
|
| ZeroTier | 10.144.0.0/16 | Accès distant |
|
||||||
|
| Docker talloires_net | 172.20.0.0/16 | Inter-containers |
|
||||||
|
| LAN physique | 10.171.171.0/24 | Réseau local |
|
||||||
|
|
||||||
|
### Adresses ZeroTier clés
|
||||||
|
| Serveur | IP |
|
||||||
|
|---------|-----|
|
||||||
|
| Talloires (Pi5) | 10.144.221.22 |
|
||||||
|
| Annecy (Synology) | 10.144.78.193 |
|
||||||
|
| Olympou (Mac) | 10.144.46.46 |
|
||||||
|
|
||||||
|
## Stockage
|
||||||
|
|
||||||
|
| Mount | Source | Usage |
|
||||||
|
|-------|--------|-------|
|
||||||
|
| /mnt/mediaserver | USB SSD 4TB | Films, Séries, Downloads, Databases |
|
||||||
|
| ~/docker | SD Card | Configs Docker légères |
|
||||||
|
|
||||||
|
### Structure USB (/mnt/mediaserver)
|
||||||
|
```
|
||||||
|
/mnt/mediaserver/
|
||||||
|
├── databases/
|
||||||
|
│ ├── languagetool/ngrams/ # N-grams FR/EN/DE (~8GB)
|
||||||
|
│ └── outline/
|
||||||
|
│ ├── data/ # Fichiers Outline
|
||||||
|
│ ├── postgres/ # PostgreSQL Outline
|
||||||
|
│ └── redis/ # Redis Outline
|
||||||
|
├── downloads/ # Transmission
|
||||||
|
├── movies/ # Films (Jellyfin)
|
||||||
|
└── series/ # Séries (Jellyfin)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Backup
|
||||||
|
|
||||||
|
| Paramètre | Valeur |
|
||||||
|
|-----------|--------|
|
||||||
|
| Destination | Annecy (Synology) |
|
||||||
|
| Schedule | 3h00 quotidien |
|
||||||
|
| Rétention | 7 jours |
|
||||||
|
| Méthode | tar over SSH |
|
||||||
|
|
||||||
|
Voir [Scripts de maintenance](../reference/scripts.md) pour les détails.
|
||||||
|
|
||||||
|
## Maintenance automatique
|
||||||
|
|
||||||
|
| Tâche | Schedule | Outil |
|
||||||
|
|-------|----------|-------|
|
||||||
|
| Mise à jour containers | 4h00 | Watchtower |
|
||||||
|
| Backup vers Annecy | 3h00 | backup-to-annecy.sh (cron) |
|
||||||
|
| Nettoyage images | Après update | docker image prune |
|
||||||
36
mkdocs.yml
Normal file
36
mkdocs.yml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
site_name: Talloires
|
||||||
|
site_description: Documentation du serveur Talloires
|
||||||
|
site_url: https://docs.talloires.local
|
||||||
|
|
||||||
|
theme:
|
||||||
|
name: material
|
||||||
|
palette:
|
||||||
|
scheme: slate
|
||||||
|
primary: indigo
|
||||||
|
accent: indigo
|
||||||
|
features:
|
||||||
|
- navigation.instant
|
||||||
|
- navigation.sections
|
||||||
|
- navigation.expand
|
||||||
|
- toc.integrate
|
||||||
|
|
||||||
|
extra_javascript:
|
||||||
|
- javascripts/external-links.js
|
||||||
|
|
||||||
|
nav:
|
||||||
|
- Accueil: index.md
|
||||||
|
- Services:
|
||||||
|
- Vue ensemble: services/overview.md
|
||||||
|
- Authelia SSO: services/authelia.md
|
||||||
|
- Backup: services/backup.md
|
||||||
|
- Référence:
|
||||||
|
- Ports: reference/ports.md
|
||||||
|
- Commandes: reference/commands.md
|
||||||
|
- Scripts: reference/scripts.md
|
||||||
|
|
||||||
|
markdown_extensions:
|
||||||
|
- tables
|
||||||
|
- admonition
|
||||||
|
- pymdownx.highlight
|
||||||
|
- pymdownx.superfences
|
||||||
|
- pymdownx.details
|
||||||
Reference in New Issue
Block a user