72 lines
No EOL
3.3 KiB
Markdown
72 lines
No EOL
3.3 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: Configuration du serveur de stockage
|
|
- Créer un utilisateur + mot de passe
|
|
- Créer un dossier de partage smb/cifs
|
|
- Configurer les droits d'accès
|
|
|
|
### :two: Configuration du serveur Kiwix
|
|
- Installer le paquet `cifs-utils`
|
|
- 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: Premier fichier zim
|
|
- 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: Déploiement du serveur Kiwix
|
|
- Ici le [docker-compose](https://git.selfitdeploy.com/Willy/Archivage-ZIM/src/branch/main/kiwix/docker-compose.yml).
|
|
|
|
### :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
|
|
├── data/
|
|
| ├── tasks.json # Fichier de tâches (Généré automatiquement)
|
|
│ └── zimit_archives.log # Fichier de logs (Généré automatiquement)
|
|
└── requirements.txt # Dépendances Python
|
|
```
|
|
- Se placer dans le repertoire `zimit-web`
|
|
- Créer un environement virtuel Python `python3 -m venv menv`
|
|
- Activer cet environement `source menv/bin/activate`
|
|
- Installer les dépendances `pip install -r requirements.txt`
|
|
- Démarrer le serveur `python app.py`
|
|
|
|
### :seven: Aperçu de l'interface
|
|
- Interface accessible en `http://ip-du-serveur:8080`
|
|
|
|

|
|
|
|
### :construction: Objectifs futurs
|
|
- Création d'un container pour simplifié sa mise en place et pour un usage en production.
|
|
- Amélioration esthétique de l'interface web
|
|
- Amélioration de la gestion des logs |