init: documentation serveur
This commit is contained in:
161
SERVER.md
Normal file
161
SERVER.md
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
# 🖥️ SERVER.md — Documentation du serveur `lespotitschats`
|
||||||
|
|
||||||
|
> Dernière mise à jour : Avril 2026
|
||||||
|
> À maintenir à jour après chaque modification majeure.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📡 Accès
|
||||||
|
|
||||||
|
| Champ | Valeur |
|
||||||
|
|--------------|-------------------------------|
|
||||||
|
| IP locale | 192.168.1.54 |
|
||||||
|
| Hostname | lespotitschats |
|
||||||
|
| User SSH | vohorgeez |
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh vohorgeez@192.168.1.54
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐳 Services Docker (état réel)
|
||||||
|
|
||||||
|
| Service | Image | Port exposé | URL locale | Notes |
|
||||||
|
|----------------|----------------------------|-------------|----------------------------- |------------------------------|
|
||||||
|
| Jellyfin | jellyfin/jellyfin | :8096 | http://192.168.1.54:8096 | Media server, healthy |
|
||||||
|
| Nextcloud | nextcloud | :8080 | http://192.168.1.54:8080 | Cloud perso |
|
||||||
|
| Nextcloud DB | mariadb:10.6 | interne | — | Ne pas exposer |
|
||||||
|
| Gitea | gitea/gitea | :3000 / :222| http://192.168.1.54:3000 | :222 = SSH Git |
|
||||||
|
| Portainer | portainer/portainer-ce:sts | :9443 | https://192.168.1.54:9443 | ⚠️ HTTPS uniquement |
|
||||||
|
| PostgreSQL | postgres:17 | :5432 | — | ⚠️ Exposé — à restreindre |
|
||||||
|
| mnist-app | mnist-app (local) | :8501 | http://192.168.1.54:8501 | App ML perso |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ Services système actifs
|
||||||
|
|
||||||
|
| Service | Rôle |
|
||||||
|
|-------------------|---------------------------------------|
|
||||||
|
| nginx | Reverse proxy |
|
||||||
|
| fail2ban | Protection brute-force SSH |
|
||||||
|
| netdata | Monitoring infra (interface web) |
|
||||||
|
| ssh | Accès distant |
|
||||||
|
| docker | Runtime containers |
|
||||||
|
| unattended-upgrades | MAJ sécurité automatiques |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 Dossiers importants
|
||||||
|
|
||||||
|
```
|
||||||
|
/data/media → Fichiers Jellyfin (films, séries, musique)
|
||||||
|
/data/cloud → Données Nextcloud
|
||||||
|
/data/backups → Sauvegardes
|
||||||
|
/data/projects → Projets perso / code
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 Procédures
|
||||||
|
|
||||||
|
### Redémarrer un service Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker restart <nom_du_container>
|
||||||
|
|
||||||
|
# Exemples :
|
||||||
|
docker restart jellyfin
|
||||||
|
docker restart nextcloud
|
||||||
|
docker restart gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
### Voir les logs d'un container
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker logs <nom_du_container> --tail 50 -f
|
||||||
|
```
|
||||||
|
|
||||||
|
### Arrêter / relancer tous les containers
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker stop $(docker ps -q)
|
||||||
|
docker start $(docker ps -a -q)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Ajouter un nouveau service Docker
|
||||||
|
|
||||||
|
1. Crée un dossier dans `/data/projects/nom_service/`
|
||||||
|
2. Ajoute un `docker-compose.yml`
|
||||||
|
3. Lance :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /data/projects/nom_service
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Configure nginx si tu veux un reverse proxy :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo nano /etc/nginx/sites-available/nom_service
|
||||||
|
sudo ln -s /etc/nginx/sites-available/nom_service /etc/nginx/sites-enabled/
|
||||||
|
sudo nginx -t && sudo systemctl reload nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
5. **Documente le service dans ce fichier.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Sauvegarder manuellement
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Nextcloud
|
||||||
|
docker exec nextcloud php occ maintenance:mode --on
|
||||||
|
tar -czf /data/backups/nextcloud_$(date +%F).tar.gz /data/cloud
|
||||||
|
docker exec nextcloud php occ maintenance:mode --off
|
||||||
|
|
||||||
|
# Gitea
|
||||||
|
docker exec gitea gitea dump -c /data/gitea/conf/app.ini
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Redémarrer le serveur proprement
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Vérifier que tout est propre avant
|
||||||
|
docker ps
|
||||||
|
sudo systemctl status nginx
|
||||||
|
|
||||||
|
# Reboot
|
||||||
|
sudo reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
**Après reboot, vérifier :**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker ps # tous les containers sont up ?
|
||||||
|
curl http://localhost:8096 # Jellyfin
|
||||||
|
curl http://localhost:8080 # Nextcloud
|
||||||
|
curl http://localhost:3000 # Gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ Points de vigilance
|
||||||
|
|
||||||
|
- `postgres` est exposé sur `:5432` → restreindre avec un firewall ou le mettre en réseau Docker interne uniquement
|
||||||
|
- `Portainer` est en HTTPS sur `:9443` (pas `:9000`)
|
||||||
|
- `fail2ban` est actif → 3 échecs SSH = bannissement
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 TODO / Améliorations futures
|
||||||
|
|
||||||
|
- [ ] Restreindre PostgreSQL au réseau Docker interne
|
||||||
|
- [ ] Mettre en place des sauvegardes automatiques (cron)
|
||||||
|
- [ ] Configurer les sous-domaines nginx pour chaque service
|
||||||
|
- [ ] Ajouter monitoring des volumes disque
|
||||||
|
|
||||||
Reference in New Issue
Block a user