91 lines
No EOL
4.1 KiB
Markdown
91 lines
No EOL
4.1 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 claire 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).
|
|
- Démarrer le conteneur avec `docker compose up -d`
|
|
|
|
### :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 de mon interface zimit-webapp (direct mode)
|
|
|
|
- Mettre en place cette architecture de fichiers
|
|
```
|
|
zimit-webapp/
|
|
├── app.py # Serveur Flask
|
|
├── 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
|
|
|
|
# Si arborescence initialisée depuis téléchargement du repo, pensez à supprimer Dockerfile et docker-compose.yml qui sont inutiles pour cet usage.
|
|
```
|
|
- Se placer dans le repertoire `zimit-webapp`
|
|
- Installer Python 3.13 `apt install python3.13`
|
|
- 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: Utilisation de mon interface zimit-webapp (container mode)
|
|
|
|
- Ici le [docker-compose](https://git.selfitdeploy.com/Willy/Archivage-ZIM/src/branch/main/zimit-webapp/docker-compose.yml).
|
|
- Modifier l'emplacement des archives *.zim ainsi que le port si besoin.
|
|
- Démarrer le conteneur avec `docker compose up -d`
|
|
|
|
>:warning: Mon image a été compilée sur Debian 13 en architecture amd64, pour recompiler faire `docker build -t nom-de-l'image:tag`.
|
|
|
|
|
|
|
|
### :eight: Aperçu de l'interface
|
|
- Interface accessible en `http://ip-du-serveur:8080`
|
|
|
|

|
|
|
|
### :construction: Objectifs
|
|
- [x]Création d'un container pour simplifier 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
|
|
- [ ]Gestion des droits
|
|
|
|
### :books: Ressources
|
|
- Site de Kiwix https://kiwix.org/
|
|
- Github de Zimit https://github.com/openzim/zimit |