130 lines
3.7 KiB
Markdown
130 lines
3.7 KiB
Markdown
# 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 (~6 Go utilisés, swap quasi vide — vérifié 2026-02-19)
|
|
|
|
## 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
|
|
|
|
Aucun service en erreur connu (vérifié 2026-02-19). `mail` tourne correctement (1/1, poste.io).
|
|
|
|
## 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)
|
|
|
|
## Mettre à jour une app CapRover
|
|
|
|
**TOUJOURS passer par l'API CapRover** — jamais via `docker service update` directement (CapRover ne le verrait pas).
|
|
|
|
### Procédure
|
|
|
|
1. **Login** (obtenir un token) :
|
|
```python
|
|
import urllib.request, json
|
|
|
|
data = json.dumps({'password': 'CAPROVER_PASSWORD'}).encode()
|
|
req = urllib.request.Request('https://captain.cloud.sans.pub/api/v2/login', data=data, headers={'Content-Type': 'application/json'}, method='POST')
|
|
with urllib.request.urlopen(req) as r:
|
|
token = json.loads(r.read().decode())['data']['token']
|
|
```
|
|
|
|
2. **Déployer une nouvelle image** :
|
|
```python
|
|
headers = {'Content-Type': 'application/json', 'x-captain-auth': token, 'x-namespace': 'captain'}
|
|
captain_def = json.dumps({'schemaVersion': 2, 'imageName': 'IMAGE:TAG'})
|
|
payload = json.dumps({'appName': 'NOM_APP', 'captainDefinitionContent': captain_def, 'gitHash': ''}).encode()
|
|
req = urllib.request.Request('https://captain.cloud.sans.pub/api/v2/user/apps/appData/NOM_APP', data=payload, headers=headers, method='POST')
|
|
with urllib.request.urlopen(req) as r:
|
|
print(r.read().decode()) # {"status":100,"description":"Deploy is done"}
|
|
```
|
|
|
|
> Note : `curl` a un problème d'encodage dans cet environnement — utiliser `python3` à la place.
|
|
|
|
## Commandes utiles
|
|
|
|
```bash
|
|
# Voir les logs d'un service
|
|
ssh cloud@sans.pub "docker service logs srv-captain--NOM --tail 100"
|
|
|
|
# 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
|
|
|
|
- Debian 9 est obsolète (fin de support LTS)
|
|
- RAM : surveiller si ajout de nouveaux services (mail = 1,78 Go, scenari = 862 Mo)
|