SSD Nodes Learn 🎉 VPS od $5.50/mies.
Przewodniki Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-08-13

Oprogramowanie forum na własny serwer: porównanie

Porównanie Discourse, Flarum, NodeBB oraz phpBB pod kątem wymagań RAM, obciążenia bazy danych i skuteczności walki ze spamem. Sprawdź, jak wybrać silnik forum na VPS.

Jakie oprogramowanie forum wybrać do samodzielnego hostowania?

Wybór oprogramowania forum do samodzielnego hostowania na VPS (virtual private server) sprowadza się obecnie do czterech rozwiązań: Discourse, Flarum, NodeBB oraz phpBB. Discourse jest domyślnym wyborem, jeśli można przydzielić mu 4 GB pamięci RAM i zapewnić co najmniej dwie osoby do moderacji. Przy 1 GB RAM i jednym moderatorze lepiej wybrać Flarum lub phpBB. Ciche forum, które można utrzymać w porządku, jest lepsze niż bardziej rozbudowane forum, którego nie da się moderować.

Instalacja jest najprostszą częścią procesu. Każde z tych rozwiązań można uruchomić w jedno popołudnie. O tym, czy forum będzie istnieć za rok, decyduje kolejka zgłoszeń (flag queue) oraz konfiguracja poczty (mail path), dlatego przed zapoznaniem się z listą funkcji należy przeczytać sekcje dotyczące moderacji i obsługi poczty elektronicznej.

Czego faktycznie wymaga działanie forum?

Forum składa się z czterech ruchomych elementów, a nie jednego: procesu aplikacji, bazy danych, która musi przetrwać dłużej niż sama aplikacja, katalogu przesłanych awatarów i załączników oraz działającej ścieżki do wysyłki poczty. Aplikację można wymienić. Bazy danych nie, ponieważ każdy post, każde konto i każda prywatna wiadomość znajdują się wewnątrz niej. Dlatego baza danych wybrana przez dany projekt jest najważniejszym punktem w poniższych sekcjach. Decyduje ona o tym, jak będzie wyglądał eksport danych w dniu, w którym zdecydujesz się na migrację.

Drugim kosztem jest czynnik ludzki. Publiczna rejestracja połączona z możliwością publicznego publikowania postów oznacza rejestracje botów, zazwyczaj w ciągu pierwszego tygodnia od pojawienia się domeny w wynikach indeksowania. Wszystkie cztery elementy można zabezpieczyć. Tylko jeden z nich zawiera mechanizm obsługi przepływu pracy w rdzeniu systemu.

Discourse: ustawienia domyślne i rzeczywiste koszty

Discourse to aplikacja Ruby on Rails, wykorzystująca PostgreSQL do przechowywania danych, Redis do obsługi pamięci podręcznej i kolejek zadań oraz Sidekiq do przetwarzania zadań w tle. Wspierana metoda instalacji umieszcza wszystkie te elementy wewnątrz jednego kontenera Docker, budowanego na podstawie pliku konfiguracyjnego /var/discourse/containers/app.yml. Poszczególne komponenty nie są instalowane samodzielnie.

wget -qO- https://raw.githubusercontent.com/discourse/discourse_docker/main/install-discourse | sudo bash

Skrypt instalacyjny pobiera git oraz Docker, jeśli nie są obecne, klonuje discourse_docker do /var/discourse, a następnie przekazuje sterowanie do interaktywnego kreatora discourse-setup. Kreator pyta o nazwę hosta, adres e-mail administratora oraz dane SMTP (simple mail transfer protocol), tworzy plik app.yml i buduje kontener. Porty 80 oraz 443 muszą być wolne, ponieważ kontener uruchamia własny serwer nginx i automatycznie występuje o certyfikat Let’s Encrypt.

Publikowane wymagania minimalne to 1 GB pamięci RAM z uwzględnieniem swap, oraz 10 GB miejsca na dysku. Część dotyczącą swap należy traktować dosłownie. Skrypt instalacyjny tworzy plik wymiany o rozmiarze 2 GB za pomocą fallocate -l 2G /swapfile, jeśli kreator uzna, że serwer go potrzebuje; swap ten nie jest opcjonalny. Szczytowe zapotrzebowanie na pamięć nie występuje podczas zwykłej pracy serwisu. Jest to proces ./launcher rebuild app, który przy każdej aktualizacji rekompiluje zasoby JavaScript i CSS wewnątrz kontenera. Na serwerze z 1 GB RAM bez swap proces ten zostaje przerwany, przebudowa kończy się bez czytelnego błędu na ekranie, a dmesg | tail wyświetla linię Out of memory: Killed process. Należy zaplanować 2 GB RAM dla stabilnej pracy i 4 GB, gdy forum stanie się aktywne.

Aktualizacje przeprowadza się z poziomu /admin/upgrade w przeglądarce lub za pomocą powłoki:

cd /var/discourse
./launcher rebuild app

Polecenie rebuild usuwa działający kontener, tworzy nowy na podstawie app.yml i uruchamia go, co powoduje niedostępność serwisu przez kilka minut. W przypadku pojedynczego kontenera nie da się tego uniknąć. Podział na dwa kontenery przy użyciu przykładów data.yml oraz web_only.yml pozwala utrzymać bazę PostgreSQL w stanie aktywnym podczas przebudowy kontenera webowego, co staje się zasadne, gdy użytkownicy zaczynają odczuwać przestoje.

Moderacja to obszar, w którym Discourse w pełni wykorzystuje zasoby RAM. Nowe konta zaczynają od poziomu zaufania 0 z restrykcyjnymi limitami liczby linków i częstotliwości publikacji, a następnie awansują w miarę czytania i uczestnictwa. Zgłoszenia trafiają do kolejki recenzji, która rejestruje, kto podjął działania. Integracje z Akismet i StopForumSpam są oficjalnymi wtyczkami. W innych systemach funkcje te wymagają samodzielnego doboru dodatków.

Migracja do Discourse jest jego najmocniejszą stroną. Katalog script/import_scripts/ w drzewie źródeł zawiera ponad sześćdziesiąt importerów, w tym dla phpbb3.rb, vbulletin.rb, xenforo.rb, vanilla.rb, mybb.rb, flarum_import.rb, katalog nodebb oraz importer mbox dla archiwów list mailingowych. Są to skrypty Ruby uruchamiane wewnątrz kontenera na kopii starej bazy danych. Proces ten jest powolny, ale utrzymywany w aktualności.

Migracja z Discourse jest słabym punktem. Polecenie ./launcher enter app, a następnie discourse backup, tworzy plik .tar.gz zawierający zrzut bazy PostgreSQL oraz katalog z przesłanymi plikami. Inna instancja Discourse potrafi przywrócić taką kopię. Żaden inny system nie odczyta tego formatu, więc rezygnacja z Discourse oznacza konieczność samodzielnego wyciągnięcia danych SQL ze zrzutu. Należy upewnić się, że jest to akceptowalne, przed zaimportowaniem 50 000 postów.

Flarum: lekkie forum PHP

Flarum to standardowa aplikacja PHP: php-fpm działający za nginx lub Apache, baza danych MySQL lub MariaDB oraz pliki na dysku. Udokumentowane wymagania to PHP 7.3 lub nowsze z rozszerzeniami curl, dom, fileinfo, gd, json, mbstring, openssl, pdo_mysql, tokenizer i zip, a także MySQL 5.6+ (lub 8.0.23+) albo MariaDB 10.0.5+. Ubuntu 24.04 dostarcza PHP 8.3, co spełnia te wymagania.

Zwróć uwagę na pdo_mysql w tej liście. Flarum nie obsługuje PostgreSQL ani SQLite. Jeśli wymagana jest baza danych w jednym pliku, należy wybrać phpBB opisane poniżej.

sudo apt update
sudo apt install -y nginx mariadb-server composer php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
sudo install -d -m 755 /srv/flarum
cd /srv/flarum
sudo COMPOSER_ALLOW_SUPERUSER=1 composer create-project flarum/flarum:^1.8.0 .
sudo chown -R www-data:www-data /srv/flarum

Skieruj serwer WWW na /srv/flarum/public, a nie na /srv/flarum. Kod aplikacji, plik konfiguracyjny oraz hasło do bazy danych znajdują się jeden katalog powyżej public, więc zbyt wysoki poziom document root udostępnia dane uwierzytelniające każdemu użytkownikowi. W przypadku Apache wymagane są również mod_rewrite oraz AllowOverride All, aby dostarczony plik .htaccess zaczął działać. W nginx należy dołączyć dostarczony plik .nginx.conf wewnątrz bloku server. Następnie przejdź do domeny, gdzie instalator Flarum poprosi o dane bazy danych oraz konto administratora.

Wersje na sierpień 2026: 1.8.17 to aktualne stabilne wydanie, opublikowane w czerwcu 2026, a 2.0 znajduje się w fazie release candidate 5. Nie należy rozpoczynać nowej społeczności na wersji release candidate. Po wydaniu 2.0 rozszerzenia będą wymagały aktualizacji przed załadowaniem, co wiąże się z czasochłonną migracją.

Zapotrzebowanie na zasoby jest niewielkie. Kilka procesów php-fpm, MariaDB wymagająca kilkuset MB pamięci oraz pliki statyczne. Młoda społeczność mieści się w 1 GB RAM.

Moderacja jest słabym punktem. Rdzeń systemu oferuje zgłoszenia oraz uprawnienia dla grup. Kolejki zatwierdzania i blokowanie spamu pochodzą z rozszerzeń, głównie z kolekcji FriendsOfFlarum, instalowanych za pomocą composer require i aktywowanych w panelu administratora. To rozwiązanie działa obecnie. Użytkownik polega na mniejszym ekosystemie wolontariuszy niż w przypadku phpBB czy Discourse, a nieutrzymywane rozszerzenie może zablokować aktualizację rdzenia, ponieważ composer odmówi rozwiązania zależności dla nowej wersji.

Eksport danych jest prosty: wykonaj mysqldump bazy danych i skopiuj katalog assets. Import danych jest trudniejszy. Discourse dostarcza flarum_import.rb dla kierunku Flarum do Discourse, co wskazuje, w którą stronę zazwyczaj migrują użytkownicy. Import z phpBB do Flarum realizowany jest przez rozszerzenia społeczności, a nie oficjalne narzędzia, dlatego należy przetestować proces na kopii danych przed wykonaniem go na jedynej dostępnej instancji.

NodeBB: publikowanie w czasie rzeczywistym i związane z tym koszty

NodeBB bazuje na Node.js. Przesyła nowe posty do otwartych przeglądarek za pośrednictwem websockets, dzięki czemu aktywny wątek aktualizuje się bez odświeżania strony. To główny powód wyboru tego oprogramowania. Plik README wymaga Node.js 22 lub nowszego oraz MongoDB 5+ lub Redis 7.2+. Sterownik PostgreSQL jest dostępny w drzewie źródeł jako trzecia opcja.

Redis jako główna baza danych to pułapka w tym opisie. Redis przechowuje zbiór danych w pamięci RAM, więc zapotrzebowanie na pamięć rośnie wraz z rozmiarem forum, zamiast pozostać na stałym poziomie. MongoDB lub PostgreSQL przechowują dane na dysku i buforują tylko najczęściej używane elementy. Wybierz Redis tylko wtedy, gdy potrafisz uzasadnić taką decyzję.

Ubuntu 24.04 dostarcza Node.js 18, co jest wersją poniżej wymaganego minimum, dlatego najpierw należy zainstalować aktualne środowisko uruchomieniowe.

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs git build-essential
sudo adduser --system --group --home /srv/nodebb nodebb
sudo -u nodebb git clone -b v4.x https://github.com/NodeBB/NodeBB.git /srv/nodebb
cd /srv/nodebb
sudo -u nodebb ./nodebb setup

./nodebb setup jest interaktywny. Pyta o wybór bazy danych i sposób połączenia z nią, a następnie tworzy konto administratora i wybiera port, którego domyślna wartość to 4567. NodeBB nie uruchamia się za pomocą npm start. Skrypt ./nodebb stanowi interfejs, a ./nodebb log jest miejscem, do którego trafiają dane wyjściowe.

./nodebb start uruchamia proces w tle (daemonize), co jest niewłaściwe dla maszyny, która podlega restartom. Uruchom loader pod kontrolą systemd w trybie pierwszoplanowym.

[Unit]
Description=NodeBB
After=network.target

[Service]
Type=simple
User=nodebb
WorkingDirectory=/srv/nodebb
ExecStart=/usr/bin/env node loader.js --no-daemon
Restart=on-failure

[Install]
WantedBy=multi-user.target

--no-daemon to element, który jest często pomijany. Bez niego loader tworzy proces potomny (fork), a proces nadrzędny kończy działanie. W rezultacie systemctl status nodebb zgłasza jednostkę jako nieaktywną, podczas gdy curl localhost:4567 nadal odpowiada, a systemctl stop nodebb nie zatrzymuje procesu. W przypadku pracy za reverse proxy, nagłówki aktualizacji websocket muszą być przekazywane. Jeśli w bloku nginx brakuje proxy_set_header Upgrade $http_upgrade; oraz proxy_set_header Connection "upgrade";, forum załaduje się, konsola przeglądarki zapełni się błędami żądań socket.io, a nowe posty przestaną się pojawiać do momentu odświeżenia strony przez użytkownika.

Moderacja plasuje się pomiędzy Flarum a Discourse. W panelu administratora dostępna jest kolejka zgłoszeń, uprawnienia przypisane do kategorii oraz system reputacji. Ochrona przed spamem realizowana jest przez wtyczki społecznościowe, takie jak nodebb-plugin-spam-be-gone, która integruje Akismet oraz StopForumSpam.

Kopie zapasowe wykonuje się ręcznie i nikt o nich nie wspomina, dopóki nie staną się niezbędne. Interfejs CLI ./nodebb nie posiada polecenia tworzenia kopii zapasowej. Bazę danych należy zrzucać samodzielnie za pomocą mongodump lub pg_dump, a następnie skopiować katalog public/uploads oraz plik config.json znajdujący się obok. config.json przechowuje dane uwierzytelniające bazy danych oraz adres URL witryny, więc przywrócenie danych bez tego pliku skutkuje jedynie nową instalacją. Nie istnieje również oficjalne narzędzie do importu. nodebb-plugin-import to projekt społecznościowy, który nie jest aktualizowany na bieżąco, natomiast Discourse dostarcza importer dla NodeBB, więc jedyna pewna droga migracji prowadzi do Discourse.

phpBB: rozwiązanie niewielkie, przewidywalne i wciąż sprawne

phpBB to oprogramowanie o długim stażu rynkowym i właśnie to stanowi jego główny atut. Linia 3.3 działa w środowisku PHP od wersji 7.2.0 do 8.3 włącznie i obsługuje bazy danych MySQL 4.1.3+, MariaDB 5.1+, PostgreSQL 8.3+, SQLite 3.6.15+, MS SQL Server oraz Oracle. Wymaga rozszerzeń json, mbstring, wsparcia dla XML oraz włączonej funkcji getimagesize().

SQLite jest powodem, dla którego to rozwiązanie znalazło się w tym zestawieniu. W przypadku SQLite forum stanowi katalog plików PHP oraz jeden plik bazy danych. Nie ma potrzeby uruchamiania serwera bazy danych, optymalizacji parametrów ani dodatkowych procedur kopii zapasowych. Na serwerze VPS o pojemności 1 GB, który obsługuje już inne usługi, różnica ta jest odczuwalna. SQLite należy stosować w małych społecznościach, a w momencie wzrostu liczby jednoczesnych wpisów warto przejść na MySQL, ponieważ SQLite szereguje operacje zapisu, co powoduje kolejkowanie postów.

Proces instalacji nie wymaga użycia composer ani kontenerów. Wystarczy zainstalować serwer WWW z PHP, rozpakować archiwum i uruchomić instalator w przeglądarce. Pełna konfiguracja stosu została opisana w standardowym stosie LAMP na Ubuntu 24.04.

sudo apt update
sudo apt install -y apache2 php libapache2-mod-php php-mysql php-mbstring php-xml php-gd unzip

Pobierz aktualne wydanie 3.3 ze strony phpbb.com, rozpakuj je w katalogu obsługiwanym przez vhost, a następnie nadaj uprawnienia do zapisu dla użytkownika serwera WWW w ścieżkach, do których instalator musi mieć dostęp.

sudo chown -R www-data:www-data /srv/phpbb
sudo chmod 660 /srv/phpbb/config.php
sudo chmod -R 770 /srv/phpbb/store /srv/phpbb/cache /srv/phpbb/files /srv/phpbb/images/avatars/upload

Oficjalna dokumentacja zaleca uprawnienia 666 i 777. Wartości te wynikają z ograniczeń hostingu współdzielonego, gdzie administrator nie ma kontroli nad użytkownikiem, na którym działa PHP. Na własnym serwerze VPS kontrola ta istnieje, dlatego należy nadać własność użytkownikowi www-data i ograniczyć dostęp dla pozostałych. W przypadku Apache należy pamiętać o jednym szczególe: konfiguracja Ubuntu domyślnie zezwala na dostęp tylko wewnątrz głównego katalogu dokumentów, więc vhost wskazujący na /srv/phpbb wymaga również odpowiedniego bloku <Directory> z dyrektywą Require all granted, w przeciwnym razie każde żądanie zwróci błąd 403 Forbidden, zanim phpBB zdąży je przetworzyć. Zakończ instalację w przeglądarce pod adresem /install/index.php, następnie przywróć uprawnienia config.php do 640 i usuń katalog install/. phpBB będzie wyświetlać ostrzeżenie o tym katalogu, dopóki nie zostanie on usunięty.

Spam jest znanym problemem phpBB, ale można go wyeliminować. Formularz rejestracji znajduje się pod przewidywalnym adresem URL (ucp.php?mode=register), więc boty trafiają tam w ciągu kilku dni od zaindeksowania domeny. Skutecznym rozwiązaniem dostępnym w panelu administratora w sekcji „Zabezpieczenia antyspamowe” jest ustawienie metody antyspamowej na „Pytanie i odpowiedź” oraz zdefiniowanie pytania, na które odpowiedź zna tylko członek danej społeczności. Obrazkowe testy CAPTCHA są tanio rozwiązywane przez serwisy oferujące usługi za tysiące rozwiązań. Pytanie dotyczące tematyki forum jest znacznie trudniejsze do obejścia.

phpBB oferuje również najlepiej wspieraną ścieżkę migracji. Skrypt phpbb3.rb dla Discourse jest najczęściej używanym importerem w całym tym artykule, a na forach wsparcia phpBB dostępna jest baza wiedzy budowana przez dwadzieścia lat. Eksport danych jest możliwy poprzez mysqldump lub skopiowanie pliku SQLite. Elementami, których nie można przenieść, są style oraz rozszerzenia.

Dlaczego wiadomości e-mail z rejestracji na forum nie docierają?

Rejestracja we wszystkich czterech przypadkach wymaga potwierdzenia przez e-mail. Jeśli wiadomość nie dotrze, konto nie zostanie aktywowane, a w dziennikach widoczny będzie proces rejestracji, który został przerwany. Skuteczność dostarczania poczty wychodzącej decyduje o tym, czy forum w ogóle działa, dlatego należy traktować ją jako element instalacji.

  • Wychodzący port 25 jest domyślnie blokowany przez większość dostawców VPS, więc lokalny Postfix próbujący dostarczyć pocztę bezpośrednio nie nawiąże połączenia. Dziennik poczty wykaże connect to gmail-smtp-in.l.google.com[...]:25: Connection timed out.
  • Nowy adres IP nie posiada reputacji nadawcy, więc nawet jeśli dostarczenie się powiedzie, wiadomość trafi do folderu spam. W przypadku linku aktywacyjnego jest to równoznaczne z niedostarczeniem wiadomości.
  • Bez opublikowanych w DNS rekordów SPF (sender policy framework) oraz DKIM (domainkeys identified mail), duzi dostawcy odrzucają wiadomość automatycznie. Odrzucenie przez Google wyświetla komunikat 550 5.7.26 Unauthenticated email from example.com is not accepted due to domain's DMARC policy. DMARC (domain-based message authentication, reporting and conformance) jest obecnie wymagany od każdego, kto wysyła wiadomości w większej skali.

Praktycznym rozwiązaniem jest użycie przekaźnika (relay). Skieruj ustawienia SMTP forum na dostawcę poczty transakcyjnej przez port 587, opublikuj rekordy SPF, DKIM i DMARC dostarczone przez tego operatora i wysyłaj wiadomości z subdomeny, takiej jak mail.example.com, aby reputacja forum pozostała oddzielona od poczty osobistej. Samodzielne utrzymywanie serwera pocztowego jest możliwe, a pełna konfiguracja własnego serwera pocztowego na VPS opisuje ten proces, jednak tydzień uruchamiania forum nie jest odpowiednim momentem na naukę zagadnień związanych z dostarczalnością.

Przeprowadź testy przed ogłoszeniem startu forum. W przypadku Discourse, z wnętrza kontenera:

cd /var/discourse
./launcher enter app
rake emails:test[you@example.com]

To zadanie sprawdza połączenie SMTP i wysyła wiadomość, a w przypadku błędnych danych uwierzytelniających wskazuje przyczynę, zazwyczaj jako Net::SMTPAuthenticationError. phpBB posiada odpowiedni test w panelu administratora w sekcji komunikacji z klientem. Dla Flarum i NodeBB zarejestruj tymczasowe konto w skrzynce u dużego dostawcy i sprawdź surowe nagłówki otrzymanej wiadomości. spf=pass oraz dkim=pass w nagłówku Authentication-Results to wynik, którego należy oczekiwać.

Ważny szczegół dotyczący Discourse: od sierpnia 2026 kreator konfiguracji pozwala pominąć SMTP i skorzystać z Discourse ID, który loguje użytkowników za pomocą zewnętrznego konta zamiast linku wysyłanego e-mailem. Pozwala to na uruchomienie forum bez przekaźnika. Nie zapewnia to jednak powiadomień e-mail ani resetowania haseł, dlatego skonfiguruj SMTP przed rozrostem społeczności.

Jak umieścić forum za TLS?

Flarum i phpBB to standardowe hosty wirtualne, więc wystarczy certbot na serwerze WWW, który już działa. NodeBB i Discourse działają inaczej: są to aplikacje nasłuchujące na lokalnych portach, dlatego wymagają komponentu pośredniczącego, który zakończy połączenie TLS (transport layer security) i przekieruje ruch na podstawie nazwy hosta. Jeśli forum współdzieli serwer z innymi usługami, należy umieścić przed nimi jeden reverse proxy, co opisano w Traefik przed wieloma aplikacjami Docker Compose.

Discourse domyślnie przejmuje porty 80 oraz 443, korzystając z własnego Nginx oraz szablonu Let’s Encrypt. Aby umieścić go za istniejącym proxy, należy edytować app.yml, usunąć linię templates/web.letsencrypt.ssl.template.yml, zmienić wystawione porty tak, aby kontener nasłuchiwał wyłącznie na adresie lokalnym, a następnie wykonać ./launcher rebuild app. Wykonanie tych czynności po fakcie wymaga przebudowania kontenera i wiąże się z kilkuminutową przerwą w działaniu, dlatego decyzję warto podjąć przed instalacją, a nie po niej.

Które forum jest odpowiednie dla wielkości Twojej społeczności?

Zasada wyboru opiera się na liczbie użytkowników, a nie na funkcjach.

  • Poniżej kilkuset członków, jeden moderator, 1 GB pamięci RAM: phpBB z SQLite lub Flarum, jeśli oczekujesz nowoczesnego interfejsu i możesz uruchomić MariaDB. Każde z nich to pojedyncza aplikacja PHP wymagająca aktualizacji zabezpieczeń.
  • Rozwijająca się społeczność, dwóch lub więcej moderatorów, 4 GB pamięci RAM: Discourse. Poziomy zaufania i kolejka moderacji są warte zużycia zasobów w momencie, gdy moderacja przestaje mieścić się w głowie jednej osoby.
  • Oczekujesz rozmów na żywo bardziej niż trwałych wątków: NodeBB lub zaakceptuj fakt, że jest to czat i uruchom zamiast tego Rocket.Chat on Docker Compose. Forum, na którym po tygodniu nic nie jest warte przeczytania, powinno być serwerem czatu.
  • W rzeczywistości potrzebujesz dokumentacji, a nie dyskusji: żadne z powyższych. BookStack, Wiki.js or Outline odpowiadają na to pytanie lepiej, a forum pełne powtarzających się pytań to zazwyczaj brakująca wiki.
  • Nadal ustalasz, co w ogóle powinno znaleźć się na serwerze: the wider self-hosting shortlist for 2026 jest lepszym punktem wyjścia, a the self-hosted Notion alternatives guide obejmuje obszary wspólne dla forów i współdzielonych przestrzeni roboczych.

Niezależnie od wyboru, trwałość forum zależy wyłącznie od ostatniej przywróconej kopii zapasowej. Wykonuj zrzut bazy danych zgodnie z harmonogramem, kopiuj katalog z przesłanymi plikami w ramach tego samego zadania i przywróć wynik w innym miejscu, aby sprawdzić, czy zrzut jest użyteczny. Scheduled restic backups on a VPS opisuje ten proces i jest to jedyny element tej konfiguracji, który nie daje drugiej szansy.

FAQ

Jakie są minimalne wymagania serwerowe dla samodzielnie hostowanego forum?

phpBB z SQLite działa na 1 GB pamięci RAM obok innych usług, ponieważ nie wymaga serwera bazy danych. Flarum wymaga 1 GB oraz MariaDB. NodeBB stabilnie pracuje na 2 GB z MongoDB. Discourse podaje 1 GB ze swapem i 10 GB miejsca na dysku jako minimum, jednak 2 GB to uczciwa wartość bazowa, a 4 GB są zalecane dla aktywnego forum. Wynika to z faktu, że ./launcher rebuild app rekompiluje zasoby w pamięci przy każdej aktualizacji, co jest momentem, w którym mały serwer jest wyłączany przez mechanizm OOM (Out of Memory) jądra systemu.

Czy mogę przenieść forum phpBB na Discourse?

Tak, jest to najlepiej wspierana ścieżka migracji. Discourse zawiera script/import_scripts/phpbb3.rb, który uruchamia się wewnątrz kontenera na kopii bazy danych phpBB, nigdy na działającej instancji. Przenoszeni są użytkownicy, kategorie, wątki, posty oraz załączniki. Style i rozszerzenia nie są przenoszone, a stare adresy URL wątków ulegają zmianie, dlatego przed zmianą rekordów DNS należy zaplanować przekierowania ze ścieżek phpBB. Duże fora wymagają godzin pracy, dlatego warto przeprowadzić próbną migrację na serwerze testowym i zmierzyć czas jej trwania.

Dlaczego nowi użytkownicy nie otrzymują wiadomości aktywacyjnej?

Większość dostawców VPS blokuje wychodzący port 25, przez co lokalny serwer pocztowy nie może dostarczyć wiadomości, a logi wskazują Connection timed out w odniesieniu do serwera pocztowego odbiorcy. Gdy dostarczanie działa, nowy adres IP bez rekordów SPF lub DKIM jest odrzucany lub filtrowany, a Google zwraca 550 5.7.26 Unauthenticated email ... is not accepted due to domain's DMARC policy. Należy wysyłać pocztę przez przekaźnik (relay) na porcie 587 i opublikować rekordy SPF, DKIM oraz DMARC dostarczone przez operatora przekaźnika, a następnie potwierdzić konfigurację rejestracją testową i sprawdzić nagłówek Authentication-Results otrzymanej wiadomości.

Które oprogramowanie forum wymaga najmniej pracy przy moderacji?

Discourse, ponieważ mechanizmy moderacji są wbudowane w rdzeń systemu, a nie dodawane zewnętrznie. Nowe konta mają ograniczenia szybkości (rate limiting), dopóki nie przeczytają wystarczającej liczby treści, zgłoszenia trafiają do kolejki rejestrującej działania moderatorów, a wtyczka Akismet jest oficjalnie wspierana. phpBB zbliża się do tego poziomu po włączeniu metody antyspamowej typu pytanie-odpowiedź (Question and Answer), która samodzielnie blokuje większość rejestracji botów. Flarum i NodeBB polegają w tym zakresie na rozszerzeniach społecznościowych. Żaden z tych czynników nie zmienia podstawowej zasady: nakład pracy przy moderacji rośnie wraz z liczbą użytkowników, a nie zależy od wybranego oprogramowania.