Administration
Accès au panel admin
Accessible depuis le menu profil (avatar en haut à droite) → Administration.
Visible uniquement pour les comptes avec is_admin: true.
Premier administrateur
Au premier déploiement, aucun compte n'est admin automatiquement.
Via la base de données (méthode recommandée) :
docker compose exec postgres psql -U noxirc -c \
"UPDATE users SET is_admin = true WHERE username = 'tonpseudo';"
Via l'API (si un admin existe déjà) :
curl -X POST /api/admin/users/{id}/make-admin \
-H "Authorization: Bearer <token_admin>"
Fonctionnalités
Vue d'ensemble
GET /api/admin/overview — statistiques globales :
- Nombre total d'utilisateurs / actifs
- Nombre total de messages
- Stockage utilisé (fichiers uploadés)
- Connexions IRC actives en temps réel
Gestion des utilisateurs
| Action | Endpoint |
|---|---|
| Lister | GET /api/admin/users |
| Voir profil | GET /api/admin/users/{id} |
| Activer/désactiver | POST /api/admin/users/{id}/toggle |
| Promouvoir admin | POST /api/admin/users/{id}/make-admin |
| Supprimer | DELETE /api/admin/users/{id} |
Connexions IRC actives
GET /api/admin/connections — voir toutes les connexions IRC de tous les utilisateurs.
Forcer une déconnexion :
DELETE /api/admin/connections/{user_id}/{network_id}
Paramètres système
GET /api/admin/settings — liste tous les paramètres.
PUT /api/admin/settings {"key": "...", "value": "..."} — modifier.
Clés notables
| Clé | Valeur | Description |
|---|---|---|
storage_provider |
local |
Provider de stockage actif par défaut |
local_storage_enabled |
true/false |
Désactiver le stockage local |
marketplace_verify_signatures |
true/false |
Vérifier SHA256 des plugins |
vapid_public_key |
(auto) | Clé publique VAPID |
vapid_private_key |
(auto) | Clé privée VAPID — ne pas partager |
Les clés
vapid_*,storage_provideretlocal_storage_enabledsont protégées contre la suppression accidentelle.
Désactiver le stockage local
Si un plugin hébergeur est installé, l'admin peut forcer son utilisation :
curl -X PUT /api/admin/settings \
-H "Authorization: Bearer <token>" \
-d '{"key": "local_storage_enabled", "value": "false"}'
Gestion des plugins
Les plugins s'installent depuis un fichier ZIP (URL distante ou upload).
curl -X POST /api/plugins/install \
-H "Authorization: Bearer <token>" \
-d '{"plugin_id": "mon-plugin", "version": "1.0.0", "source_url": "https://..."}'
Actions disponibles sans redémarrer le serveur :
- Reload : recharge le code du plugin en live
- Toggle : activer/désactiver
- Audit : voir les logs d'exécution du plugin
Voir Développement-Plugins pour créer un plugin.
Sécurité
- Tous les endpoints
/api/admin/*vérifientis_admin: truecôté serveur - Les plugins tournent dans un sandbox RestrictedPython (imports limités)
- Les accès réseau des plugins sont limités aux domaines déclarés dans leur manifest
- Vérification SHA256 des archives plugin activée par défaut