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

[← Все шаблоны](https://pethost.dev/ru/templates/) · [Заметки и вики](https://pethost.dev/ru/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 поддерживает для небольших и средних вики. Вики устанавливается еще до того, как начнет кому-либо отвечать, с названием, именем пользователя и паролем, которые вы указали; читать ее может любой, править — только вошедшие пользователи, а аккаунты создает администратор.

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

1. Вы входите в Pethost — с passkey, через 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/ru/templates/notes/)

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

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблоны](https://pethost.dev/ru/templates/)
- [О нас](https://pethost.dev/about/)
- [Документация](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/ru/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/ru/postgres/)

Сравнения

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

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

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