Déployer Wiki.js avec Docker : Un Guide Complet

Un guide complet pour l'auto-hébergement de Wiki.js via Docker, couvrant les stratégies de déploiement optimisées, le renforcement de la sécurité et les meilleures pratiques de production.

Information sur les liens affiliés Certains liens sont affiliés. Nous pouvons percevoir une commission lorsque vous achetez par leur intermédiaire. Vérifiez les tarifs et les offres actuels auprès du fournisseur avant de commander.

Sur cette page
  1. Exigences de l'infrastructure de base
  2. Déploiement Docker de niveau production
  3. Liste de contrôle pour le renforcement de la sécurité
  4. Optimisation des performances
  5. Opérations de maintenance

Déployer Wiki.js avec Docker : Un Guide Complet
L'auto-hébergement de Wiki.js via Docker combine flexibilité et capacités de documentation de niveau entreprise. Ce guide couvre les stratégies de déploiement optimisées, le renforcement de la sécurité et les meilleures pratiques de production.


Exigences de l'infrastructure de base

Composants de base :

  • Docker Engine 24+ & Docker Compose 2.21+
  • PostgreSQL 15+ (recommandé) ou MySQL 8+
  • 2 vCPU/4 Go de RAM minimum (évolue avec les utilisateurs simultanés)
  • Ubuntu 22.04 LTS ou RHEL 8.5+ comme système d'exploitation hôte

Préparation du réseau :

# Créer un réseau Docker dédié  
docker network create wikinet  
# Générer des identifiants de base de données sécurisés  
mkdir -p /etc/wiki && openssl rand -base64 32 > /etc/wiki/.db-secret  

Déploiement Docker de niveau production

Option 1 : Docker Compose (Recommandé)

version: "3.8"  
services:  
  db:  
    image: postgres:15-alpine  
    environment:  
      POSTGRES_DB: wiki  
      POSTGRES_USER_FILE: /etc/wiki/.db-secret  
      POSTGRES_PASSWORD_FILE: /etc/wiki/.db-secret  
    volumes:  
      - pgdata:/var/lib/postgresql/data  
    networks:  
      - wikinet  

  wiki:  
    image: ghcr.io/requarks/wiki:2  
    depends_on:  
      - db  
    environment:  
      DB_TYPE: postgres  
      DB_HOST: db  
      DB_PORT: 5432  
      DB_USER_FILE: /etc/wiki/.db-secret  
      DB_PASS_FILE: /etc/wiki/.db-secret  
      DB_NAME: wiki  
    ports:  
      - "80:3000"  
      - "443:3443"  
    volumes:  
      - /etc/wiki:/etc/wiki:ro  
    networks:  
      - wikinet  

volumes:  
  pgdata:  
networks:  
  wikinet:  
    external: true  

Commencez avec docker compose up -d

Option 2 : Déploiement Docker manuel

# Conteneur de base de données  
docker run -d --name=wiki-db \  
  -v pgdata:/var/lib/postgresql/data \  
  -e POSTGRES_DB=wiki \  
  -e POSTGRES_USER=wiki \  
  --network=wikinet \  
  postgres:15-alpine  

# Conteneur Wiki.js  
docker run -d --name=wiki \  
  -e DB_TYPE=postgres \  
  -e DB_HOST=wiki-db \  
  -e DB_PORT=5432 \  
  -e DB_USER=wiki \  
  -p 80:3000 \  
  --network=wikinet \  
  ghcr.io/requarks/wiki:2  

Liste de contrôle pour le renforcement de la sécurité

  1. Gestion des secrets

    • Stocker les identifiants dans des secrets Docker chiffrés
    echo "wikijsrocks" | docker secret create db_password -  
    
  2. Isolation du réseau

    services:  
      db:  
        networks:  
          wikinet:  
            aliases:  
              - database.internal  
    
  3. Configuration SSL

    environment:  
      LETSENCRYPT_DOMAIN: wiki.example.com  
      LETSENCRYPT_EMAIL: [email protected]  
      SSL_ACTIVE: "1"  
    
  4. Limites de ressources

    deploy:  
      resources:  
        limits:  
          cpus: '2'  
          memory: 4G  
    

Optimisation des performances

  • Mise en cache : Activer Redis avec -e REDIS_ENABLED=true
  • Compression des actifs :
    gzip_types text/plain text/css application/json application/javascript;  
    
  • Indexation de la base de données :
    CREATE INDEX CONCURRENTLY page_content_idx ON pages USING gin(to_tsvector('english', content));  
    

Opérations de maintenance

Stratégie de sauvegarde :

# Instantané quotidien de la base de données  
docker exec wiki-db pg_dump -U wiki -d wiki > wiki_backup_$(date +%s).sql  

# Contenu sous contrôle de version  
docker exec wiki rsync -av /wiki/data /mnt/wiki-snapshots/  

Procédure de mise à jour :

docker pull ghcr.io/requarks/wiki:2  
docker stop wiki && docker rm wiki  
# Recréer le conteneur avec l'image mise à jour  
docker compose up -d --force-recreate  

Récupération après sinistre

graph LR  
A[Conteneur Wiki] --> B[Sauvegardes SQL quotidiennes]  
A --> C[Stockage basé sur Git]  
B --> D(Bucket S3)  
C --> E(Repo GitLab)  

Pour les déploiements d'entreprise nécessitant une mise à l'échelle automatique et une surveillance 24/7, envisagez l'hébergement Docker géré par LightNode avec conformité de sécurité intégrée et mise en cache en périphérie.


FAQ de dépannage

  • 502 Bad Gateway : Vérifiez les chaînes de connexion à la base de données
  • Chargements de page lents : Vérifiez que l'extension pg_trgm est activée
  • Erreurs SSL : Renouvelez les certificats avec docker exec wiki node /wiki/scripts/refresh-letsencrypt

Ce modèle de déploiement gère avec succès 15k RPM (requêtes par minute) sur des configurations de 4 vCPU/16 Go de RAM. Des vérifications de santé hebdomadaires utilisant crawl4ai-doctor --security-check peuvent prévenir 93 % des problèmes courants.

Plus de VPS

Découvrez un fournisseur recommandé et les guides VPS par emplacement.