From 3b7d24a4387f9f66fe94a685079366c5756f22fe Mon Sep 17 00:00:00 2001 From: Pierre Martin Date: Thu, 19 Feb 2026 12:30:26 +0100 Subject: [PATCH] Initial commit --- .env.example | 1 + .gitignore | 1 + CLAUDE.md | 105 +++++++++++++++++++++++++++++++++++++ install-serveur.md | 101 +++++++++++++++++++++++++++++++++++ logos/favicon.ico | Bin 0 -> 2423 bytes logos/logo-picto-blanc.png | Bin 0 -> 8978 bytes logos/logo-picto.png | Bin 0 -> 8116 bytes logos/logo.png | Bin 0 -> 12493 bytes site | 1 + todo.txt | 30 +++++++++++ 10 files changed, 239 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 install-serveur.md create mode 100644 logos/favicon.ico create mode 100644 logos/logo-picto-blanc.png create mode 100644 logos/logo-picto.png create mode 100644 logos/logo.png create mode 160000 site create mode 100644 todo.txt diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e83ec9f --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +CAPROVER_PASSWORD= diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..c3708e7 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,105 @@ +# Serveur sans.pub + +Lorsque tu interroges le serveur, ne lances que des commandes en LECTURE SEULE (non destructrices). Sauf à la demande explicite de l'utilisateur. + +## Accès + +- **SSH**: `ssh cloud@sans.pub` +- **CapRover**: https://captain.cloud.sans.pub +- **Utilisateur**: cloud (gestion Docker/Caprover) + +## Infrastructure + +- **OS**: Debian 9 (kernel 4.9.0-12-amd64) +- **Docker**: 19.03.12 (mode Swarm) +- **Disque**: 914 Go total, ~193 Go utilisés (23%) +- **RAM**: 23 Go (attention: 20 Go utilisés, swap actif 7.4 Go) + +## Structure Caprover + +- `/captain/data/` - données persistantes +- `/captain/generated/` - configs générées +- `/captain/temp/` - fichiers temporaires + +## Services actifs (~40 services) + +### Outils collaboratifs + +- **etherpad** - éditeur collaboratif +- **ethercalc** - tableur collaboratif +- **cryptpad** - suite bureautique chiffrée +- **nextcloud** - cloud personnel + +### Développement + +- **gitea** - forge Git +- **adminer** - gestion BDD + +### Communication + +- **writefreely** - blog +- **peertube** - vidéos +- **rss** + **rss-bridge** - flux RSS + +### Sécurité/Outils + +- **bitwarden** - gestionnaire mots de passe +- **privatebin** - partage de texte chiffré +- **ots** - secrets temporaires +- **it-tools** - boîte à outils +- **cyberchef** - manipulation de données + +### Sites perso + +- **pierre-martin** - site perso +- **sans-pub-site** - site principal +- **une-espace** - autre projet + +### Enquêtes + +- **limesurvey** - sondages + +## Services en erreur + +- `srv-captain--mail` (0/1) - port 4190 bloqué, nécessite redémarrage Docker + +## Commandes et skills Claude + +### Commande +- `/supervision` - analyse complète de la santé du serveur (invocation manuelle) + +### Skill (auto-activé) +- `caprover` - gestion des apps via API CapRover + - `list` : lister les apps + - `info NOM` : détails d'une app + - `env NOM` : variables d'environnement + - `scale NOM N` : changer le nombre d'instances + - `restart NOM` : redémarrer une app + +**Prérequis** : définir `CAPROVER_PASSWORD` dans `.env` (voir `.envrc`) + +## Suivi des tâches + +Voir `todo.txt` (format todo.txt standard) + +## Commandes utiles + +```bash +# Voir les logs d'un service +ssh cloud@sans.pub "docker service logs srv-captain--NOM --tail 100" + +# Redémarrer un service +ssh cloud@sans.pub "docker service update --force srv-captain--NOM" + +# Espace disque des volumes +ssh cloud@sans.pub "docker system df -v" + +# Nettoyer les images inutilisées +ssh cloud@sans.pub "docker image prune -a" +``` + +## Attention + +- RAM quasi saturée - surveiller avant d'ajouter des services +- Swap utilisé = performances dégradées possibles +- Debian 9 est obsolète (fin de support LTS) diff --git a/install-serveur.md b/install-serveur.md new file mode 100644 index 0000000..e41b33e --- /dev/null +++ b/install-serveur.md @@ -0,0 +1,101 @@ +# Étapes de configuration du serveur + +## Création compte + +Cf https://fr-wiki.ikoula.com/fr/S%C3%A9curiser_sa_machine_Debian#Interdire_le_login_root + +``` +ssh root@xxx.xx.xx.xx + +adduser zuckadduser zuck +usermod -a -G sudo zuck +``` + +Au cas où vous n'auriez pas la référence : + +> Mark Zuckerberg est le cofondateur de Facebook.com ! +> Il est né le 14 mai 1984 à White Plains + +``` +ssh-copy-id -i ~/.ssh/xxxxx.pub zuck@xx.xx.xx.xx +ssh zuck@xx.xx.xx.xx + +sudo vim /etc/ssh/sshd_config +# -> modifier "PermitRootLogin no" +# -> modifier "Port 22" +sudo /etc/init.d/ssh restart +``` + +## TODO + +### Utilisé + +Toujours rien … + +### En test (par moi) + +## Configuration en cours + +- Rainloop +- Writefreely +- Dokuwiki + +### Installé + +- Bitwarden + +### Must have + +- Etherpad +- OpenSondage +- NextCloud +- Baikal ? +- Matrix / Riot +- Tiny tiny RSS + +BACKUPS !!! + +### Nice to have + +- Mastodon +- Gitea +- OnlyOffice ? +- Facebook -> Diaspora, Hubzilla ? +- PixelFed +- Mailman +- Peertube +- Pi-Hole +- searx +- Wallabag ? +- Discourse ? + +## DNS + +``` +# +# Basic ipv4/ipv6 records +# +@ 3600 IN A 109.238.11.111 +* 3600 IN A 109.238.11.111 + +# (If your server is IPv6 capable, there are some AAAA records) +@ 3600 IN AAAA 2a00:c70:1:109:238:11:111:0000 +* 3600 IN AAAA 2a00:c70:1:109:238:11:111:0000 + +# +# XMPP +# +_xmpp-client._tcp 3600 IN SRV 0 5 5222 sans.pub. +_xmpp-server._tcp 3600 IN SRV 0 5 5269 sans.pub. +muc 3600 IN CNAME @ +pubsub 3600 IN CNAME @ +vjud 3600 IN CNAME @ + +# +# Mail (MX, SPF, DKIM and DMARC) +# +@ 3600 IN MX 10 sans.pub. +@ 3600 IN TXT "v=spf1 a mx ip4:109.238.11.111 -all" +mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=auinetapodtépledtaiunsetauieauiet787s" +_dmarc 3600 IN TXT "v=DMARC1; p=none" +``` diff --git a/logos/favicon.ico b/logos/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7c29ea3b194542795a14b4da32ba2c5619e878b8 GIT binary patch literal 2423 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 literal 0 HcmV?d00001 diff --git a/logos/logo.png b/logos/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..51a2a34c46e69b751f1dc1166a758ee47224e8a3 GIT binary patch literal 12493 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 literal 0 HcmV?d00001 diff --git a/site b/site new file mode 160000 index 0000000..9b2ca8f --- /dev/null +++ b/site @@ -0,0 +1 @@ +Subproject commit 9b2ca8f60100c761d4a842a6c41d351255c311a8 diff --git a/todo.txt b/todo.txt new file mode 100644 index 0000000..33b59f0 --- /dev/null +++ b/todo.txt @@ -0,0 +1,30 @@ +x 2026-02-05 Créer CLAUDE.md pour faciliter la gestion du serveur +sans-pub +x 2026-02-05 Dump base de données une-espace (MySQL) +sans-pub +x 2026-02-05 Créer commande /supervision +sans-pub +x 2026-02-05 Créer skill caprover pour API +sans-pub +x 2026-02-05 Configurer direnv (.envrc + .env) pour CAPROVER_PASSWORD +sans-pub +x 2026-02-05 Corriger srv-captain--pierre-martin (2/1 -> 1/1) +sans-pub +x 2026-02-05 Corriger srv-captain--monica (permissions storage + env vars perdues) +sans-pub @caprover +x 2026-02-16 Redémarrer Docker pour débloquer port 4190 +sans-pub @maintenance +x 2026-02-16 Relancer srv-captain--mail après redémarrage Docker +sans-pub @maintenance +(A) Planifier migration Debian 9 -> Debian 12 [étape 1/3 chaîne infra] +sans-pub @maintenance +(A) Mettre à jour Docker 19.03 -> 27+ (API 1.40->1.43+) [après Debian, étape 2/3] +sans-pub @maintenance +(C) Surveiller RAM (20/23 Go utilisés + swap actif) +sans-pub @monitoring +(A) Mettre à jour CapRover 1.11.1 -> 1.14.1 [après Docker v27+, étape 3/3 — bloqué par API Docker 1.40 < 1.43 requis] +sans-pub @maj +(A) Migrer bases EOL : postgres:10 (peertube-db), mysql:5.7 (gitea-db), mariadb:10.5 (nextcloud-db, une-espace-db), mariadb:10.7 (writefreely-db), redis:6 (peertube-redis) +sans-pub @maj +(A) Mettre à jour mysql:8.0.33 -> 8.0.45 (etherpad-db) et postgres:15.2 -> 15.16 (rss-db) +sans-pub @maj +(B) Migrer CryptPad : promasu/cryptpad:v5.2.1 -> cryptpad/cryptpad:version-2026.2.0 (image officielle) +sans-pub @maj +(B) Mettre à jour PeerTube v3.4.1 -> v8.0.2 (migrations majeures) +sans-pub @maj +(B) Mettre à jour PhotoPrism 20211203 -> 251130 +sans-pub @maj +(B) Mettre à jour OTS v1.0.0 -> v1.21.1 +sans-pub @maj +(B) Mettre à jour Scenari 5.0.1.01 -> 6.4.5 +sans-pub @maj +(B) Mettre à jour LimeSurvey 5.2.4 -> 6.16.9 +sans-pub @maj +(B) Mettre à jour PrivateBin 1.5.1 -> 2.0.3 +sans-pub @maj +(B) Mettre à jour Adminer 4.8.1 -> 5.4.2 +sans-pub @maj +(C) Mettre à jour nginx proxy 1.24 -> 1.28.2 +sans-pub @maj +(C) Mettre à jour Vaultwarden 1.32.0 -> 1.35.3 +sans-pub @maj +(C) Mettre à jour Gitea 1.22.1 -> 1.25.4 +sans-pub @maj +(C) Mettre à jour Miniflux 2.0.44 -> 2.2.17 +sans-pub @maj +(C) Mettre à jour Nextcloud 32.0.5 -> 32.0.6 +sans-pub @maj +(C) Mettre à jour poste.io 2.4.7 -> 2.5.9 +sans-pub @maj +(C) Mettre à jour CyberChef v10.19.2 -> v10.22.1, IT Tools 2024.5.13 -> 2024.10.22, RSS-Bridge +sans-pub @maj