License Manager — Configuration

Référence des flags CLI, variables d'environnement, valeurs par défaut des serveurs, et préréglages Argon2id.

Flags CLI

FlagTypeDéfautDescription
--dbstring./manager.dbChemin vers la base SQLite. Créée au premier lancement.
--passphrase-filestringFichier contenant la passphrase (lue + trimée). Priorité maximale dans la cascade.
--no-tuiboolfalseDésactive la TUI bubbletea. Utile pour les flux scriptés ou le débogage.

Exemples :

# Lancement standard
license-manager --db /var/lib/maldev/manager.db

# Passphrase depuis fichier (recommandé pour les flux CI/scripts)
license-manager --db manager.db --passphrase-file /run/secrets/mgr_pass

# Mode script sans TUI
license-manager --db manager.db --no-tui

Variables d'environnement

VariableDescriptionPriorité dans la cascade
MALDEV_MGR_PASSPHRASE_FILEChemin vers un fichier passphrase. Équivalent à --passphrase-file mais sans flag.2 (après --passphrase-file)
MALDEV_MGR_PASSPHRASEPassphrase directement en valeur. À éviter si ps expose les variables d'environnement.3

La cascade complète de résolution de passphrase :

1. flag --passphrase-file          (priorité maximale)
2. env  MALDEV_MGR_PASSPHRASE_FILE
3. env  MALDEV_MGR_PASSPHRASE
4. (v2) OS keystore (DPAPI / Keychain / libsecret)
5. prompt interactif TUI           (fallback)

Dès qu'une source produit une valeur non vide, les suivantes sont ignorées. Quand la passphrase est résolue silencieusement (étapes 1–3), aucun prompt n'apparaît.

Valeurs par défaut des serveurs

Configurables via SettingsService.UpdateServerConfig. Toutes les adresses d'écoute sont vides par défaut — un serveur avec adresse vide ne peut pas être démarré.

Champ ServerConfigValeur par défautDescription
revocation_listen""Adresse d'écoute du serveur Revocation (ex. ":8443")
revocation_path"/revoked.pem"Chemin de la CRL
revocation_tls_cert""Chemin PEM du certificat TLS (vide = HTTP)
revocation_tls_key""Chemin PEM de la clé TLS
heartbeat_listen""Adresse d'écoute du serveur Heartbeat (ex. ":8444")
heartbeat_path"/heartbeat"Chemin du endpoint heartbeat
heartbeat_tls_cert""
heartbeat_tls_key""
probe_listen""Adresse d'écoute du serveur Probe (ex. ":8445")
probe_tls_cert""
probe_tls_key""
probe_default_ttl_seconds86400TTL par défaut des tokens probe (24h)

Exemple de configuration minimale via UpdateServerConfig :

svc.Settings.UpdateServerConfig(ctx, func(u *ent.ServerConfigUpdate) {
    u.SetRevocationListen(":8443").
        SetHeartbeatListen(":8444").
        SetProbeListen(":8445")
})

Préréglages Argon2id

Le champ Setting.default_argon_preset contrôle les paramètres utilisés pour hacher les bindings password lors de l'émission. Les préréglages s'appliquent aussi à la dérivation KEK (crypto.DeriveFromPassphrase).

PréréglagetimememorythreadsLatence approx.
fast132 MiB2~30 ms
default364 MiB4~100 ms
paranoid8256 MiB8~800 ms
  • fast : acceptable pour des tests et des environnements à faible mémoire.
  • default : recommandé pour la production. Résiste aux attaques GPU modernes.
  • paranoid : pour des secrets à très haute valeur (clés de root CA, etc.). Prévoir ~1 s à chaque démarrage.

Modifier le préréglage via SettingsService.Update :

svc.Settings.Update(ctx, func(u *ent.SettingUpdate) {
    u.SetDefaultArgonPreset(setting.DefaultArgonPresetParanoid)
})

Permissions recommandées

RessourcePermissionRaison
manager.db600 (owner RW seulement)Contient les clés privées chiffrées
Fichier passphrase400 (owner R seulement)Lecture par le processus uniquement
Binaires probe (agents/*)755Exécution sur machines distantes
Répertoire probe/agents/gen/Accès build uniquementSource du binaire agent — ne pas distribuer

Paramètres opérateur (Setting)

ChampDéfautDescription
default_issuer_name""Valeur pré-remplie pour le champ iss dans les nouvelles licences
default_audience[]Audiences pré-sélectionnées dans le formulaire d'émission
default_ttl_seconds2592000 (30j)TTL par défaut des nouvelles licences
default_argon_presetdefaultVoir tableau Argon2id ci-dessus
operator_name""Nom affiché dans le champ actor de l'audit trail
auto_start_serversfalseDémarrer les serveurs configurés au boot
confirm_quit_with_serverstrueConfirmer avant de quitter si des serveurs tournent

Voir aussi