Stage 2 : Vikunja
DGA MI - Pôle Sup de La Salle
🚀 1. Préparation de l'environnement
La première étape consiste à récupérer les images des conteneurs (via podman pull en ligne ou podman load en mode hors-ligne) pour Vikunja et
MariaDB 11.4 (si la version de mariadb est plus recente, cela ne devrait pas causé de problème).
Ensuite, il faut isoler l'environnement en créant un réseau dédié et des volumes persistants pour la base de données et les fichiers joints.
# 1. Création du réseau
podman network create vikunja-net
# 2. Création des volumes persistants
podman volume create vikunja_db_data
podman volume create vikunja_db_files
Validation de la création du réseau et des volumes Podman
🛠️ 2. Déploiement (Méthode 1 : Variables d'environnement CLI)
Cette première méthode permet de configurer et lancer les conteneurs directement via des commandes dans le terminal en utilisant des variables d'environnement (-e).
A. Démarrer MariaDB
podman run -d \
--name vikunja-db \
--network vikunja-net \
--restart always \
-v vikunja_db_data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mot_de_passe_root_mysql \
-e MYSQL_USER=vikunja \
-e MYSQL_PASSWORD=mot_de_passe_vikunja \
-e MYSQL_DATABASE=vikunja \
mariadb:11.4
B. Démarrer l'application Vikunja
podman run -d \
--name vikunja \
--network vikunja-net \
--restart always \
-p 3456:3456 \
-v vikunja_db_files:/app/vikunja/files \
-e VIKUNJA_DATABASE_HOST=vikunja-db \
-e VIKUNJA_DATABASE_TYPE=mysql \
-e VIKUNJA_DATABASE_USER=vikunja \
-e VIKUNJA_DATABASE_PASSWORD=mot_de_passe_vikunja \
-e VIKUNJA_DATABASE_DATABASE=vikunja \
-e VIKUNJA_SERVICE_PUBLICURL=http://IP_DE_VOTRE_VM:3456/ \
vikunja:latest
Vérification du statut des conteneurs (podman ps)
Accès à l'interface de connexion Vikunja via le port 3456
📁 3. Déploiement (Méthode 2 : Fichiers de Configuration)
Pour une meilleure lisibilité et évolutivité, il est préférable d'utiliser des fichiers de configuration dédiés (config.yml et mariadb.env) stockés sur la machine hôte.
A. Création des fichiers
# Fichier mariadb.env
MYSQL_ROOT_PASSWORD=mot_de_passe_root_bdd
MYSQL_DATABASE=vikunja
MYSQL_USER=vikunja
MYSQL_PASSWORD=mot_de_passe_vikunja
# Fichier config.yml
service:
publicurl: "http://IP_DE_VOTRE_VM:3456/"
port: 3456
database:
type: "mysql"
host: "vikunja-db"
user: "vikunja"
password: "mot_de_passe_vikunja"
database: "vikunja"
Aperçu du fichier config.yml
B. Lancement avec les fichiers
# Lancement MariaDB
podman run --privileged -d \
--name vikunja-db \
--network vikunja-net \
-v vikunja_db_data:/var/lib/mysql:Z \
--env-file mariadb.env \
mariadb:11.4
# Lancement Vikunja
podman run -d \
--name vikunja \
-e XDG_CACHE_HOME=/app/vikunja/files/.cache \
--network vikunja-net \
-p 3456:3456 \
-v /chemin/dossier/config.yml:/app/vikunja/config.yml:Z \
-v vikunja_db_files:/app/vikunja/files:Z \
vikunja:latest
💾 4. Sauvegarde et Migration
Une procédure stricte a été mise en place pour exporter les données (Machine A) et les restaurer (Machine B) en toute sécurité.
A. Exportation (Sauvegarde)
Export de la base de données SQL et création d'une archive compressée pour les fichiers joints :
# Dump de la base de données
podman exec vikunja-db mariadb-dump -u vikunja --password='mot_de_passe_vikunja' vikunja > backup_vikunja.sql
# Sauvegarde des fichiers joints via un conteneur temporaire
podman run --rm --privileged --user root -v vikunja_db_files:/data -v $(pwd):/backup mariadb:11.4 tar czf /backup/files_backup.tar.gz -C /data .
B. Restauration
Après avoir recréé les volumes et réseaux sur le nouveau serveur, les fichiers sont extraits et la base est réimportée :
# Restauration des fichiers joints
podman run --privileged --user root --rm -v vikunja_db_files:/data -v $(pwd):/backup mariadb:11.4 sh -c "tar xzf /backup/files_backup.tar.gz -C /data"
# Import du script SQL (une fois MariaDB lancé)
podman exec -i vikunja-db mariadb -u vikunja --password='mot_de_passe_vikunja' vikunja < backup_vikunja.sql
Preuve de génération des fichiers de sauvegarde (SQL et archive)