Scripts et Commandes Admin de l'Espace de Travail
Nettoyer la base de données
./scripts/clean-db.sh
Nettoie la base de données en supprimant toutes les données tout en préservant le schéma et la structure de la base de données.
Caution
À utiliser avec prudence car cela supprimera toutes les données existantes.
Nettoyer les artefacts de compilation et les dépendances
scripts/clean-workspace.sh
Supprime tous les artefacts de build, le répertoire node_modules et d'autres fichiers générés pour garantir un état propre. Cette commande est utile quand vous devez effectuer une installation fraîche ou résoudre des problèmes de dépendances. La commande supprimera :
- Répertoire
node_modules/ - Répertoire de build
.next/ - Répertoire
dist/ - Répertoire
out/ - Répertoire
.turbo/ pnpm-lock.yamldata/*.json(fichiers de sauvegarde JSON de développement)public/documentationdocumentation/.docusaurus,.cache,.cache-*,build,node_modules,pnpm-lock.yaml- Répertoire
.genkit/ - Fichiers
*.tsbuildinfo - Cache de stockage pnpm (via
pnpm store prune) - Cache de build Docker et nettoyage système (images, réseaux, volumes)
Nettoyer Docker Compose et l'environnement Docker
scripts/clean-docker.sh
Effectuer un nettoyage complet de Docker, qui est utile pour :
- Libérer de l'espace disque
- Supprimer les anciens artefacts Docker inutilisés
- Nettoyer après les sessions de développement ou de test
- Maintenir un environnement Docker propre
Mettre à jour les packages vers la dernière version
Vous pouvez mettre à jour les packages manuellement en utilisant :
ncu --upgrade
pnpm update
Ou utilisez le script automatisé :
./scripts/upgrade-dependencies.sh
Le script upgrade-dependencies.sh automatise l'ensemble du processus de mise à jour des dépendances :
- Met à jour
package.jsonavec les dernières versions en utilisantnpm-check-updates - Met à jour le fichier de verrouillage pnpm et installe les dépendances mises à jour
- Met à jour la base de données browserslist
- Vérifie les vulnérabilités en utilisant
pnpm audit - Corrige automatiquement les vulnérabilités en utilisant
pnpm audit fix - Vérifie à nouveau les vulnérabilités après la correction pour valider les correctifs
Ce script fournit un flux de travail complet pour maintenir les dépendances à jour et sécurisées.
Vérifier les packages inutilisés
pnpm depcheck
Mettre à jour les informations de version
./scripts/update-version.sh
Ce script met à jour automatiquement les informations de version dans plusieurs fichiers pour les maintenir synchronisés. Il :
- Extrait la version de
package.json - Met à jour le fichier
.envavec la variableVERSION(la crée s'il n'existe pas) - Met à jour le
Dockerfileavec la variableVERSION(s'il existe) - Met à jour le champ version de
documentation/package.json(s'il existe) - Met à jour uniquement si la version a changé
- Fournit un retour d'information sur chaque opération
Script de pré-vérifications
./scripts/pre-checks.sh
Ce script exécute des vérifications préalables avant de démarrer le serveur de développement, de générer la version ou de démarrer le serveur de production. Il :
- Vérifie que le fichier
.duplistatus.keyexiste (viaensure-key-file.sh) - Met à jour les informations de version (via
update-version.sh)
Ce script est automatiquement appelé par pnpm dev, pnpm build et pnpm start-local.
Assurer l'existence du fichier clé
./scripts/ensure-key-file.sh
Ce script garantit que le fichier .duplistatus.key existe dans le répertoire data. Il :
- Crée le répertoire
datas'il n'existe pas - Génère un nouveau fichier de clé aléatoire de 32 octets s'il est manquant
- Définit les permissions du fichier à 0400 (lecture seule pour le propriétaire)
- Corrige les permissions si elles sont incorrectes
Le fichier de clé est utilisé pour les opérations cryptographiques dans l'application.
Récupération du compte Admin
./admin-recovery <username> <new-password>
Ce script permet la récupération des comptes admin en cas de verrouillage ou d'oubli de mot de passe. Il :
- Réinitialise le mot de passe pour l'utilisateur spécifié
- Déverrouille le compte s'il était verrouillé
- Réinitialise le compteur de tentatives de connexion échouées
- Efface l'indicateur « Doit changer le mot de passe »
- Valide que le mot de passe respecte les exigences de sécurité
- Enregistre l'action dans le Journal d'Audit
Exemple :
./admin-recovery admin NewPassword123
Caution
Ce script modifie directement la base de données. À utiliser uniquement si nécessaire pour la récupération de compte.
Copier des images
./scripts/copy-images.sh
Copie les fichiers image de documentation/static/img vers leurs emplacements appropriés dans l'application :
- Copie
favicon.icoverssrc/app/ - Copie
duplistatus_logo.pngverspublic/images/ - Copie
duplistatus_banner.pngverspublic/images/
Utile pour maintenir les images d'application synchronisées avec les images de documentation.
Comparer les versions entre le développement et Docker
./scripts/compare-versions.sh
Ce script compare les versions entre votre environnement de développement et un conteneur Docker en cours d'exécution. Il :
- Compare les versions SQLite par version majeure uniquement (par exemple, 3.45.1 par rapport à 3.51.1 sont considérées comme compatibles, affichées comme « ✅ (major) »)
- Compare les versions Node, npm et duplistatus exactement (doivent correspondre exactement)
- Affiche un tableau formaté montrant toutes les comparaisons de versions
- Fournit un résumé avec des résultats codés par couleur (✅ pour les correspondances, ❌ pour les non-correspondances)
- Quitte avec le code 0 si toutes les versions correspondent, 1 s'il y a des non-correspondances
Exigences :
- Le conteneur Docker nommé
duplistatusdoit être en cours d'exécution - Le script lit les informations de version à partir des journaux du conteneur Docker
Exemple de sortie :
┌─────────────────────────┬──────────────────────────────┬──────────────────────────────┬──────────────┐
│ Component │ Development │ Docker │ Match │
├─────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────┤
│ SQLite │ 3.45.1 │ 3.51.1 │ ✅ (major) │
│ Node │ 24.12.0 │ 24.12.0 │ ✅ │
│ npm │ 10.9.2 │ 10.9.2 │ ✅ │
│ Duplistatus │ 1.2.1 │ 1.2.1 │ ✅ │
└─────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────┘
Note : Les versions de SQLite sont comparées par version majeure uniquement, car les différentes versions de correctif au sein de la même version majeure sont généralement compatibles. Le script indiquera si les versions de SQLite correspondent au niveau majeur mais diffèrent dans les versions de correctif.
Affichage des configurations dans la base de données
sqlite3 data/backups.db "SELECT key, value FROM configurations;" | awk -F'|' '
{print "\n" $1 ": ";
if(index($2,"{")>0) {print $2 |"jq -C ."; close("jq -C .")}
else {print $2;}}' | less -R
sqlite3 /var/lib/docker/volumes/duplistatus_data/_data/backups.db "SELECT key, value FROM configurations;" | awk -F'|' '
{print "\n" $1 ": ";
if(index($2,"{")>0) {print $2 |"jq -C ."; close("jq -C .")}
else {print $2;}}' | less -R
Afficher les paramètres de sauvegarde
./scripts/show-backup-settings.sh [database_path]
Affiche le contenu de la valeur backup_settings dans la table de configurations sous forme de tableau formaté. Utile pour le débogage des configurations de notifications. Chemin de base de données par défaut : data/backups.db.