
# Administration et maintenance

Trois commandes s'exécutent contre un déploiement plutôt que contre une configuration : créer le compte qui pourra se connecter, produire les secrets attendus par l'environnement, et mettre à niveau le binaire en place.

## `sovrium admin create`

Provisionne un utilisateur administrateur directement dans la base de données. C'est le chemin d'amorçage : il n'exige ni serveur en cours, ni configuration complète.

```bash
# Demander le mot de passe (écho désactivé, comme sudo)
sovrium admin create me@example.com

# Le fournir sans interaction (CI, scripts de provisionnement)
sovrium admin create me@example.com --password 's3cret-pass'

# Résoudre les réglages d'authentification depuis une configuration précise
sovrium admin create me@example.com --config app.yaml
```

La configuration d'authentification est résolue dans cet ordre : un `--config <path>` explicite, puis `APP_SCHEMA`, puis un schéma par défaut minimal intégré — la forme simple fonctionne donc sans aucun fichier de configuration. Les migrations s'exécutent d'abord : la commande fonctionne aussi contre une base vide.

Deux points à connaître avant de la scripter :

- **Sans TTY et sans `--password`, c'est une erreur.** Dans un shell non interactif, vous devez passer `--password`, sinon la commande sort en `1` au lieu de bloquer sur une invite.
- **Elle est idempotente.** Si l'adresse possède déjà un compte, rien n'est modifié.

Si la configuration résolue n'a pas de bloc `auth`, la commande refuse et vous demande d'en ajouter un.

## `sovrium secret generate`

Affiche des secrets fraîchement générés, cryptographiquement aléatoires, sous forme de lignes `.env` prêtes à coller. Chacun fait 256 bits, rendus en 64 caractères hexadécimaux.

| Portée       | Affiche                                  |
| ------------ | ---------------------------------------- |
| _(aucune)_   | `AUTH_SECRET` + `SOVRIUM_ENCRYPTION_KEY` |
| `all`        | Les deux (explicite)                     |
| `auth`       | `AUTH_SECRET` uniquement                 |
| `encryption` | `SOVRIUM_ENCRYPTION_KEY` uniquement      |

```bash
sovrium secret generate                  # les deux
sovrium secret generate auth >> .env     # en ajouter un à votre .env
sovrium secret generate encryption       # clé de chiffrement uniquement
```

:::callout
**Rien n'est écrit sur disque.** Les lignes `.env` vont sur la sortie standard — les redirections fonctionnent donc proprement — et les notes explicatives sur la sortie d'erreur. Sovrium ne persiste jamais silencieusement un identifiant à un endroit d'où il risquerait d'être commité.
:::

## `sovrium update`

Met à jour Sovrium vers la dernière version publiée. Ce qui se passe réellement dépend de la méthode d'installation, que la commande détecte pour vous :

| Méthode d'installation | Comportement                                              |
| ---------------------- | --------------------------------------------------------- |
| `binary`               | Auto-remplacement depuis GitHub Releases (Unix)           |
| `homebrew`             | Délègue à `brew upgrade sovrium/tap/sovrium`              |
| `scoop`                | Délègue à `scoop update sovrium`                          |
| `docker`               | Affiche l'instruction `docker pull`                       |
| `npm`                  | Affiche un avis d'obsolescence (le paquet npm est retiré) |

```bash
sovrium update
sovrium update --help
```

Déléguer à Homebrew et Scoop plutôt que s'auto-remplacer est délibéré : cela conserve la cohérence du registre de versions du gestionnaire de paquets. Un conteneur Docker ne peut pas se mettre à jour lui-même : ce chemin affiche donc la commande `pull` à la place.

## Pages associées

- [Aperçu du CLI](/fr/docs/cli) — la surface complète des commandes.
- [Variables d'environnement](/fr/docs/env-vars) — où vont les secrets générés.
- [Gestion des utilisateurs](/fr/docs/user-management) — gérer les comptes après le premier administrateur.
- [Durcissement de la sécurité](/fr/docs/security-hardening) — rotation des secrets et posture de déploiement.
