---
title: "MediaWiki com Docker Compose e hospedagem em um clique"
description: "O MediaWiki é o software de wiki open source da Wikipédia: páginas, histórico, predefinições e editor visual. Auto-hospede sua wiki em um clique."
---

[← Todos os templates](https://pethost.dev/pt/templates/) · [Notas e wikis](https://pethost.dev/pt/templates/notes/)

# Faça deploy de MediaWiki em um clique

O software de wiki da Wikipédia: páginas que qualquer pessoa pode ler, editadas no editor visual ou no de código-fonte

Uma alternativa auto-hospedada para Confluence e Fandom.

[Fazer deploy no Pethost](https://console.pethost.dev/?template=mediawiki)

## O que é MediaWiki?

O MediaWiki é o software de wiki livre e de código aberto que a Fundação Wikimedia fez para a Wikipédia e que milhares de outras wikis usam, de wikis de jogos e de fãs a bases de conhecimento de empresas. As páginas apontam umas para as outras pelos títulos, cada edição fica guardada no histórico da página e pode ser comparada ou desfeita, e cada página tem uma página de discussão. Predefinições, categorias e as páginas especiais ajudam a organizar uma wiki grande, e a API dele deixa bots e scripts lerem e editarem.

Os editores escrevem em wikitexto, a marcação do MediaWiki, ou no VisualEditor, que edita a página do jeito que ela aparece. Este template ativa as extensões que vêm com o MediaWiki, entre elas VisualEditor, WikiEditor, ParserFunctions, Cite, Scribunto para módulos Lua, SyntaxHighlight e DiscussionTools, e as skins Vector, MonoBook, Timeless e MinervaNeue, para celulares.

Este template roda a imagem oficial do MediaWiki, versão 1.46, com Apache e PHP, e o banco de dados em SQLite, que o MediaWiki suporta para wikis pequenas e médias. A wiki é instalada antes de responder a qualquer pessoa, com o nome, o usuário e a senha que você informa; qualquer pessoa pode lê-la, só usuários logados editam, e as contas são criadas pelo administrador.

## Hospedagem de MediaWiki no Pethost

1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
2. Novo projeto abre em MediaWiki. Você preenche o que ele pede e clica em Criar projeto: **Nome do site**, **Usuário**, **Senha do administrador**.
3. Em um ou dois minutos MediaWiki está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
4. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

## Perguntas sobre MediaWiki

**O MediaWiki é gratuito?**

Sim. O MediaWiki é de código aberto sob a GNU General Public License, versão 2 ou posterior, e de uso gratuito para qualquer wiki, pública ou privada. A Wikipédia roda no mesmo software.

**O MediaWiki tem editor visual?**

Sim. O VisualEditor vem com o MediaWiki e este template o ativa: “Editar” abre a página do jeito que ela aparece, e “Editar código-fonte” abre o wikitexto dela. Os dois salvam no mesmo histórico da página.

**Como deixo meu MediaWiki privado?**

Adicione $wgGroupPermissions['*']['read'] = false; ao LocalSettings.php, no volume data, e reinicie o projeto: aí só usuários logados leem. A Special:UserLogin continua aberta, então os editores ainda conseguem entrar.

**Como adiciono usuários à minha wiki?**

Entre como administrador e abra Special:CreateAccount: informe um nome de usuário e uma senha, ou um endereço de e-mail, que recebe uma senha temporária. Depois, Special:UserRights dá a um usuário os direitos de um grupo, como o de administrador.

**Posso instalar extensões no MediaWiki?**

Sim. As extensões que vêm com o MediaWiki já estão ativadas. Outra extensão é copiada para a pasta extensions do container e carregada com wfLoadExtension no LocalSettings.php; uma troca de imagem substitui essa pasta, então mantenha as extensões que você adicionar num volume criado por você.

**De quanta memória e disco MediaWiki precisa?**

O MediaWiki é leve: cerca de 200 MB de memória, e o banco de dados SQLite dele cresce com o histórico de cada página; os uploads ocupam o que os arquivos deles ocupam. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

## Arquivo Docker Compose de MediaWiki

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.

**Containers:** mediawiki (mediawiki:1.46).

**Volumes, no backup noturno:** 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)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/mediawiki)

## [Mais em Notas e wikis](https://pethost.dev/pt/templates/notes/)

- [**Memos**Notas curtas em Markdown em uma linha do tempo privada](https://pethost.dev/pt/templates/memos/)
- [**HedgeDoc**Notas em Markdown que você escreve com outras pessoas, em tempo real](https://pethost.dev/pt/templates/hedgedoc/)
- [**Obsidian LiveSync**Um servidor CouchDB que sincroniza seus cofres do Obsidian com o Self-hosted LiveSync](https://pethost.dev/pt/templates/obsidian-livesync/)
- [**BookStack**Uma wiki organizada em estantes, livros, capítulos e páginas](https://pethost.dev/pt/templates/bookstack/)
- [**Docmost**Wiki e documentação colaborativas, com espaços, edição em tempo real e diagramas](https://pethost.dev/pt/templates/docmost/)
- [**Etherpad**Documentos editados em conjunto em tempo real: cada autor com a sua cor, com chat, histórico e plugins](https://pethost.dev/pt/templates/etherpad/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

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

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

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