Plakar Web UI

Ce projet fournit une interface utilisateur Web pour gérer les dépôts Plakar, offrant des fonctionnalités pour visualiser les snapshots, effectuer des tâches de maintenance, nettoyer les dépôts et synchroniser les données entre eux.

Fonctionnalités

  • Liste des snapshots : Voir les snapshots pour un dépôt sélectionné, groupés par date.
  • Filtrage des données : Filtrer les snapshots par dates "from" et "to".
  • Synchronisation des dépôts : Synchroniser les données entre les dépôts avec des options pour les types de synchronisation `to`, `from`, `with`, et le filtrage par date.
  • Nettoyage des dépôts : Exécuter `plakar_cleaner.py` avec des options pour l'exécution à blanc et l'affichage des politiques de rétention.
  • Maintenance des dépôts : Exécuter la commande `plakar maintenance` pour un dépôt sélectionné.
  • Affichage de la sortie de commande : Affichage en temps réel de la sortie d'exécution de la commande dans l'interface utilisateur, avec la chaîne de commande exécutée visible.
  • Sortie de commande persistante : La sortie de commande persiste lors des rechargements de page à l'aide de `sessionStorage`.
  • Support multilingue : Support de base pour les éléments d'interface utilisateur français et anglais.

Installation

Prérequis

  • Python 3.x
  • `pip` (installateur de paquets Python)
  • `plakar` (outil en ligne de commande) installé et configuré.
  • [`plakar_cleaner.py`](https://codeberg.org/spn109/Plakar_Cleaner) script situé à `/root/Plakar_Cleaner/plakar_cleaner.py` (optionnel).
  • `plakar_cleaner.ini` fichier de configuration situé à `/etc/plakar_cleaner.ini` (optionnel).

Configuration

L'application lit sa configuration depuis `/etc/pk_web.ini`. Si ce fichier n'est pas trouvé, les valeurs par défaut seront utilisées.

Créez le fichier avec le contenu suivant (remplacez les espaces réservés si nécessaire) :

[app]
plakar_cleaner_path = /usr/local/bin/plakar_cleaner
port = 5000
secret_key = YOUR_SECRET_KEY_HERE
  • `plakar_cleaner_path`: Chemin vers le script `plakar_cleaner.py`.
  • `port`: Le port sur lequel l'application Flask s'exécutera.
  • `secret_key`: Une clé secrète utilisée par Flask pour la gestion de session. Changez ceci pour une valeur forte et unique.

Installation

  1. Cloner le dépôt :
    git clone 
    cd pk_web
  2. Installer les dépendances Python :
    pip install -r requirements.txt

Lancer l'application

Utilisation du serveur de développement de Flask (pour le développement uniquement) :

python app.py

L'application s'exécutera généralement sur le port spécifié dans `pk_web.ini` (par défaut : `http://127.0.0.1:5000/`).

Utilisation de Gunicorn (recommandé pour la production) :

Tout d'abord, assurez-vous que Gunicorn est installé (il est dans `requirements.txt`) :

pip install gunicorn

Ensuite, exécutez l'application à l'aide de Gunicorn :

gunicorn -w 4 -b 0.0.0.0:5000 app:app
  • `-w 4`: Exécute 4 processus de travail (ajustez si nécessaire).
  • `-b 0.0.0.0:5000`: Lie l'application à toutes les interfaces réseau sur le port 5000. Vous pouvez changer le port ici ou le configurer dans `pk_web.ini`.
  • `app:app`: Spécifie que Gunicorn doit charger l'objet `app` du module `app.py`.

Usage

  1. Sélectionner un dépôt : Utilisez le menu déroulant dans la barre de navigation pour sélectionner un dépôt.
  2. Filtrer les snapshots : Utilisez les champs de date "Du" (From) et "Au" (To) pour filtrer les snapshots affichés.
  3. Synchroniser les dépôts :
    • Sélectionnez le type de synchronisation (`to`, `from`, `with`).
    • Sélectionnez le dépôt de destination.
    • La date de filtre "From" sera utilisée comme paramètre `--since` pour la commande de synchronisation.
    • Cliquez sur "Synchroniser".
  4. Nettoyer le dépôt :
    • Affichez les options de rétention pour le dépôt actuel.
    • Cochez "Dry Run" pour effectuer une exécution à blanc sans suppression réelle.
    • Cliquez sur "Nettoyer" pour exécuter la commande de nettoyage.
  5. Maintenir le dépôt :
    • Cliquez sur "Lancer la maintenance" pour exécuter la commande `plakar maintenance` pour le dépôt actuel.
  6. Afficher la sortie de commande : La section "Sortie de commande" affichera la sortie en temps réel de toute commande exécutée (Supprimer, Synchroniser, Nettoyer, Maintenance). La commande elle-même sera affichée dans l'en-tête.
  7. Vérifier le dépôt :
    • Cliquez sur "Vérifier" pour exécuter la commande `plakar check` pour le dépôt actuel.
    • Les options `--fast` et `--no-verify` sont disponibles.
  8. Afficher le contenu du snapshot :
    • Cliquez sur un ID de snapshot pour afficher le contenu de son répertoire racine.
    • Naviguez dans les répertoires en cliquant sur les noms de dossiers.
    • Cliquez sur un nom de fichier pour afficher son contenu.

Donation

Si vous trouvez ce projet utile, vous pouvez soutenir son développement via Leetchi.