---
title: "MediaWiki avec Docker Compose et hébergement en un clic"
description: "MediaWiki, le logiciel de wiki open source qui fait tourner Wikipédia : pages, historique, modèles et éditeur visuel. Auto-hébergez votre wiki en un clic."
---

[← Tous les templates](https://pethost.dev/fr/templates/) · [Notes et wikis](https://pethost.dev/fr/templates/notes/)

# Déployez MediaWiki en un clic

Le logiciel de wiki de Wikipédia : des pages que tout le monde peut lire, modifiées dans l’éditeur visuel ou dans l’éditeur de wikicode

Une alternative auto-hébergée à Confluence et Fandom.

[Déployer sur Pethost](https://console.pethost.dev/?template=mediawiki)

## Qu’est-ce que MediaWiki ?

MediaWiki est le logiciel de wiki libre et open source créé par la Wikimedia Foundation pour Wikipédia, et utilisé par des milliers d’autres wikis, des wikis de jeux et de fans aux bases de connaissances d’entreprise. Les pages se lient entre elles par leurs titres, chaque modification est gardée dans l’historique de la page et peut être comparée ou annulée, et chaque page a sa page de discussion. Les modèles, les catégories et les pages spéciales aident à organiser un grand wiki, et son API permet à des bots et à des scripts de lire et de modifier le wiki.

Les contributeurs écrivent en wikicode, le langage de balisage de MediaWiki, ou dans VisualEditor, qui modifie une page telle qu’elle s’affiche. Ce template active les extensions livrées avec MediaWiki, parmi lesquelles VisualEditor, WikiEditor, ParserFunctions, Cite, Scribunto pour les modules Lua, SyntaxHighlight et DiscussionTools, ainsi que les habillages Vector, MonoBook, Timeless et MinervaNeue pour les téléphones.

Ce template lance l’image officielle de MediaWiki, version 1.46, avec Apache et PHP, et sa base de données en SQLite, que MediaWiki prend en charge pour les petits et moyens wikis. Le wiki est installé avant de répondre à quiconque, avec le nom, le nom d’utilisateur et le mot de passe que vous indiquez ; tout le monde peut le lire, seuls les utilisateurs connectés le modifient, et c’est l’administrateur qui crée les comptes.

## Hébergement de MediaWiki sur Pethost

1. Vous vous connectez à Pethost avec une clé d’accès, GitHub ou Google. Pas encore de machine ? Vous choisissez une offre, et le lien attend qu’elle soit prête.
2. Nouveau projet s’ouvre sur MediaWiki. Vous remplissez ce qu’il demande et cliquez sur Créer le projet : **Nom du site**, **Nom d’utilisateur**, **Mot de passe administrateur**.
3. En une minute ou deux, MediaWiki tourne à sa propre adresse en HTTPS. Ses secrets sont créés au hasard, et ses données sont dans la sauvegarde nocturne.
4. C’est un projet comme les autres : vous ou votre agent pouvez le modifier, revenir à une version précédente ou le restaurer.

## Questions sur MediaWiki

**MediaWiki est-il gratuit ?**

Oui. MediaWiki est open source sous licence GNU General Public License, version 2 ou ultérieure, et gratuit pour tout wiki, public ou privé. Wikipédia tourne sur le même logiciel.

**MediaWiki a-t-il un éditeur visuel ?**

Oui. VisualEditor est livré avec MediaWiki et ce template l’active : « Modifier » ouvre une page telle qu’elle s’affiche, et « Modifier le wikicode » ouvre son wikicode. Les deux enregistrent dans le même historique de la page.

**Comment rendre mon MediaWiki privé ?**

Ajoutez $wgGroupPermissions['*']['read'] = false; à LocalSettings.php, dans le volume data, et redémarrez le projet : seuls les utilisateurs connectés peuvent alors lire. La page Special:UserLogin reste ouverte, donc les contributeurs peuvent toujours se connecter.

**Comment ajouter des utilisateurs à mon wiki ?**

Connectez-vous en tant qu’administrateur et ouvrez la page Special:CreateAccount : indiquez un nom d’utilisateur et un mot de passe, ou une adresse e-mail pour un mot de passe temporaire. La page Special:UserRights donne ensuite à un utilisateur les droits d’un groupe, comme administrateur.

**Puis-je installer des extensions MediaWiki ?**

Oui. Les extensions livrées avec MediaWiki sont déjà activées. Une autre se copie dans le dossier extensions du conteneur et se charge avec wfLoadExtension dans LocalSettings.php ; un changement d’image remplace ce dossier, gardez donc les extensions que vous ajoutez dans un volume que vous créez vous-même.

**De combien de mémoire et de disque MediaWiki a-t-il besoin ?**

MediaWiki est léger : environ 200 MB de mémoire, et sa base SQLite grossit avec l’historique de chaque page ; les médias envoyés prennent la place de leurs fichiers. Sur Pethost, l’offre Starter lui suffit, avec de la place pour d’autres applications à côté.

## Le fichier Docker Compose de MediaWiki

Le template, c’est ce compose.yaml et les variables écrites dans le .env du projet à sa création. Pethost exécute le fichier tel qu’il est écrit.

**Conteneurs :** mediawiki (mediawiki:1.46).

**Volumes, dans la sauvegarde nocturne :** data, images.

```
services:
  mediawiki:
    image: mediawiki:1.46
    restart: unless-stopped
    environment:
      WIKI_URL: ${URL}
      WIKI_NAME: ${WIKI_NAME}
      ADMIN_USERNAME: ${ADMIN_USERNAME}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    # A new MediaWiki offers its installer, which makes the administrator, to whoever opens it
    # first. So the wiki is installed here before Apache answers anyone: its SQLite database and
    # LocalSettings.php in the data volume, the administrator from the fields. LocalSettings.php is
    # written there only once the install has succeeded; a start that finds none puts what an
    # earlier, failed install left aside in data/failed-<time> and installs again. Every start
    # then runs MediaWiki's update, which a newer image of the line may need.
    command:
      - sh
      - -c
      - |
        set -e
        cd /var/www/html
        if [ ! -f /var/www/data/LocalSettings.php ]; then
          if ls /var/www/data/*.sqlite >/dev/null 2>&1; then
            aside=/var/www/data/failed-$$(date +%s)
            mkdir "$$aside"
            mv /var/www/data/*.sqlite* "$$aside"/
          fi
          rm -rf /var/www/data/install
          mkdir -p /var/www/data/install
          php maintenance/run.php install --dbtype=sqlite --dbpath=/var/www/data --dbname=wiki \
            --server="$$WIKI_URL" --scriptpath= --lang=en --pass="$$ADMIN_PASSWORD" \
            --with-extensions --confpath=/var/www/data/install "$$WIKI_NAME" "$$ADMIN_USERNAME"
          cat /var/www/data/install/LocalSettings.php - > /var/www/data/LocalSettings.php <<'PHP'

        # The wiki's name and address are the project's .env's, read at every start.
        $$wgSitename = getenv('WIKI_NAME') ?: $$wgSitename;
        $$wgMetaNamespace = false;
        $$wgServer = getenv('WIKI_URL') ?: $$wgServer;
        # MediaWiki is at the address's root, and its pages at /wiki/Page_name: Apache sends every
        # address that is no file to index.php.
        $$wgScriptPath = '';
        $$wgResourceBasePath = $$wgScriptPath;
        $$wgArticlePath = '/wiki/$$1';
        # Anyone reads; only signed-in users edit, and only an administrator makes accounts, at
        # Special:CreateAccount.
        $$wgGroupPermissions['*']['createaccount'] = false;
        $$wgGroupPermissions['*']['edit'] = false;
        # MediaWiki's flower beside the wiki's name, until a logo of the wiki's own is set here.
        $$wgLogos = ['icon' => "$$wgResourceBasePath/resources/assets/mediawiki_compact.svg", '1x' => "$$wgResourceBasePath/resources/assets/mediawiki.png"];
        # Uploaded files are kept in the images volume.
        $$wgEnableUploads = true;
        # The visitor's address is in X-Forwarded-For, from the machine's proxy.
        $$wgUsePrivateIPs = true;
        $$wgCdnServersNoPurge = ['10.192.0.0/10'];
        PHP
          rm -rf /var/www/data/install
        fi
        # The image's html folder is sticky and www-data's, where Linux lets www-data follow only a
        # link of its own.
        ln -sf /var/www/data/LocalSettings.php LocalSettings.php
        chown -h www-data:www-data LocalSettings.php
        php maintenance/run.php update --quick
        printf 'upload_max_filesize = 100M\npost_max_size = 100M\n' > /usr/local/etc/php/conf.d/uploads.ini
        # The web installer is never needed here, and it would greet a stranger: the wiki is
        # installed above, and updated at every start.
        echo 'RedirectMatch 404 ^/mw-config' > /etc/apache2/conf-enabled/no-installer.conf
        chown -R www-data:www-data /var/www/data /var/www/html/images
        exec apache2-foreground
    volumes:
      - data:/var/www/data
      - images:/var/www/html/images
    healthcheck:
      test: ["CMD", "curl", "-fsS", "-o", "/dev/null", "http://127.0.0.1/api.php"]
      interval: 10s
      timeout: 5s
      retries: 30
      start_period: 120s
volumes:
  data:
  images:
```

[compose.yaml](https://pethost.dev/templates/mediawiki/compose.yaml)[Le voir sur GitHub](https://github.com/pethost-dev/templates/tree/main/mediawiki)

## [Aussi dans Notes et wikis](https://pethost.dev/fr/templates/notes/)

- [**Memos**De courtes notes en Markdown sur un fil privé](https://pethost.dev/fr/templates/memos/)
- [**HedgeDoc**Des notes Markdown que l’on écrit à plusieurs, en temps réel](https://pethost.dev/fr/templates/hedgedoc/)
- [**Obsidian LiveSync**Un serveur CouchDB qui synchronise vos coffres Obsidian avec Self-hosted LiveSync](https://pethost.dev/fr/templates/obsidian-livesync/)
- [**BookStack**Un wiki organisé en étagères, livres, chapitres et pages](https://pethost.dev/fr/templates/bookstack/)
- [**Docmost**Un wiki et une documentation collaboratifs, avec des espaces, l’édition en temps réel et des diagrammes](https://pethost.dev/fr/templates/docmost/)
- [**Etherpad**Des documents rédigés à plusieurs en temps réel : chaque auteur dans sa couleur, avec chat, historique et plugins](https://pethost.dev/fr/templates/etherpad/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/fr/templates/)
- [À propos](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/fr/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Conditions](https://pethost.dev/terms/)
- [Confidentialité](https://pethost.dev/privacy/)
- [Remboursements](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bases de données

- [Postgres](https://pethost.dev/fr/postgres/)

Comparatifs

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/fr/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/fr/blog/coolify-cloud-vs-dokploy-cloud/)
- [Tarifs Railway vs Render vs Fly.io](https://pethost.dev/fr/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hébergement Docker Compose managé](https://pethost.dev/fr/blog/managed-docker-compose-hosting/)

Alternatives

- [Alternatives à Railway](https://pethost.dev/fr/blog/railway-alternatives/)
- [Alternatives à Heroku](https://pethost.dev/fr/blog/heroku-alternatives/)
- [Alternatives à Dokploy](https://pethost.dev/fr/blog/dokploy-alternatives/)
- [Alternatives à Coolify](https://pethost.dev/fr/blog/coolify-alternatives/)
- [Alternatives à Render](https://pethost.dev/fr/blog/render-alternatives/)
- [Alternatives à Sliplane](https://pethost.dev/fr/blog/sliplane-alternatives/)
