---
title: "MediaWiki: Docker Compose і хостинг в один клік"
description: "MediaWiki — рушій вікі з відкритим кодом, на якому працює Вікіпедія: сторінки, історія, шаблони й візуальний редактор. Self-hosted вікі в один клік."
---

[← Усі шаблони](https://pethost.dev/uk/templates/) · [Нотатки й вікі](https://pethost.dev/uk/templates/notes/)

# Задеплойте MediaWiki в один клік

Рушій вікі, на якому працює Вікіпедія: сторінки, які читає кожен, а редагують у візуальному редакторі або в редакторі коду

Альтернатива Confluence і Fandom на вашій машині.

[Задеплоїти на Pethost](https://console.pethost.dev/?template=mediawiki)

## Що таке MediaWiki?

MediaWiki — безкоштовний рушій вікі з відкритим кодом, який Фонд Вікімедіа створив для Вікіпедії і на якому працюють тисячі інших вікі, від ігрових і фанатських до корпоративних баз знань. Сторінки посилаються одна на одну за назвами, кожна правка зберігається в історії сторінки, де її можна порівняти з іншими або скасувати, а кожна сторінка має свою сторінку обговорення. Шаблони, категорії та спеціальні сторінки допомагають упорядкувати велику вікі, а через API боти й скрипти можуть її читати й редагувати.

Редактори пишуть вікітекстом, розміткою MediaWiki, або у VisualEditor, який редагує сторінку такою, якою вона виглядає. Цей шаблон вмикає розширення, що постачаються з MediaWiki, серед них VisualEditor, WikiEditor, ParserFunctions, Cite, Scribunto для модулів Lua, SyntaxHighlight і DiscussionTools, а також теми оформлення Vector, MonoBook, Timeless і MinervaNeue для телефонів.

Цей шаблон запускає офіційний образ MediaWiki версії 1.46 з Apache і PHP та базою даних у SQLite: MediaWiki підтримує SQLite для малих і середніх вікі. Вікі встановлюється ще до того, як комусь відповість, із назвою, іменем користувача й паролем, які ви вказали; читати її може кожен, редагують лише користувачі, які увійшли, а акаунти створює адміністратор.

## Хостинг MediaWiki на Pethost

1. Ви входите в Pethost — з ключем доступу, через GitHub або Google. Машини ще немає? Ви обираєте тариф, і посилання чекає, доки машина не буде готова.
2. Вікно «Новий проєкт» відкривається на застосунку MediaWiki. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: **Назва сайту**, **Ім’я користувача**, **Пароль адміністратора**.
3. За хвилину-дві MediaWiki працює за власною адресою з HTTPS. Секрети створюються випадково, а дані потрапляють у щонічний бекап.
4. Це проєкт як будь-який інший: ви або ваш агент можете його змінити, відкотити або відновити.

## Питання про MediaWiki

**MediaWiki безкоштовний?**

Так. MediaWiki має відкритий код за ліцензією GNU General Public License версії 2 або новішої, і його можна безкоштовно використовувати для будь-якої вікі, публічної чи приватної. На тому самому рушії працює Вікіпедія.

**Чи є в MediaWiki візуальний редактор?**

Так. VisualEditor постачається з MediaWiki, і цей шаблон його вмикає: вкладка «Редагувати» відкриває сторінку такою, якою вона виглядає, а «Редагувати код» — її вікітекст. Обидві зберігають правки в ту саму історію сторінки.

**Як зробити вікі на MediaWiki приватною?**

Додайте $wgGroupPermissions['*']['read'] = false; у LocalSettings.php в томі data і перезапустіть проєкт: тоді читати зможуть лише користувачі, які увійшли. Сторінка Special:UserLogin лишається відкритою, тож редактори й далі зможуть увійти.

**Як додати користувачів у вікі?**

Увійдіть як адміністратор і відкрийте сторінку Special:CreateAccount: вкажіть ім’я користувача й пароль або адресу електронної пошти для тимчасового пароля. Потім на сторінці Special:UserRights можна дати користувачеві права групи, як-от адміністратора.

**Чи можна встановити розширення MediaWiki?**

Так. Розширення, що постачаються з MediaWiki, уже ввімкнено. Інше копіюють у каталог extensions контейнера й завантажують через wfLoadExtension у LocalSettings.php; зміна образу замінює цей каталог, тож тримайте додані розширення в окремому томі.

**Скільки пам’яті й диска потрібно MediaWiki?**

MediaWiki має скромні вимоги: близько 200 MB пам’яті, а його база даних SQLite росте з історією кожної сторінки; завантажені файли займають стільки, скільки вони важать. На Pethost йому вистачить тарифу Starter, і поруч залишиться місце для інших застосунків.

## MediaWiki: файл Docker Compose

Шаблон — це цей compose.yaml і змінні, які записуються в .env проєкту під час його створення. Pethost запускає файл так, як його написано.

**Контейнери:** mediawiki (mediawiki:1.46).

**Томи, у щонічному бекапі:** 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)[Відкрити на GitHub](https://github.com/pethost-dev/templates/tree/main/mediawiki)

## [Ще в категорії «Нотатки й вікі»](https://pethost.dev/uk/templates/notes/)

- [**Memos**Короткі нотатки в Markdown на приватній стрічці](https://pethost.dev/uk/templates/memos/)
- [**HedgeDoc**Нотатки в Markdown, які ви пишете разом з іншими в реальному часі](https://pethost.dev/uk/templates/hedgedoc/)
- [**Obsidian LiveSync**Сервер CouchDB, що синхронізує ваші сховища Obsidian через Self-hosted LiveSync](https://pethost.dev/uk/templates/obsidian-livesync/)
- [**BookStack**Вікі, розкладена по полицях, книгах, розділах і сторінках](https://pethost.dev/uk/templates/bookstack/)
- [**Docmost**Вікі й документація для спільної роботи: простори, редагування в реальному часі й діаграми](https://pethost.dev/uk/templates/docmost/)
- [**Etherpad**Документи, які редагують разом у реальному часі: у кожного автора свій колір, є чат, історія й плагіни](https://pethost.dev/uk/templates/etherpad/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблони](https://pethost.dev/uk/templates/)
- [Про нас](https://pethost.dev/about/)
- [Документація](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/uk/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Плагін](https://github.com/pethost-dev/plugin)
- [Умови](https://pethost.dev/terms/)
- [Конфіденційність](https://pethost.dev/privacy/)
- [Повернення коштів](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Бази даних

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

Порівняння

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/uk/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/uk/blog/coolify-cloud-vs-dokploy-cloud/)
- [Ціни Railway vs Render vs Fly.io](https://pethost.dev/uk/blog/railway-vs-render-vs-fly-io-pricing/)
- [Керований хостинг Docker Compose](https://pethost.dev/uk/blog/managed-docker-compose-hosting/)

Альтернативи

- [Альтернативи Railway](https://pethost.dev/uk/blog/railway-alternatives/)
- [Альтернативи Heroku](https://pethost.dev/uk/blog/heroku-alternatives/)
- [Альтернативи Dokploy](https://pethost.dev/uk/blog/dokploy-alternatives/)
- [Альтернативи Coolify](https://pethost.dev/uk/blog/coolify-alternatives/)
- [Альтернативи Render](https://pethost.dev/uk/blog/render-alternatives/)
- [Альтернативи Sliplane](https://pethost.dev/uk/blog/sliplane-alternatives/)
