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:
- 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.
- System operacyjny – w przykładach użyję Ubuntu Server (22.04 lub 24.04), bo jest najpopularniejszy i ma najwięcej dokumentacji w sieci.
- Dostęp SSH do serwera z uprawnieniami roota lub sudo.
- 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:
- Wybierz język interfejsu.
- System sprawdzi, czy środowisko spełnia wymagania – jeśli czegoś brakuje, dostaniesz konkretną informację, co doinstalować.
- Podaj dane bazy danych, które utworzyliśmy wcześniej: nazwa bazy
wikidb, użytkownikwikiuser, hasło, które ustawiłeś. - Nazwij swoją Wiki i utwórz konto administratora.
- 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.
