54 lines
No EOL
2.8 KiB
Markdown
54 lines
No EOL
2.8 KiB
Markdown
[](https://creativecommons.org/licenses/by-nc-sa/4.0/)
|
|
|
|
# Archivage web avec Kiwix et Zimit
|
|
|
|
Voici la méthode que j'utilise afin d'archiver une page web ou bien un site internet complet pour une lecture hors ligne.
|
|
|
|
J'utilise un serveur Kiwix afin de lire mes archives ZIM, l'outil Zimit pour créer les archives et celle-ci sont stockées sur un serveur externe au service.
|
|
|
|
:one: Créer un utilisateur/mdp sur le serveur de stockage ainsi qu'un dossier de partage smb/cifs avec les droits qui vont bien.
|
|
|
|
:two: Installer le paquet `cifs-utils` sur le serveur Kiwix, puis monter le partage à l'emplacement voulu ici : `/srv/kiwix`
|
|
> :arrow_forward: Exemple fstab :
|
|
>```
|
|
>//serveur-de-stockage/kiwix /srv/kiwix cifs credentials=/etc/.smbcredentials-kiwix,uid=0000,gid=000,file_mode=0770,dir_mode=0770,iocharset=utf8 0 0
|
|
>```
|
|
:warning: J'utilise pour l'authentification un fichier de conf credentials, afin de ne pas laisser en clair le user/pass, car le fichier fstab est par défaut autorisé en lecture par tous, ne pas oublier d'adapter également uid et gid.
|
|
|
|
> :arrow_forward: Exemple credentials :
|
|
>```
|
|
>username=user
|
|
>password=MotDePasse
|
|
>```
|
|
|
|
:three: Dans notre répertoire `/srv/kiwix/zim` il est important d'y déposer une première archive ZIM avant le déploiement de Kiwix,
|
|
voir ce dépot publique https://library.kiwix.org
|
|
|
|
:four: Ce [docker-compose](https://git.selfitdeploy.com/Willy/Archivage-ZIM/src/branch/main/docker-compose.yml) pour déployer le serveur Kiwix.
|
|
|
|
:five: Utilisation manuel de Zimit
|
|
|
|
Cette commande pour exécuter un archivage web en fichier ZIM :
|
|
|
|
```
|
|
docker run --rm -it -v /srv/kiwix/zim:/output ghcr.io/openzim/zimit zimit --seeds="https://lien-du-site" --name="nom-de-l'archive" --title="titre-de-l'archive" --output=/output --pageLimit=20 --waitUntil=networkidle0 --workers=4 --scopeExcludeRx="(\?q=|signup-landing\?|\?cid=)"
|
|
```
|
|
> Plus d'infos sur les variables dans le dépot du projet https://github.com/openzim/zimit
|
|
|
|
:six: Utilisation d'une interface web
|
|
|
|
- Mettre en place cette architecture de fichiers
|
|
```
|
|
zimit-web/
|
|
├── app.py # Serveur Flask (API + gestion des processus)
|
|
├── templates/
|
|
│ └── index.html # Interface web
|
|
├── requirements.txt # Dépendances Python
|
|
├── tasks.json # Liste de tâches générée par le front pour le back
|
|
└── zimit_archives.log # Fichier de log généré au lancement du serveur
|
|
```
|
|
- Se placer dans le repertoire `zimit-web`
|
|
- Créer un environement virtuel Python `python3 -m venv menv`
|
|
- Activer cet environement `menv/bin/activate`
|
|
- Installer les dépendances `pip install -r requirements.txt`
|
|
- Démarrer le serveur `python app.py` |