Jak stworzyć własne Wiki na serwerze – kompletny przewodnik krok po kroku

Zastanawiałeś się kiedyś, jak wygląda praca zespołu, który ma cały swój know-how zapisany w jednym, uporządkowanym miejscu? Nie w plikach rozsianych po dyskach, nie w setkach wiadomości na czacie, a w jednej, przeszukiwalnej bazie wiedzy? To właśnie robi własna Wiki. I dobra wiadomość – postawienie jej na własnym serwerze jest dziś prostsze, niż mogłoby się wydawać. W tym artykule przejdziemy przez cały proces: od wyboru odpowiedniego oprogramowania, przez instalację, po zabezpieczenie i optymalizację Twojej Wiki pod kątem wygody użytkowania i widoczności w sieci.

Nie musisz być programistą, żeby to zrobić. Wystarczy odrobina cierpliwości, dostęp do serwera (VPS, dedyk albo po prostu zwykły hosting) i chęć nauczenia się kilku nowych rzeczy. Zaczynamy.

Czym właściwie jest Wiki i dlaczego warto ją mieć?

Wiki to strona internetowa, którą można edytować bezpośrednio z przeglądarki, bez znajomości kodu HTML. Najsłynniejszym przykładem jest oczywiście Wikipedia, ale zasada działania jest identyczna niezależnie od skali – czy to globalna encyklopedia, czy wewnętrzna baza wiedzy małej firmy.

Własna Wiki przydaje się w wielu sytuacjach:

  • jako wewnętrzna dokumentacja firmowa – procedury, instrukcje, onboarding nowych pracowników,
  • jako baza wiedzy dla klientów – FAQ, poradniki, dokumentacja techniczna produktu,
  • jako notatnik projektu open source – dokumentacja API, changelog, instrukcje instalacji,
  • jako prywatna encyklopedia hobbystyczna – świat gry, którą tworzysz, drzewo genealogiczne rodziny, notatki z podróży.

Zaletą własnego serwera jest to, że masz pełną kontrolę nad danymi. Nikt nie zablokuje Ci konta, nie zmieni regulaminu z dnia na dzień i nie umieści reklam tam, gdzie tego nie chcesz. To Ty jesteś administratorem.

Jakie oprogramowanie Wiki wybrać?

Na rynku jest kilka sprawdzonych silników Wiki. Wybór zależy od Twoich potrzeb technicznych i tego, jak dużą społeczność planujesz obsłużyć.

MediaWiki – to ten sam silnik, na którym działa Wikipedia. Jest potężny, elastyczny i ma ogromną bibliotekę rozszerzeń. Wymaga bazy danych MySQL/MariaDB i PHP. To dobry wybór, jeśli planujesz duży, rozwijający się projekt.

DokuWiki – prostszy niż MediaWiki, nie wymaga bazy danych (dane trzyma w plikach tekstowych), dzięki czemu łatwiej go backupować i przenosić. Świetny do mniejszych projektów i wewnętrznych dokumentacji.

Wiki.js – nowoczesny silnik napisany w Node.js, z ładnym, responsywnym interfejsem od razu po instalacji. Obsługuje Markdown, ma wbudowaną kontrolę wersji przez Git.

BookStack – choć technicznie to bardziej platforma do dokumentacji niż klasyczna Wiki, warto go wspomnieć, bo ma bardzo przyjazny interfejs i strukturę książek/rozdziałów/stron.

W tym poradniku skupimy się głównie na MediaWiki, bo to najbardziej uniwersalne i najczęściej wybierane rozwiązanie, ale pokażę Ci też alternatywną, szybszą metodę instalacji przez Dockera, którą możesz zastosować do praktycznie każdego z wymienionych silników.

Czego potrzebujesz, żeby zacząć?

Zanim przejdziemy do instalacji, sprawdź, czy masz:

  1. Serwer – może to być VPS (np. od dostawcy chmurowego), serwer dedykowany albo nawet Raspberry Pi w domu. Do niewielkiej Wiki wystarczy 1 GB RAM i 1 vCPU.
  2. System operacyjny – w przykładach użyję Ubuntu Server (22.04 lub 24.04), bo jest najpopularniejszy i ma najwięcej dokumentacji w sieci.
  3. Dostęp SSH do serwera z uprawnieniami roota lub sudo.
  4. Domenę (opcjonalnie, ale zalecane) – wpisanie adresu IP w przeglądarce działa, ale domena wygląda dużo bardziej profesjonalnie i jest niezbędna, jeśli chcesz później postawić SSL.

Jeśli tego wszystkiego masz pod ręką, możemy zaczynać.

Krok 1: Aktualizacja systemu i instalacja podstawowych pakietów

Po zalogowaniu się do serwera przez SSH, zacznij od aktualizacji systemu:

sudo apt update && sudo apt upgrade -y

Następnie zainstaluj serwer WWW (Apache), bazę danych (MariaDB) oraz PHP wraz z niezbędnymi rozszerzeniami:

sudo apt install apache2 mariadb-server php php-mysql php-xml php-mbstring php-intl \
php-gd php-curl php-json php-cli libapache2-mod-php -y

Sprawdź, czy Apache działa:

sudo systemctl status apache2

Jeśli wszystko jest w porządku, powinieneś zobaczyć status „active (running)”.

Krok 2: Konfiguracja bazy danych

Uruchom skrypt zabezpieczający MariaDB:

sudo mysql_secure_installation

Odpowiedz na pytania (ustaw hasło administratora, usuń przykładowe bazy, zablokuj zdalne logowanie roota). Następnie zaloguj się do konsoli MySQL i utwórz bazę danych oraz użytkownika dedykowanego dla Wiki:

sudo mysql -u root -p

W konsoli MySQL wpisz:

CREATE DATABASE wikidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'TwojeSilneHaslo123!';
GRANT ALL PRIVILEGES ON wikidb.* TO 'wikiuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Pamiętaj, żeby zamienić TwojeSilneHaslo123! na naprawdę silne, unikalne hasło. To jest kluczowy element bezpieczeństwa całej instalacji.

Krok 3: Pobranie i instalacja MediaWiki

Przejdź do katalogu tymczasowego i pobierz najnowszą stabilną wersję MediaWiki:

cd /tmp
wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.1.tar.gz
tar -xvzf mediawiki-1.41.1.tar.gz
sudo mv mediawiki-1.41.1 /var/www/html/wiki

Ustaw właściwe uprawnienia, żeby serwer WWW mógł zapisywać pliki konfiguracyjne i pliki użytkowników:

sudo chown -R www-data:www-data /var/www/html/wiki
sudo chmod -R 755 /var/www/html/wiki

Krok 4: Konfiguracja Apache

Utwórz nowy plik konfiguracyjny wirtualnego hosta:

sudo nano /etc/apache2/sites-available/wiki.conf

Wklej poniższą konfigurację (zamień twojadomena.pl na własną domenę):

<VirtualHost *:80>
    ServerName twojadomena.pl
    DocumentRoot /var/www/html/wiki

    <Directory /var/www/html/wiki>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/wiki_error.log
    CustomLog ${APACHE_LOG_DIR}/wiki_access.log combined
</VirtualHost>

Zapisz plik i aktywuj konfigurację:

sudo a2ensite wiki.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

Krok 5: Instalacja przez przeglądarkę

Teraz najprzyjemniejsza część – wejdź w przeglądarce na adres swojej domeny (lub IP serwera). Powinien pojawić się kreator instalacji MediaWiki. Wystarczy przejść przez kilka ekranów:

  1. Wybierz język interfejsu.
  2. System sprawdzi, czy środowisko spełnia wymagania – jeśli czegoś brakuje, dostaniesz konkretną informację, co doinstalować.
  3. Podaj dane bazy danych, które utworzyliśmy wcześniej: nazwa bazy wikidb, użytkownik wikiuser, hasło, które ustawiłeś.
  4. Nazwij swoją Wiki i utwórz konto administratora.
  5. Wybierz licencję treści oraz podstawowe rozszerzenia (na start warto zaznaczyć te domyślnie proponowane).

Na końcu kreator wygeneruje plik LocalSettings.php. Pobierz go i wgraj przez SFTP/SCP do katalogu głównego Wiki na serwerze:

scp LocalSettings.php uzytkownik@twojserwer:/var/www/html/wiki/

Odśwież stronę – Twoja Wiki jest już gotowa do działania!

Alternatywa: instalacja przez Docker

Jeśli nie chcesz ręcznie konfigurować Apache i MySQL, Docker znacząco skróci Ci pracę. Wystarczy jeden plik docker-compose.yml:

version: "3.8"

services:
  database:
    image: mariadb:11
    restart: always
    environment:
      MYSQL_DATABASE: wikidb
      MYSQL_USER: wikiuser
      MYSQL_PASSWORD: TwojeSilneHaslo123!
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
    volumes:
      - db_data:/var/lib/mysql

  mediawiki:
    image: mediawiki:1.41
    restart: always
    ports:
      - "8080:80"
    depends_on:
      - database
    volumes:
      - wiki_images:/var/www/html/images
      - ./LocalSettings.php:/var/www/html/LocalSettings.php

volumes:
  db_data:
  wiki_images:

Wystarczy uruchomić polecenie:

docker compose up -d

Po chwili Wiki będzie dostępna pod adresem http://adres-serwera:8080, a kreator instalacji poprowadzi Cię przez konfigurację analogicznie jak w opisie powyżej. Zaletą tego podejścia jest łatwość aktualizacji (wystarczy zmienić numer wersji obrazu) i prostota migracji na inny serwer – wystarczy przenieść wolumeny.

Krok 6: Zabezpieczenie Wiki – certyfikat SSL

Wiki bez szyfrowanego połączenia to zaproszenie do kłopotów, zwłaszcza jeśli logują się do niej użytkownicy. Najprostszym sposobem na darmowy certyfikat SSL jest Certbot:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d twojadomena.pl

Certbot automatycznie skonfiguruje Apache do obsługi HTTPS i ustawi automatyczne odnawianie certyfikatu. Od teraz Twoja Wiki będzie dostępna pod https://.

Krok 7: Ograniczenie edycji i rejestracji

Domyślnie MediaWiki pozwala każdemu edytować strony i tworzyć nowe konta. To spoko rozwiązanie dla otwartego projektu społecznościowego, ale fatalne dla wewnętrznej dokumentacji firmowej – szybko możesz stać się celem spamerów i botów.

Aby ograniczyć uprawnienia, dodaj do pliku LocalSettings.php poniższe linie:

// Wymagaj zalogowania do edycji
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = true;

// Wyłącz samodzielną rejestrację kont
$wgGroupPermissions['*']['createaccount'] = false;

// Wymagaj zalogowania nawet do odczytu (opcjonalnie, dla ściśle prywatnej wiki)
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['user']['read'] = true;

Po zapisaniu pliku zrestartuj Apache:

sudo systemctl restart apache2

Nowych użytkowników możesz dodawać ręcznie ze specjalnej strony Special:UserLogin/signup, będąc zalogowanym jako administrator, albo poprzez wiersz poleceń za pomocą skryptu maintenance/createAndPromote.php, który jest dołączony do instalacji MediaWiki.

Krok 8: Personalizacja – wygląd i rozszerzenia

Domyślny wygląd MediaWiki jest funkcjonalny, ale mało efektowny. Warto zainstalować popularną skórkę Vector (często już wbudowaną) lub bardziej nowoczesną, np. Citizen czy Chameleon. Skórki wgrywa się do katalogu skins/ i aktywuje w LocalSettings.php:

wfLoadSkin( 'Citizen' );
$wgDefaultSkin = 'citizen';

Warto też rozważyć kilka przydatnych rozszerzeń:

  • VisualEditor – edycja stron jak w edytorze WYSIWYG, bez znajomości znaczników wiki,
  • CategoryTree – wygodna nawigacja po kategoriach,
  • SyntaxHighlight_GeSHi – kolorowanie kodu w artykułach technicznych,
  • Cite – profesjonalne przypisy i bibliografia.

Rozszerzenia instaluje się analogicznie – pobieramy pliki do katalogu extensions/ i dodajemy linię wfLoadExtension('NazwaRozszerzenia'); w konfiguracji.

Optymalizacja SEO Twojej Wiki

Jeśli Twoja Wiki ma być widoczna publicznie (na przykład jako baza wiedzy dla klientów), warto zadbać o kilka elementów, które pomogą jej dobrze pozycjonować się w wyszukiwarkach.

Czyste adresy URL. Domyślnie MediaWiki generuje adresy typu index.php?title=Nazwa_strony. Znacznie lepiej dla SEO są krótkie, czytelne linki w stylu /wiki/Nazwa_strony. Aby to uzyskać, dodaj w LocalSettings.php:

$wgScriptPath = "/wiki";
$wgArticlePath = "$wgScriptPath/$1";
$wgUsePathInfo = true;

I dodaj przepisywanie adresów w konfiguracji Apache (w bloku VirtualHost):

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/wiki/index.php
RewriteCond %{REQUEST_URI} !^/wiki/(skins|extensions|images)
RewriteRule ^/wiki/(.*)$ /wiki/index.php/$1 [L]

Mapa strony (sitemap). MediaWiki ma wbudowany skrypt maintenance/generateSitemap.php, który generuje plik sitemap.xml. Możesz go uruchamiać cyklicznie przez zadanie cron:

0 3 * * * php /var/www/html/wiki/maintenance/generateSitemap.php --fspath=/var/www/html/wiki/sitemaps --urlpath=https://twojadomena.pl/sitemaps

Wygenerowaną mapę zgłoś w Google Search Console.

Meta opisy i tytuły. Zainstaluj rozszerzenie WikiSEO – pozwala ono ustawiać niestandardowe meta description i title dla poszczególnych stron, korzystając z prostego szablonu wewnątrz treści artykułu.

Szybkość działania. Google bierze pod uwagę szybkość wczytywania strony. Włącz cache po stronie MediaWiki:

$wgMainCacheType = CACHE_ACCEL;
$wgCacheDirectory = "$IP/cache";

Rozważ też instalację Redis lub Memcached jako backendu cache dla większych instalacji.

Linkowanie wewnętrzne. To jedna z największych naturalnych zalet Wiki – każda strona łatwo linkuje do innej za pomocą prostego zapisu [[Nazwa strony]]. Wykorzystuj to konsekwentnie, tworząc gęstą sieć powiązanych artykułów – wyszukiwarki to uwielbiają.

Backup – nie zapomnij o tym!

Nawet najlepiej zabezpieczona Wiki jest bezużyteczna, jeśli stracisz dane w wyniku awarii dysku czy błędu administratora. Backup powinien obejmować dwie rzeczy: bazę danych oraz katalog z obrazkami/plikami.

Prosty skrypt bash do automatycznego backupu, który możesz uruchamiać przez cron:

#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/backup/wiki"
mkdir -p $BACKUP_DIR

# Backup bazy danych
mysqldump -u wikiuser -p'TwojeSilneHaslo123!' wikidb > $BACKUP_DIR/wikidb_$DATE.sql

# Backup plików (katalog images i LocalSettings.php)
tar -czf $BACKUP_DIR/wiki_files_$DATE.tar.gz /var/www/html/wiki/images /var/www/html/wiki/LocalSettings.php

# Usuwanie backupów starszych niż 30 dni
find $BACKUP_DIR -type f -mtime +30 -delete

Zapisz skrypt jako backup_wiki.sh, ustaw uprawnienia wykonywania (chmod +x backup_wiki.sh) i dodaj do crontab, żeby uruchamiał się np. codziennie w nocy:

0 2 * * * /home/uzytkownik/backup_wiki.sh

Warto też przechowywać kopię backupów poza serwerem – na innym dysku, w chmurze albo na zewnętrznym storage typu S3.

Aktualizacje – klucz do bezpieczeństwa

MediaWiki, jak każde oprogramowanie, regularnie dostaje aktualizacje bezpieczeństwa. Zaniedbana, stara wersja to jeden z najczęstszych wektorów ataku na strony internetowe. Sprawdzaj regularnie stronę projektu i przeprowadzaj aktualizacje zgodnie z oficjalnym przewodnikiem migracji – zazwyczaj polega to na pobraniu nowej wersji, skopiowaniu pliku LocalSettings.php oraz katalogu images, a następnie uruchomieniu skryptu php maintenance/update.php, który zaktualizuje strukturę bazy danych.

Jeśli korzystasz z Dockera, aktualizacja jest jeszcze prostsza – wystarczy zmienić numer wersji obrazu w docker-compose.yml i wykonać docker compose up -d ponownie.

Podsumowanie

Postawienie własnej Wiki na serwerze to zadanie, które na pierwszy rzut oka wydaje się skomplikowane, ale w praktyce – rozbite na etapy – jest w pełni wykonalne nawet dla osoby bez doświadczenia w administracji serwerami. Przeszliśmy razem przez cały proces: od instalacji systemu i bazy danych, przez konfigurację MediaWiki (tradycyjnie lub przez Dockera), zabezpieczenie certyfikatem SSL i ograniczenie uprawnień, aż po personalizację wyglądu, optymalizację pod SEO oraz automatyczne backupy.

Największą wartością własnej Wiki jest to, że rośnie razem z Twoim projektem i pozostaje w 100% pod Twoją kontrolą. Nie musisz obawiać się zmian w regulaminie zewnętrznej platformy, limitów przestrzeni czy nieoczekiwanego zablokowania konta. Masz pełną własność swoich danych i swobodę w dostosowywaniu funkcji do swoich potrzeb.