---
title: "MediaWiki: Docker Compose i hosting jednym kliknięciem"
description: "MediaWiki to silnik wiki open source, na którym działa Wikipedia: strony, historia, szablony i edytor wizualny. Hostuj swoje wiki u siebie w jeden klik."
---

[← Wszystkie szablony](https://pethost.dev/pl/templates/) · [Notatki i wiki](https://pethost.dev/pl/templates/notes/)

# Wdróż MediaWiki jednym kliknięciem

Oprogramowanie wiki, na którym działa Wikipedia: strony, które każdy może czytać, edytowane wizualnie albo w kodzie źródłowym

Alternatywa dla Confluence i Fandom, hostowana u siebie.

[Wdróż na Pethost](https://console.pethost.dev/?template=mediawiki)

## Czym jest MediaWiki?

MediaWiki to darmowe oprogramowanie wiki open source, stworzone przez Fundację Wikimedia dla Wikipedii i używane przez tysiące innych wiki, od wiki o grach i fandomach po firmowe bazy wiedzy. Strony linkują do siebie po tytułach, każda edycja zostaje w historii strony i można ją porównać albo wycofać, a każda strona ma stronę dyskusji. Szablony, kategorie i strony specjalne pomagają uporządkować duże wiki, a API MediaWiki pozwala botom i skryptom czytać i edytować strony.

Redaktorzy piszą w wikitekście, języku znaczników MediaWiki, albo w edytorze VisualEditor, który edytuje stronę tak, jak wygląda. Ten szablon włącza rozszerzenia dołączone do MediaWiki, między innymi VisualEditor, WikiEditor, ParserFunctions, Cite, Scribunto dla modułów w Lua, SyntaxHighlight i DiscussionTools, oraz skórki Vector, MonoBook, Timeless i MinervaNeue dla telefonów.

Ten szablon uruchamia oficjalny obraz MediaWiki w wersji 1.46, z Apache i PHP, oraz bazą danych SQLite, którą MediaWiki obsługuje w małych i średnich wiki. Wiki jest instalowane, zanim komukolwiek odpowie, z podaną nazwą, nazwą użytkownika i hasłem; każdy może je czytać, edytują tylko zalogowani użytkownicy, a konta zakłada administrator.

## Hosting MediaWiki na Pethost

1. Logujesz się do Pethost kluczem dostępu, przez GitHub albo Google. Nie masz jeszcze maszyny? Wybierasz plan, a link czeka, aż będzie gotowa.
2. Okno „Nowy projekt” otwiera się na aplikacji MediaWiki. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: **Nazwa strony**, **Nazwa użytkownika**, **Hasło administratora**.
3. Za minutę czy dwie aplikacja MediaWiki działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
4. To projekt jak każdy inny: ty albo twój agent możecie go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.

## Pytania o MediaWiki

**Czy MediaWiki jest darmowe?**

Tak. MediaWiki jest open source na licencji GNU General Public License w wersji 2 lub nowszej i można go używać za darmo w dowolnym wiki, publicznym czy prywatnym. Wikipedia działa na tym samym oprogramowaniu.

**Czy MediaWiki ma edytor wizualny?**

Tak. VisualEditor jest dołączony do MediaWiki, a ten szablon go włącza: zakładka Edytuj otwiera stronę tak, jak wygląda, a zakładka Edytuj kod źródłowy – jej wikitekst. Obie zapisują zmiany w tej samej historii strony.

**Jak zrobić z MediaWiki prywatne wiki?**

Dopisz $wgGroupPermissions['*']['read'] = false; do LocalSettings.php w wolumenie data i zrestartuj projekt: wtedy czytać mogą tylko zalogowani użytkownicy. Strona Special:UserLogin pozostaje dostępna, więc redaktorzy nadal mogą się zalogować.

**Jak dodać użytkowników do swojego wiki?**

Zaloguj się jako administrator i otwórz Special:CreateAccount: podaj nazwę użytkownika i hasło albo adres e-mail, na który przyjdzie hasło tymczasowe. Na stronie Special:UserRights nadasz potem użytkownikowi uprawnienia grupy, na przykład administratorów.

**Czy mogę instalować rozszerzenia MediaWiki?**

Tak. Rozszerzenia dołączone do MediaWiki są już włączone. Inne kopiuje się do katalogu extensions w kontenerze i ładuje przez wfLoadExtension w LocalSettings.php; zmiana obrazu zastępuje ten katalog, więc dodane rozszerzenia trzymaj w wolumenie, który utworzysz sam.

**Ile pamięci i miejsca na dysku potrzebuje MediaWiki?**

MediaWiki ma małe wymagania: około 200 MB pamięci, a jego baza danych SQLite rośnie z historią każdej strony; wgrane pliki zajmują tyle miejsca, ile ważą. Na Pethost wystarczy mu plan Starter, z miejscem na inne aplikacje obok.

## MediaWiki: plik Docker Compose

Szablon to ten compose.yaml i zmienne zapisywane do .env projektu przy jego tworzeniu. Pethost uruchamia plik dokładnie tak, jak jest napisany.

**Kontenery:** mediawiki (mediawiki:1.46).

**Wolumeny, w nocnym backupie:** 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)[Zobacz na GitHubie](https://github.com/pethost-dev/templates/tree/main/mediawiki)

## [Więcej w kategorii Notatki i wiki](https://pethost.dev/pl/templates/notes/)

- [**Memos**Krótkie notatki Markdown na prywatnej osi czasu](https://pethost.dev/pl/templates/memos/)
- [**HedgeDoc**Notatki w Markdownie, które piszesz razem z innymi w czasie rzeczywistym](https://pethost.dev/pl/templates/hedgedoc/)
- [**Obsidian LiveSync**Serwer CouchDB, który synchronizuje twoje sejfy Obsidiana przez Self-hosted LiveSync](https://pethost.dev/pl/templates/obsidian-livesync/)
- [**BookStack**Wiki uporządkowane w półki, książki, rozdziały i strony](https://pethost.dev/pl/templates/bookstack/)
- [**Docmost**Wiki i dokumentacja do wspólnej pracy, z przestrzeniami, edycją w czasie rzeczywistym i diagramami](https://pethost.dev/pl/templates/docmost/)
- [**Etherpad**Dokumenty edytowane wspólnie w czasie rzeczywistym: każdy autor w swoim kolorze, z czatem, historią i wtyczkami](https://pethost.dev/pl/templates/etherpad/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Szablony](https://pethost.dev/pl/templates/)
- [O nas](https://pethost.dev/about/)
- [Dokumentacja](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pl/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Regulamin](https://pethost.dev/terms/)
- [Prywatność](https://pethost.dev/privacy/)
- [Zwroty](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bazy danych

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

Porównania

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pl/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pl/blog/coolify-cloud-vs-dokploy-cloud/)
- [Cennik Railway vs Render vs Fly.io](https://pethost.dev/pl/blog/railway-vs-render-vs-fly-io-pricing/)
- [Zarządzany hosting Docker Compose](https://pethost.dev/pl/blog/managed-docker-compose-hosting/)

Alternatywy

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