---
title: "MediaWiki con Docker Compose y hosting en un clic"
description: "MediaWiki, el software de wiki de código abierto que usa Wikipedia: páginas, historial, plantillas y editor visual. Autoaloja tu propia wiki en un clic."
---

[← Todas las plantillas](https://pethost.dev/es/templates/) · [Notas y wikis](https://pethost.dev/es/templates/notes/)

# Despliega MediaWiki en un clic

El software de wiki de Wikipedia: páginas que cualquiera puede leer, editadas con el editor visual o con el de código

Una alternativa autoalojada a Confluence y Fandom.

[Desplegar en Pethost](https://console.pethost.dev/?template=mediawiki)

## ¿Qué es MediaWiki?

MediaWiki es el software de wiki libre y de código abierto que la Fundación Wikimedia creó para Wikipedia, y que usan miles de wikis más, desde wikis de juegos y de fans hasta bases de conocimiento de empresas. Las páginas se enlazan entre sí por sus títulos, cada edición se guarda en el historial de la página y se puede comparar o revertir, y cada página tiene su página de discusión. Las plantillas, las categorías y las páginas especiales ayudan a organizar una wiki grande, y su API permite que bots y scripts lean y editen.

Quienes editan escriben en wikitexto, el lenguaje de marcado de MediaWiki, o en VisualEditor, que edita la página tal como se ve. Esta plantilla activa las extensiones que vienen con MediaWiki, entre ellas VisualEditor, WikiEditor, ParserFunctions, Cite, Scribunto para módulos en Lua, SyntaxHighlight y DiscussionTools, y las apariencias Vector, MonoBook, Timeless y MinervaNeue para teléfonos.

Esta plantilla ejecuta la imagen oficial de MediaWiki, versión 1.46, con Apache y PHP, y su base de datos en SQLite, que MediaWiki admite para wikis pequeñas y medianas. La wiki se instala antes de responder a nadie, con el nombre, el nombre de usuario y la contraseña que indicas; cualquiera puede leerla, solo editan los usuarios con la sesión iniciada, y las cuentas las crea el administrador.

## Hosting de MediaWiki en Pethost

1. Inicias sesión en Pethost con una passkey, GitHub o Google. ¿Aún no tienes máquina? Eliges un plan, y el enlace espera hasta que esté lista.
2. Nuevo proyecto se abre en MediaWiki. Rellenas lo que pide y haces clic en Crear proyecto: **Nombre del sitio**, **Nombre de usuario**, **Contraseña de administrador**.
3. En un par de minutos MediaWiki está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar, y sus datos entran en el backup de cada noche.
4. Es un proyecto como cualquier otro: tú o tu agente lo pueden cambiar, volver a una versión anterior o restaurar.

## Preguntas sobre MediaWiki

**¿MediaWiki es gratis?**

Sí. MediaWiki es de código abierto bajo la GNU General Public License, versión 2 o posterior, y es gratis para cualquier wiki, pública o privada. Wikipedia funciona con el mismo software.

**¿MediaWiki tiene editor visual?**

Sí. VisualEditor viene con MediaWiki y esta plantilla lo activa: “Editar” abre una página tal como se ve, y “Editar código” abre su wikitexto. Los dos guardan en el mismo historial de la página.

**¿Cómo hago privada mi wiki de MediaWiki?**

Agrega $wgGroupPermissions['*']['read'] = false; a LocalSettings.php, en el volumen data, y reinicia el proyecto: desde entonces solo leen los usuarios con la sesión iniciada. La página Special:UserLogin sigue abierta, así que los editores pueden seguir iniciando sesión.

**¿Cómo agrego usuarios a mi wiki?**

Inicia sesión como administrador y abre Special:CreateAccount: indica un nombre de usuario y una contraseña, o una dirección de correo, a la que se envía una contraseña temporal. Después, Special:UserRights da a un usuario los permisos de un grupo, como el de administrador.

**¿Puedo instalar extensiones de MediaWiki?**

Sí. Las extensiones que vienen con MediaWiki ya están activadas. Otra se copia en la carpeta extensions del contenedor y se carga con wfLoadExtension en LocalSettings.php; un cambio de imagen reemplaza esa carpeta, así que guarda las extensiones que agregues en un volumen aparte.

**¿Cuánta memoria y disco necesita MediaWiki?**

MediaWiki es ligero: unos 200 MB de memoria, y su base de datos SQLite crece con el historial de cada página; los archivos subidos ocupan lo que ocupan. En Pethost le basta el plan Starter, y queda sitio para otras apps a su lado.

## El archivo Docker Compose de MediaWiki

La plantilla es este compose.yaml y las variables que se escriben en el .env del proyecto al crearlo. Pethost ejecuta el archivo tal como está escrito.

**Contenedores:** mediawiki (mediawiki:1.46).

**Volúmenes, en el backup de cada noche:** 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)[Verla en GitHub](https://github.com/pethost-dev/templates/tree/main/mediawiki)

## [Más en Notas y wikis](https://pethost.dev/es/templates/notes/)

- [**Memos**Notas breves en Markdown en una línea de tiempo privada](https://pethost.dev/es/templates/memos/)
- [**HedgeDoc**Notas en Markdown que escribes junto con otros en tiempo real](https://pethost.dev/es/templates/hedgedoc/)
- [**Obsidian LiveSync**Un servidor CouchDB que sincroniza tus bóvedas de Obsidian con Self-hosted LiveSync](https://pethost.dev/es/templates/obsidian-livesync/)
- [**BookStack**Una wiki organizada en estantes, libros, capítulos y páginas](https://pethost.dev/es/templates/bookstack/)
- [**Docmost**Wiki y documentación colaborativas, con espacios, edición en tiempo real y diagramas](https://pethost.dev/es/templates/docmost/)
- [**Etherpad**Documentos editados en equipo en tiempo real: cada autor con su propio color, con chat, historial y plugins](https://pethost.dev/es/templates/etherpad/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Plantillas](https://pethost.dev/es/templates/)
- [Sobre nosotros](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/es/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Términos](https://pethost.dev/terms/)
- [Privacidad](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bases de datos

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

Comparativas

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/es/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/es/blog/coolify-cloud-vs-dokploy-cloud/)
- [Precios de Railway vs Render vs Fly.io](https://pethost.dev/es/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hosting gestionado para Docker Compose](https://pethost.dev/es/blog/managed-docker-compose-hosting/)

Alternativas

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