2 Administration
Claude edited this page 2026-05-16 12:31:26 +02:00

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_provider et local_storage_enabled sont 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érifient is_admin: true cô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