Bookstack Installation de Bookstack avec Docker : wiki personnel et documentation libre Contexte du projet J'ai installé Bookstack sur un vps pour deux usages principaux : la prise de notes personnelles et la création de documentation libre que je partage publiquement (guides d'installation, tutoriels, bonnes pratiques). Configuration : Docker et Docker Compose Sous-domaine : book.mon-domaine.fr Certificat SSL Let's Encrypt Pourquoi Bookstack Bookstack est une plateforme de documentation open source, simple et efficace. Son organisation en Étagères → Livres → Chapitres → Pages permet de structurer clairement la documentation. Avantages pour mon usage : Prise de notes personnelles : Doc technique, procédures clients ... Documentation libre : guides techniques que je rends publics pour aider la communauté Éditeur WYSIWYG : édition visuelle intuitive Gestion des permissions : pages privées pour mes notes, publiques pour la documentation partagée Export : PDF, HTML, Markdown pour diffuser facilement Recherche puissante : retrouver rapidement n'importe quelle information Pourquoi Docker Docker simplifie l'installation en empaquetant Bookstack et sa base de données dans des conteneurs prêts à l'emploi. Au lieu de configurer manuellement PHP, MariaDB, Nginx et toutes les dépendances, Docker gère tout automatiquement. Résultat : installation en 10 minutes, mises à jour simplifiées, et facilité de migration vers un autre serveur. Projet Docker officiel : https://github.com/linuxserver/docker-bookstack Préparation du serveur Connexion SSH et mise à jour : ssh debian@votre-ip-serveur sudo apt update && sudo apt upgrade -y Installation de Docker Installation de Docker et Docker Compose : # Ajouter le dépôt Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Installation sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose -y Vérification : docker --version docker-compose --version Configuration Docker Compose Création de la structure : sudo mkdir -p /opt/bookstack cd /opt/bookstack sudo nano docker-compose.yml Configuration docker-compose.yml : version: '3' services: bookstack-db: image: mariadb:10.11 container_name: bookstack-db restart: always environment: MYSQL_ROOT_PASSWORD: MotDePasseRootSecurise123 MYSQL_DATABASE: bookstack MYSQL_USER: bookstack MYSQL_PASSWORD: MotDePasseBookstackSecurise123 volumes: - ./db:/var/lib/mysql networks: - bookstack-network bookstack-app: image: lscr.io/linuxserver/bookstack:latest container_name: bookstack-app restart: always depends_on: - bookstack-db environment: PUID=1000 PGID=1000 TZ=Europe/Paris APP_URL=https://book.mon-domaine.fr DB_HOST=bookstack-db DB_PORT=3306 DB_DATABASE=bookstack DB_USERNAME=bookstack DB_PASSWORD=MotDePasseBookstackSecurise123 volumes: - ./bookstack:/config ports: - "8080:80" networks: - bookstack-network networks: bookstack-network: driver: bridge Changez les mots de passe avant de démarrer les conteneurs. Explication de la configuration : bookstack-db (Base de données) : mariadb:10.11 : version stable de MariaDB volumes: ./db : stocke la base de données dans le dossier local Variables d'environnement pour la connexion bookstack-app (Application) : Image officielle LinuxServer.io ports: 8080:80 : Bookstack accessible sur le port 8080 APP_URL : votre domaine (avec https://) TZ : fuseau horaire volumes: ./bookstack : stocke les fichiers et configuration Démarrage des conteneurs : cd /opt/bookstack sudo docker-compose up -d Vérification après 30 secondes : sudo docker-compose ps Les deux conteneurs (bookstack-app et bookstack-db) doivent être "Up". Configuration DNS Dans l'interface de votre registrar, ajoutez un enregistrement A : Sous-domaine : book Type : A Cible : l'IP de votre serveur La propagation DNS prend entre 5 minutes et 24 heures. Vérification : dig book.mon-domaine.fr Installation de Nginx comme reverse proxy Nginx sert de passerelle entre Internet et le conteneur Docker : sudo apt install nginx certbot python3-certbot-nginx -y Configuration Nginx : sudo nano /etc/nginx/sites-available/bookstack server { listen 80; server_name book.mon-domaine.fr; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; client_max_body_size 50M; } } Le paramètre client_max_body_size 50M permet l'upload de fichiers volumineux (screenshots, PDF). Activation : sudo ln -s /etc/nginx/sites-available/bookstack /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx Installation du certificat SSL sudo certbot --nginx -d book.mon-domaine.fr Certbot configure automatiquement HTTPS et le renouvellement automatique du certificat tous les 3 mois. Première connexion Accès via navigateur : https://book.mon-domaine.fr Identifiants par défaut : Email : admin@admin.com Mot de passe : password Changez immédiatement ces identifiants : Avatar en haut à droite → Settings Change Password Changez l'email administrateur Gestion des permissions dans Bookstack Pour rendre une page publique : Ouvrez la page Cliquez sur les trois points → Permissions Activez Public Access Choisissez le niveau : View (lecture seule pour le public) Pour garder une page privée, ne cochez pas "Public Access". Seul vous (administrateur) pourrez la voir. Vous pouvez également créer des rôles (éditeur, lecteur) si vous voulez partager certains contenus avec des collaborateurs spécifiques. Avantages de Docker pour Bookstack Installation simplifiée : 10 minutes au lieu de 1 heure avec installation manuelle Pas de configuration PHP/MariaDB/extensions à gérer Tout est pré-configuré et optimisé Maintenance facilitée : Mise à jour en deux commandes : cd /opt/bookstack sudo docker-compose pull sudo docker-compose up -d Portabilité : Migration vers un autre serveur simplissime : copiez le dossier /opt/bookstack, relancez docker-compose up -d, c'est tout. Isolation : Bookstack et sa base de données sont isolés du reste du système. Pas de conflit avec d'autres applications. Sauvegardes Script de sauvegarde simple : #!/bin/bash DATE=$(date +%Y%m%d) cd /opt/bookstack sudo tar -czf /backup/bookstack-$DATE.tar.gz bookstack/ db/ Cette archive contient tous les fichiers, uploads et la base de données. Automatisez avec un cron quotidien : sudo crontab -e Ajoutez : 0 2 * * * /chemin/vers/backup-bookstack.sh Commandes utiles Surveillance des conteneurs : cd /opt/bookstack sudo docker-compose ps sudo docker-compose logs -f bookstack-app Redémarrage : sudo docker-compose restart Arrêt/démarrage : sudo docker-compose stop sudo docker-compose start Mise à jour : sudo docker-compose pull sudo docker-compose up -d Export et partage de documentation Pour partager un guide publié sur Bookstack : Export PDF : Ouvrez le livre ou la page Trois points → Export → Export as PDF Partagez le PDF généré Lien direct : Si la page est publique, copiez simplement l'URL. Les visiteurs peuvent la consulter sans compte. Export Markdown : Trois points → Export → Export as Markdown Pratique pour publier sur GitHub ou un blog. Mon retour d'expérience Bookstack avec Docker est devenu central dans mon organisation. La distinction entre notes privées et documentation publique fonctionne parfaitement grâce au système de permissions. Points positifs : Installation Docker ultra-rapide (10 minutes) Interface intuitive, pas de courbe d'apprentissage Gestion des permissions simple et efficace Export PDF propre pour partager des guides Recherche rapide et efficace Léger et rapide, même sur un petit VPS Points d'attention : L'éditeur WYSIWYG est excellent pour la documentation technique, mais si vous avez l'habitude de Markdown pur, il peut sembler moins flexible. Il existe un mode Markdown, mais l'éditeur WYSIWYG reste le plus intégré. Les images uploadées sont stockées dans le conteneur. Pensez à bien sauvegarder le dossier /opt/bookstack/bookstack. Conclusion Bookstack avec Docker est la solution idéale pour gérer à la fois de la documentation personnelle et des guides publics. L'installation prend 10 minutes grâce à Docker, et le système de permissions permet de séparer clairement contenu privé et contenu public. Pour organiser le besoin de documenter et également partager Bookstack offre la flexibilité parfaite. Projet officiel : https://github.com/linuxserver/docker-bookstack