SSD Nodes Learn 🎉 VPS dari $5.50/bln
Panduan Matt ConnorOleh Matt Connor · Dikemas kini 2026-08-13

Perbandingan Perisian Forum Self-Hosted Terbaik

Ketahui keperluan RAM sebenar, beban pangkalan data, dan sistem anti-spam bagi Discourse, Flarum, NodeBB, serta phpBB. Dapatkan panduan migrasi forum VPS yang tepat.

Perisian forum yang manakah patut anda jalankan?

Perisian forum yang dihoskan sendiri kini mempunyai empat pilihan utama yang boleh anda jalankan pada VPS (virtual private server): Discourse, Flarum, NodeBB dan phpBB. Discourse ialah pilihan lalai yang tepat jika anda boleh memperuntukkan 4 GB RAM dan mempunyai sekurang-kurangnya dua orang yang sanggup menjadi moderator. Dengan 1 GB RAM dan seorang moderator, jalankan Flarum atau phpBB sebaliknya. Forum yang sunyi tetapi boleh diselenggara dengan baik adalah lebih baik daripada forum yang lebih canggih tetapi tidak mampu dikawal.

Pemasangan adalah bahagian yang mudah. Setiap satu daripada perisian ini boleh disiapkan dalam masa satu petang. Perkara yang menentukan sama ada forum tersebut masih wujud dalam tempoh setahun adalah baris gilir bendera (flag queue) dan laluan e-mel, jadi baca bahagian moderasi dan e-mel sebelum anda membaca senarai ciri.

Apakah keperluan sebenar untuk menjalankan forum?

Forum terdiri daripada empat komponen yang bergerak, bukan satu: proses aplikasi, pangkalan data yang mesti bertahan lebih lama daripada aplikasi tersebut, direktori untuk avatar dan lampiran yang dimuat naik, serta laluan berfungsi untuk menghantar e-mel. Aplikasi boleh diganti. Pangkalan data tidak boleh diganti, kerana setiap hantaran, setiap akaun, dan setiap mesej peribadi tersimpan di dalamnya. Itulah sebabnya pangkalan data yang dipilih oleh setiap projek merupakan baris paling penting dalam bahagian di bawah. Ia menentukan rupa bentuk eksport data anda pada hari anda ingin berpindah.

Kos kedua ialah tenaga manusia. Pendaftaran awam berserta hantaran awam bermakna pendaftaran bot, biasanya dalam minggu pertama domain muncul dalam carian. Kesemua empat komponen ini boleh dikunci. Hanya satu daripadanya yang menyertakan aliran kerja dalam teras.

Discourse: tetapan lalai dan kos sebenar

Discourse dibina menggunakan Ruby on Rails, dengan PostgreSQL untuk data, Redis untuk cache dan baris gilir tugas, serta Sidekiq untuk menjalankan kerja latar belakang. Pemasangan yang disokong meletakkan semua komponen tersebut di dalam satu bekas Docker, yang dibina daripada fail konfigurasi di /var/discourse/containers/app.yml. Anda tidak perlu memasang komponen tersebut secara manual.

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

Skrip tersebut memasang git dan Docker jika ia tiada, mengklon discourse_docker ke dalam /var/discourse, kemudian menyerahkan proses kepada wizard interaktif discourse-setup. Wizard tersebut meminta nama hos, alamat e-mel pentadbir dan butiran SMTP (simple mail transfer protocol) anda, menulis app.yml, serta membina bekas tersebut. Port 80 dan 443 mestilah bebas, kerana bekas tersebut menjalankan nginx sendiri dan meminta sijil Let’s Encrypt untuk anda.

Keperluan minimum yang diterbitkan ialah 1 GB RAM dengan swap, serta 10 GB ruang cakera. Ambil bahagian swap itu secara literal. Skrip persediaan mencipta fail swap 2 GB dengan fallocate -l 2G /swapfile apabila wizard menentukan pelayan memerlukannya, dan swap itu bukan sekadar hiasan. Puncak penggunaan memori bukanlah semasa tapak sedang berjalan. Ia adalah ./launcher rebuild app, yang menyusun semula aset JavaScript dan CSS di dalam bekas pada setiap naik taraf. Pada pelayan 1 GB tanpa swap, langkah itu akan ditamatkan di tengah jalan, proses bina semula berakhir tanpa ralat yang jelas pada skrin, dan dmesg | tail menunjukkan baris Out of memory: Killed process. Peruntukkan 2 GB untuk menjalankannya dengan stabil, dan 4 GB sebaik sahaja forum anda menjadi sibuk.

Naik taraf dijalankan daripada /admin/upgrade dalam pelayar, atau daripada shell:

cd /var/discourse
./launcher rebuild app

rebuild memusnahkan bekas yang sedang berjalan, melakukan bootstrap bekas baharu daripada app.yml, dan memulakannya, jadi tapak akan tergendala selama beberapa minit sepanjang proses tersebut. Tiada cara untuk mengelakkan perkara ini pada satu bekas tunggal. Memisahkan kepada dua bekas menggunakan sampel data.yml dan web_only.yml mengekalkan PostgreSQL tetap berjalan semasa bekas web dibina semula, yang menjadi berbaloi untuk dilakukan sebaik sahaja anda mempunyai pengguna yang peka terhadap gangguan.

Moderasi adalah sebab Discourse memerlukan banyak RAM. Akaun baharu bermula pada tahap kepercayaan 0 dengan had ketat mengenai berapa banyak pautan yang boleh disiarkan dan kelajuannya, kemudian meningkat apabila mereka membaca dan menyertai perbincangan. Bendera (flags) akan masuk ke dalam baris gilir semakan yang merekodkan siapa yang mengendalikan apa. Integrasi Akismet dan StopForumSpam adalah pemalam rasmi. Bagi tiga yang lain, anda perlu memasangnya daripada alat tambah.

Penghijrahan ke dalam Discourse adalah ciri terkuatnya. Direktori script/import_scripts/ dalam pepohon sumber mengandungi lebih daripada enam puluh pengimport, termasuk phpbb3.rb, vbulletin.rb, xenforo.rb, vanilla.rb, mybb.rb, flarum_import.rb, direktori nodebb dan pengimport mbox untuk arkib senarai mel. Ia adalah skrip Ruby yang anda jalankan di dalam bekas terhadap salinan pangkalan data lama. Prosesnya perlahan, namun ia diselenggara dengan baik.

Penghijrahan keluar adalah bahagian yang lemah. ./launcher enter app diikuti oleh discourse backup akan menulis .tar.gz yang mengandungi dump PostgreSQL serta direktori muat naik. Discourse lain boleh memulihkannya. Tiada perisian lain yang boleh membacanya, jadi meninggalkan Discourse bermakna anda perlu menulis SQL terhadap dump tersebut sendiri. Pastikan anda boleh menerima keadaan ini sebelum anda mengimport 50,000 hantaran.

Flarum: forum PHP yang ringan

Flarum ialah aplikasi PHP biasa: php-fpm di sebalik nginx atau Apache, pangkalan data MySQL atau MariaDB, dan fail pada cakera. Keperluan yang didokumenkan ialah PHP 7.3 atau lebih baharu dengan sambungan curl, dom, fileinfo, gd, json, mbstring, openssl, pdo_mysql, tokenizer dan zip, serta MySQL 5.6+ (atau 8.0.23+) atau MariaDB 10.0.5+. Ubuntu 24.04 membekalkan PHP 8.3, yang melebihi tahap minimum tersebut.

Perhatikan pdo_mysql dalam senarai itu. Flarum tidak menyokong PostgreSQL dan tidak menyokong SQLite. Jika anda mahukan pangkalan data fail tunggal, rujuk phpBB di bawah.

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

Halakan pelayan web ke /srv/flarum/public, bukan ke /srv/flarum. Kod aplikasi, fail konfigurasi dan kata laluan pangkalan data semuanya terletak satu direktori di atas public, jadi document root yang diletakkan satu tahap terlalu tinggi akan mendedahkan kelayakan anda kepada sesiapa sahaja yang memintanya. Pada Apache, anda juga memerlukan mod_rewrite dan AllowOverride All supaya .htaccess yang dibekalkan berkuat kuasa. Pada nginx, anda perlu menyertakan .nginx.conf yang dibekalkan di dalam blok server anda. Kemudian, layari domain tersebut, dan pemasang Flarum akan meminta maklumat pangkalan data serta akaun pentadbir.

Versi, setakat Ogos 2026: 1.8.17 ialah keluaran stabil semasa, diterbitkan pada Jun 2026, dan 2.0 berada pada release candidate 5. Jangan mulakan komuniti baharu menggunakan release candidate. Apabila 2.0 tiba, sambungan perlu dikemas kini sebelum ia boleh dimuatkan, dan itu merupakan naik taraf yang akan memakan masa hujung minggu anda.

Jejak memorinya kecil. Beberapa pekerja php-fpm, MariaDB yang memerlukan beberapa ratus MB, dan fail statik. Komuniti yang baharu boleh dimuatkan dalam 1 GB.

Moderasi adalah kelemahan yang nyata. Terasnya memberikan anda laporan dan kebenaran mengikut kumpulan. Baris gilir kelulusan dan penyekatan spam datang daripada sambungan, kebanyakannya koleksi FriendsOfFlarum, yang dipasang dengan composer require dan diaktifkan dalam panel pentadbir. Itu berfungsi pada hari ini. Anda meletakkan kepercayaan pada ekosistem sukarelawan yang lebih kecil berbanding phpBB atau Discourse, dan sambungan yang tidak diselenggara akan menyekat naik taraf teras anda yang seterusnya, kerana composer enggan menyelesaikannya dengan versi baharu.

Mengeluarkan data adalah mudah: mysqldump pangkalan data dan salin direktori assets. Memasukkan data adalah lebih sukar. Discourse membekalkan flarum_import.rb untuk arah Flarum ke Discourse, yang memberitahu anda ke arah mana trafik biasanya mengalir. Mengimport phpBB ke dalam Flarum dilakukan oleh sambungan komuniti dan bukannya pihak pertama, jadi uji sambungan tersebut pada salinan data sebelum anda mempercayainya dengan satu-satunya salinan yang anda miliki.

NodeBB: penyiaran masa nyata, dan kos yang perlu dibayar

NodeBB dibina berasaskan Node.js. Ia menolak hantaran baharu ke pelayar yang terbuka melalui websocket, jadi thread yang aktif akan dikemas kini tanpa perlu dimuat semula. Itulah sebab utama untuk memilihnya. README meminta Node.js 22 atau lebih baharu dan sama ada MongoDB 5+ atau Redis 7.2+, manakala pemacu PostgreSQL disertakan dalam source tree sebagai pilihan ketiga.

Redis sebagai pangkalan data utama adalah perangkap dalam ayat tersebut. Redis menyimpan set data dalam memori, jadi keperluan RAM anda meningkat seiring dengan pertumbuhan forum dan tidak kekal statik. MongoDB atau PostgreSQL menyimpannya pada cakera dan menyimpan data yang kerap diakses dalam cache. Pilih Redis hanya jika anda mempunyai alasan yang kukuh.

Ubuntu 24.04 menyediakan pakej Node.js 18, yang berada di bawah keperluan minimum, jadi pasang runtime semasa terlebih dahulu.

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 bersifat interaktif. Ia akan bertanya pangkalan data mana yang hendak digunakan dan cara untuk mencapainya, kemudian mencipta akaun pentadbir dan memilih port, yang secara lalai ditetapkan kepada 4567. NodeBB tidak bermula dengan npm start. Skrip ./nodebb ialah antara muka, dan ./nodebb log ialah tempat output dihantar.

./nodebb start melakukan daemonisasi, yang tidak sesuai untuk mesin yang perlu but semula. Sebaliknya, jalankan loader di bawah systemd dalam mod foreground.

[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 adalah bahagian yang sering terlepas pandang. Tanpanya, loader akan melakukan fork dan proses induk akan tamat, menyebabkan systemctl status nodebb melaporkan unit sebagai mati sedangkan curl localhost:4567 masih menjawab, dan systemctl stop nodebb kemudiannya tidak menghentikan apa-apa. Di sebalik reverse proxy, header naik taraf websocket perlu dilalui. Jika proxy_set_header Upgrade $http_upgrade; dan proxy_set_header Connection "upgrade"; tiada dalam blok nginx, forum akan dimuatkan, konsol pelayar akan dipenuhi dengan permintaan socket.io yang gagal, dan hantaran baharu tidak akan muncul sehingga pembaca memuat semula halaman.

Moderasi terletak di antara Flarum dan Discourse. Terdapat barisan bendera (flag queue) dalam panel pentadbir, keistimewaan mengikut kategori, dan sistem reputasi. Anti-spam diperoleh daripada pemalam komuniti seperti nodebb-plugin-spam-be-gone, yang menghubungkan Akismet dan StopForumSpam.

Sandaran dilakukan secara manual, dan tiada siapa yang menyebutnya sehingga hari anda memerlukannya. CLI ./nodebb tidak mempunyai arahan sandaran. Anda perlu melakukan dump pangkalan data sendiri dengan mongodump atau pg_dump, dan anda perlu menyalin direktori public/uploads serta config.json di sampingnya. config.json menyimpan kelayakan pangkalan data dan URL tapak, jadi pemulihan tanpa fail ini hanyalah pemasangan baharu. Tiada pengimport pihak pertama juga. nodebb-plugin-import ialah projek komuniti yang tidak lagi dikemas kini, manakala Discourse menyediakan pengimport NodeBB, jadi pintu keluar yang benar-benar berfungsi adalah menuju ke Discourse.

phpBB: pilihan ringkas dan stabil yang masih berfungsi

phpBB sudah lama wujud, dan itulah kelebihannya. Siri 3.3 berjalan pada PHP 7.2.0 sehingga PHP 8.3, serta menyokong MySQL 4.1.3+, MariaDB 5.1+, PostgreSQL 8.3+, SQLite 3.6.15+, MS SQL Server dan Oracle. Ia memerlukan sokongan json, mbstring, XML dan fungsi getimagesize() diaktifkan.

SQLite adalah sebab ia dimasukkan dalam senarai ini. Dengan SQLite, forum ini hanyalah direktori fail PHP berserta satu fail pangkalan data. Tiada pelayan pangkalan data, tiada tetapan perlu dilaraskan, dan tiada komponen tambahan untuk disandarkan. Pada VPS 1 GB yang sudah menjalankan servis lain, perbezaan ini sangat ketara. Gunakan SQLite untuk komuniti kecil dan beralih ke MySQL apabila aktiviti hantaran serentak meningkat, kerana SQLite mensiri (serialize) penulisan dan hantaran akan mula beratur antara satu sama lain.

Tiada langkah composer atau container diperlukan. Pasang pelayan web dengan PHP, ekstrak arkib, dan jalankan pemasang melalui pelayar. Persediaan stack penuh diterangkan dalam stack LAMP standard pada Ubuntu 24.04.

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

Muat turun keluaran 3.3 terkini daripada phpbb.com, ekstrak ke dalam direktori yang dihidangkan oleh vhost anda, kemudian jadikan laluan yang ditulis oleh pemasang boleh ditulis oleh pengguna pelayan web.

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

Arahan rasmi menyatakan keizinan 666 dan 777. Nombor tersebut wujud untuk hosting kongsi, di mana anda tidak mengawal pengguna yang menjalankan PHP. Pada VPS sendiri, anda mempunyai kawalan tersebut, jadi berikan pemilikan kepada www-data dan sekat akses pengguna lain. Satu perincian Apache sering memerangkap pengguna: konfigurasi Ubuntu hanya membenarkan akses di bawah root dokumen lalainya, jadi vhost yang menghala ke /srv/phpbb juga memerlukan blok <Directory> yang sepadan dengan Require all granted, jika tidak, setiap permintaan akan memulangkan ralat 403 Forbidden sebelum phpBB sempat dicapai. Selesaikan proses dalam pelayar di /install/index.php, kemudian tetapkan config.php kembali kepada 640 dan padam direktori install/. phpBB akan terus memberi amaran mengenai direktori tersebut sehingga ia dipadamkan.

Spam merupakan masalah yang diketahui pada phpBB, dan ia boleh diatasi. Borang pendaftaran berada pada URL yang boleh diramal (ucp.php?mode=register), jadi bot akan menemuinya beberapa hari selepas domain diindeks. Penyelesaian yang berkesan terdapat dalam panel admin di bawah Spambot countermeasures: tetapkan kaedah anti-spam kepada Question and Answer, dan tulis soalan yang hanya boleh dijawab oleh ahli komuniti anda. CAPTCHA imej (ujian Turing awam automatik sepenuhnya) diselesaikan dengan murah oleh servis yang mengenakan caj mengikut ribuan permintaan. Soalan mengenai topik komuniti anda sendiri tidak boleh diselesaikan dengan cara itu.

phpBB juga merupakan sumber yang paling disokong untuk migrasi. phpbb3.rb milik Discourse adalah pengimport yang paling kerap digunakan dalam artikel ini, dan jawapan bagi masalah selama dua puluh tahun wujud di forum sokongan phpBB. Proses keluar adalah melalui mysqldump, atau dengan menyalin fail SQLite. Apa yang tidak akan dipindahkan adalah gaya (styles) dan sambungan (extensions) anda.

Mengapa e-mel pendaftaran forum tidak sampai?

Pendaftaran pada keempat-empat platform ini memerlukan e-mel pengesahan. Jika e-mel tersebut tidak sampai, akaun tidak akan diaktifkan, dan log anda hanya akan menunjukkan pendaftaran yang terhenti begitu sahaja. Kebolehpenghantaran keluar (outbound deliverability) menentukan sama ada forum tersebut berfungsi atau tidak, jadi anggap ia sebagai sebahagian daripada proses pemasangan.

  • Port keluar 25 disekat oleh kebanyakan penyedia VPS secara lalai, jadi Postfix tempatan yang cuba menghantar terus tidak akan ke mana-mana. Log mel akan menunjukkan connect to gmail-smtp-in.l.google.com[...]:25: Connection timed out.
  • Alamat IP yang baharu tiada reputasi penghantaran, jadi walaupun penghantaran berjaya, ia akan masuk ke folder spam. Bagi pautan pengesahan, ini sama seperti tidak sampai.
  • Tanpa rekod SPF (sender policy framework) dan DKIM (domainkeys identified mail) yang diterbitkan dalam DNS, penyedia besar akan menolak mesej tersebut secara terus. Penolakan oleh Google akan memaparkan 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) kini dijangkakan daripada sesiapa sahaja yang menghantar e-mel dalam jumlah yang banyak.

Jawapan praktikalnya ialah menggunakan relay. Halakan tetapan SMTP forum kepada penyedia mel transaksional pada port 587, terbitkan rekod SPF, DKIM dan DMARC yang diberikan oleh penyedia tersebut, dan hantar daripada subdomain seperti mail.example.com supaya reputasi forum kekal terasing daripada mel peribadi anda. Menjalankan pelayan mel sendiri adalah mungkin, dan pelayan mel layan diri sepenuhnya pada VPS merangkumi perkara ini, tetapi pelancaran forum bukanlah masa yang sesuai untuk mempelajari tentang kebolehpenghantaran.

Uji sebelum anda mengumumkan forum tersebut. Pada Discourse, dari dalam kontena:

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

Tugas tersebut menyemak sambungan SMTP dan menghantar mesej, serta menyatakan kegagalan jika kelayakan salah, biasanya sebagai Net::SMTPAuthenticationError. phpBB mempunyai ujian setara dalam panel admin di bawah Client communication. Bagi Flarum dan NodeBB, daftar akaun sementara menggunakan peti mel sebenar di penyedia besar dan baca header mentah bagi e-mel yang sampai. spf=pass dan dkim=pass dalam header Authentication-Results adalah hasil yang anda cari.

Satu nuansa untuk Discourse. Bermula Ogos 2026, wizard persediaan membolehkan anda melangkau SMTP dan menggunakan Discourse ID, yang mendaftarkan pengguna masuk dengan akaun luaran dan bukannya pautan e-mel. Ini membolehkan anda melancarkan forum tanpa relay. Ia tidak memberikan e-mel pemberitahuan atau tetapan semula kata laluan, jadi konfigurasikan SMTP juga sebelum komuniti berkembang.

Bagaimanakah cara meletakkan forum di sebalik TLS?

Flarum dan phpBB merupakan virtual host biasa, jadi certbot pada pelayan web yang anda jalankan sudah memadai. NodeBB dan Discourse adalah berbeza: ia merupakan aplikasi yang mendengar pada port tempatan, dan sesuatu di hadapan perlu melakukan TLS (transport layer security) termination serta menghala trafik mengikut hostname. Jika forum berkongsi pelayan dengan servis lain, letakkan satu reverse proxy di hadapan kesemuanya, iaitu tujuan bagi Traefik di hadapan berbilang aplikasi Docker Compose.

Discourse secara lalai menguasai port 80 dan 443 sendiri, menggunakan nginx miliknya serta templat Let's Encrypt sendiri. Untuk meletakkannya di sebalik proksi sedia ada, anda perlu menyunting app.yml, membuang baris templates/web.letsencrypt.ssl.template.yml, menukar port yang didedahkan supaya kontena hanya mendengar pada alamat tempatan, kemudian jalankan ./launcher rebuild app. Melakukan perkara ini selepas pemasangan memerlukan pembinaan semula (rebuild) dan menyebabkan beberapa minit waktu henti, jadi buat keputusan sebelum anda memasang dan bukannya selepas.

Forum manakah yang sesuai dengan saiz komuniti anda?

Peraturan penentuan ini adalah berdasarkan bilangan orang, bukan ciri-ciri perisian.

  • Di bawah beberapa ratus ahli, seorang moderator, 1 GB RAM: phpBB menggunakan SQLite, atau Flarum jika anda mahukan antara muka moden dan boleh menjalankan MariaDB. Setiap satunya merupakan aplikasi PHP tunggal yang perlu dikemaskini.
  • Komuniti yang sedang berkembang, dua atau lebih moderator, 4 GB RAM: Discourse. Tahap kepercayaan (trust levels) dan baris gilir semakan (review queue) sangat berbaloi dengan penggunaan sumber apabila tugas moderasi tidak lagi mampu dikendalikan oleh seorang individu.
  • Anda lebih mengutamakan perbualan langsung berbanding bebenang (threads) yang tahan lama: NodeBB, atau terima hakikat bahawa ia adalah sembang dan jalankan Rocket.Chat menggunakan Docker Compose sebagai gantinya. Forum yang tiada kandungan berbaloi untuk dibaca selepas seminggu sepatutnya menjadi pelayan sembang.
  • Apa yang anda perlukan sebenarnya ialah dokumentasi dan bukannya perbincangan: tiada satu pun daripada pilihan ini. BookStack, Wiki.js atau Outline menjawab persoalan itu dengan lebih baik, dan forum yang penuh dengan soalan berulang biasanya menandakan ketiadaan wiki.
  • Masih memikirkan apa yang patut diletakkan pada pelayan: senarai pendek self-hosting yang lebih luas untuk 2026 adalah titik permulaan yang lebih baik, dan panduan alternatif Notion yang dihoskan sendiri merangkumi pertindihan antara forum dan ruang kerja berkongsi.

Walau apa pun pilihan anda, ketahanan forum hanya setakat sandaran (backup) terakhir yang dipulihkan. Lakukan dump pangkalan data mengikut jadual, salin direktori muat naik dalam tugasan yang sama, dan pulihkan hasilnya di tempat lain sekali untuk membuktikan bahawa fail dump tersebut boleh digunakan. Sandaran restic berjadual pada VPS merangkumi bahagian tersebut, dan ia merupakan satu-satunya komponen dalam persediaan ini yang tidak mempunyai peluang kedua.

FAQ

Apakah keperluan pelayan minimum untuk forum yang dihoskan sendiri?

phpBB dengan SQLite boleh berjalan pada 1 GB RAM di samping servis lain, kerana tiada pelayan pangkalan data diperlukan. Flarum memerlukan 1 GB berserta MariaDB. NodeBB selesa dengan 2 GB RAM menggunakan MongoDB. Discourse menetapkan 1 GB dengan swap dan 10 GB cakera sebagai minimum, namun 2 GB adalah had sebenar yang disyorkan, manakala 4 GB lebih sesuai untuk forum yang sibuk. Hal ini kerana ./launcher rebuild app menyusun semula aset dalam memori pada setiap naik taraf, dan itulah saat di mana pelayan kecil akan dimatikan oleh pengendali memori kernel (OOM killer).

Bolehkah saya memindahkan forum phpBB saya ke Discourse?

Ya, dan ini merupakan laluan migrasi yang paling disokong di sini. Discourse menyediakan script/import_scripts/phpbb3.rb, yang anda jalankan di dalam kontena terhadap salinan pangkalan data phpBB, bukan terhadap pangkalan data yang sedang aktif. Pengguna, kategori, topik, hantaran dan lampiran akan dipindahkan. Gaya dan sambungan (extensions) tidak akan dipindahkan, dan URL topik lama akan berubah, jadi rancang pengalihan (redirects) daripada laluan phpBB sebelum anda menukar DNS. Forum yang besar mengambil masa berjam-jam, jadi lakukan latihan import sekali pada pelayan percubaan untuk menganggarkan masa yang diperlukan.

Mengapa pengguna baharu tidak menerima e-mel pengaktifan?

Kebanyakan penyedia VPS menyekat port 25 keluar, jadi pelayan e-mel tempatan tidak dapat menghantar e-mel sama sekali dan log akan menunjukkan Connection timed out terhadap penukar mel penerima. Apabila penghantaran berjaya, IP baharu yang tiada rekod SPF atau DKIM akan ditolak atau ditapis, dan Google akan membalas dengan 550 5.7.26 Unauthenticated email ... is not accepted due to domain's DMARC policy. Hantar melalui relay pada port 587 dan terbitkan rekod SPF, DKIM dan DMARC yang diberikan oleh relay tersebut, kemudian sahkan dengan pendaftaran ujian dan baca pengepala Authentication-Results pada mesej yang anda terima.

Perisian forum yang dihoskan sendiri manakah yang memerlukan kerja moderasi paling sedikit?

Discourse, kerana aliran kerja moderasi terbina dalam teras dan bukan ditambah kemudian. Akaun baharu dihadkan kadar (rate limited) sehingga mereka membaca kandungan yang mencukupi, tanda (flags) dikumpulkan dalam baris gilir yang merekodkan siapa yang mengambil tindakan, dan pemalam Akismet adalah rasmi. phpBB hampir setanding apabila anda mendayakan kaedah anti-spam Soalan dan Jawapan, yang mampu menyekat kebanyakan pendaftaran bot. Flarum dan NodeBB bergantung pada sambungan komuniti untuk tugas yang sama. Tiada satu pun daripada ini mengubah faktor sebenar: beban moderasi meningkat mengikut jumlah orang yang menghantar kandungan, bukan berdasarkan perisian yang digunakan.