சிறந்த self-hosted forum software எது? ஒப்பீடு
Discourse, Flarum, NodeBB மற்றும் phpBB ஆகியவற்றை VPS-ல் இயக்கத் தேவையான RAM, database கட்டமைப்பு, spam தடுப்பு முறைகள் மற்றும் தரவுகளை இடமாற்றம் செய்யும் வழிகளை இங்கே காணலாம்.
எந்த self-hosted forum software-ஐ நீங்கள் பயன்படுத்த வேண்டும்?
இன்று ஒரு VPS (virtual private server)-ல் இயக்கக்கூடிய self-hosted forum software-களில் நான்கு முக்கியமான தேர்வுகள் மட்டுமே உள்ளன: Discourse, Flarum, NodeBB மற்றும் phpBB. உங்களிடம் 4 GB RAM மற்றும் குறைந்தபட்சம் இரண்டு moderators இருந்தால், Discourse சிறந்த தேர்வாகும். 1 GB RAM மற்றும் ஒரு moderator மட்டுமே இருந்தால், Flarum அல்லது phpBB-ஐப் பயன்படுத்தவும். உங்களால் பராமரிக்க முடியாத ஒரு சிறந்த forum-ஐ விட, உங்களால் சுத்தமாக வைத்திருக்கக்கூடிய ஒரு சிறிய forum-மே சிறந்தது.
இவற்றை நிறுவுவது எளிதான காரியம். இவை அனைத்தையும் ஒரு மதியத்திற்குள் நிறுவிவிட முடியும். ஒரு வருடம் கழித்தும் உங்கள் forum இயங்குமா என்பதைத் தீர்மானிப்பது flag queue மற்றும் mail path ஆகியவையே. எனவே, feature பட்டியல்களைப் படிக்கும் முன் moderation மற்றும் email பகுதிகளைப் படிக்கவும்.
ஒரு forum இயங்குவதற்கு உண்மையில் என்ன தேவை?
ஒரு forum என்பது ஒரே ஒரு பகுதியல்ல, அது நான்கு நகரும் பாகங்களைக் கொண்டது: ஒரு application process, அதைவிட நீண்ட காலம் நிலைத்திருக்க வேண்டிய ஒரு database, பதிவேற்றப்பட்ட avatars மற்றும் attachments-க்கான ஒரு directory, மற்றும் மின்னஞ்சல் அனுப்ப ஒரு செயல்படும் வழி. Application-ஐ மாற்ற முடியும். ஆனால் database-ஐ மாற்ற முடியாது, ஏனெனில் ஒவ்வொரு பதிவும், ஒவ்வொரு கணக்கும் மற்றும் ஒவ்வொரு தனிப்பட்ட செய்தியும் அதற்குள் தான் இருக்கின்றன. இதனால்தான் ஒவ்வொரு திட்டமும் தேர்ந்தெடுக்கும் database, கீழே உள்ள பிரிவுகளில் மிக முக்கியமான வரியாக உள்ளது. நீங்கள் வெளியேற விரும்பும் நாளில் உங்கள் export எப்படி இருக்கும் என்பதை இதுவே தீர்மானிக்கிறது.
இரண்டாவது செலவு மனித உழைப்பு சார்ந்தது. பொதுப் பதிவு மற்றும் பொதுப் பதிவுகள் (public posting) இருந்தால், domain தேடுபொறிகளில் (crawl) தோன்றிய முதல் வாரத்திலேயே bot-கள் கணக்குகளைத் தொடங்க வாய்ப்புள்ளது. இந்த நான்கையும் கட்டுப்படுத்த (lock down) முடியும். ஆனால், அவற்றில் ஒன்று மட்டுமே core-ல் workflow-ஐ வழங்குகிறது.
Discourse: இயல்புநிலை மற்றும் அதன் உண்மையான செலவு
Discourse என்பது Ruby on Rails கட்டமைப்பில் இயங்குகிறது. தரவு சேமிப்பிற்கு PostgreSQL, cache மற்றும் job queues-க்கு Redis, மற்றும் பின்னணி வேலைகளுக்கு Sidekiq ஆகியவற்றைப் பயன்படுத்துகிறது. இதற்கான ஆதரவு பெற்ற நிறுவல் முறை, இவை அனைத்தையும் /var/discourse/containers/app.yml-ல் உள்ள config file-ஐக் கொண்டு உருவாக்கப்பட்ட ஒரே Docker container-க்குள் வைக்கிறது. நீங்கள் இந்த பாகங்களை நீங்களாகவே தனித்தனியாக நிறுவ வேண்டியதில்லை.
wget -qO- https://raw.githubusercontent.com/discourse/discourse_docker/main/install-discourse | sudo bashஅந்த script, git மற்றும் Docker விடுபட்டிருந்தால் அவற்றை நிறுவுகிறது, discourse_docker-ஐ /var/discourse-க்கு clone செய்கிறது, பின்னர் ஊடாடும் discourse-setup wizard-இடம் ஒப்படைக்கிறது. இந்த wizard உங்கள் hostname, admin email முகவரி மற்றும் SMTP (simple mail transfer protocol) விவரங்களைக் கேட்கிறது, app.yml-ஐ உருவாக்குகிறது, மற்றும் container-ஐ build செய்கிறது. 80 மற்றும் 443 ஆகிய ports காலியாக இருக்க வேண்டும், ஏனெனில் இந்த container அதன் சொந்த nginx-ஐ இயக்குவதோடு, உங்களுக்காக Let's Encrypt certificate-ஐயும் கோருகிறது.
வெளியிடப்பட்ட குறைந்தபட்சத் தேவை 1 GB RAM swap-உடன், மற்றும் 10 GB disk ஆகும். swap பகுதியை அப்படியே எடுத்துக்கொள்ளுங்கள். wizard ஒரு box-க்குத் தேவை என்று முடிவு செய்யும் போது, setup script fallocate -l 2G /swapfile மூலம் 2 GB swapfile-ஐ உருவாக்குகிறது; அந்த swap வெறும் அலங்காரத்திற்காக அல்ல. இயங்கும் தளம் மட்டும் நினைவகத்தின் உச்சம் அல்ல. ./launcher rebuild app தான் நினைவகத்தின் உச்சம், இது ஒவ்வொரு upgrade-ன் போதும் container-க்குள் உள்ள JavaScript மற்றும் CSS assets-ஐ மீண்டும் compile செய்கிறது. swap இல்லாத 1 GB box-ல், அந்தப் படி பாதியிலேயே நிறுத்தப்படும், rebuild எந்தப் பயனுள்ள பிழைச் செய்தியும் இன்றி முடிவடையும், மேலும் dmesg | tail ஒரு Out of memory: Killed process வரியைக் காட்டும். இதைச் சரியாக இயக்க 2 GB-யும், forum பரபரப்பாக இயங்கத் தொடங்கியதும் 4 GB-யும் ஒதுக்கீடு செய்யுங்கள்.
Upgrades-ஐ browser-ல் உள்ள /admin/upgrade மூலமாகவோ அல்லது shell மூலமாகவோ இயக்கலாம்:
cd /var/discourse
./launcher rebuild apprebuild இயங்கிக்கொண்டிருக்கும் container-ஐ அழித்துவிட்டு, app.yml-லிருந்து புதிய ஒன்றை bootstrap செய்து தொடங்குகிறது, எனவே அந்தச் சில நிமிடங்களுக்குத் தளம் முடங்கியிருக்கும். ஒரே container-ல் இதைத் தவிர்க்க வழியில்லை. data.yml மற்றும் web_only.yml மாதிரிகளைப் பயன்படுத்தி இரண்டு container-களாகப் பிரிப்பது, web container rebuild ஆகும் போது PostgreSQL-ஐத் தொடர்ந்து இயங்க வைக்கும்; பயனர்கள் கவனிக்கத் தொடங்கும் போது இது பயனுள்ளதாக இருக்கும்.
Moderation என்பது Discourse அதன் RAM-ஐ நியாயப்படுத்தும் இடமாகும். புதிய கணக்குகள் trust level 0-ல் தொடங்குகின்றன, அவை எத்தனை இணைப்புகளைப் பகிரலாம் மற்றும் எவ்வளவு வேகமாகப் பகிரலாம் என்பதில் கடுமையான கட்டுப்பாடுகள் உள்ளன; பின்னர் அவை வாசிப்பதன் மூலமும் பங்கேற்பதன் மூலமும் முன்னேறுகின்றன. Flags ஒரு review queue-க்குச் செல்கின்றன, அங்கு யார் எதைக் கையாண்டார்கள் என்பது பதிவு செய்யப்படுகிறது. Akismet மற்றும் StopForumSpam ஒருங்கிணைப்புகள் அதிகாரப்பூர்வ plugins ஆகும். மற்ற மூன்றிலும், நீங்கள் இதை add-on-கள் மூலம் கட்டமைக்க வேண்டும்.
Discourse-க்குள் இடம்பெயர்தல் (Migration) அதன் மிக வலுவான அம்சமாகும். source tree-ல் உள்ள script/import_scripts/ கோப்பகம் அறுபதுக்கும் மேற்பட்ட இறக்குமதியாளர்களைக் கொண்டுள்ளது, இதில் phpbb3.rb, vbulletin.rb, xenforo.rb, vanilla.rb, mybb.rb, flarum_import.rb, ஒரு nodebb கோப்பகம் மற்றும் mailing list காப்பகங்களுக்கான mbox இறக்குமதியாளர் ஆகியவை அடங்கும். இவை பழைய தரவுத்தளத்தின் நகலுக்கு எதிராக container-க்குள் நீங்கள் இயக்கும் Ruby scripts ஆகும். இவை மெதுவானவை, ஆனால் தொடர்ந்து பராமரிக்கப்படுபவை.
வெளியேறுவதற்கான இடம்பெயர்வு (Migration out) பலவீனமான பக்கமாகும். ./launcher enter app மற்றும் அதைத் தொடர்ந்து discourse backup ஆகியவை PostgreSQL dump மற்றும் uploads கோப்பகத்தைக் கொண்ட ஒரு .tar.gz-ஐ உருவாக்குகின்றன. மற்றொரு Discourse மட்டுமே அதை restore செய்ய முடியும். வேறு எதுவும் அதைப் படிக்காது, எனவே Discourse-லிருந்து வெளியேறுவது என்பது அந்த dump-க்கு எதிராக நீங்களே SQL எழுதுவதைக் குறிக்கும். 50,000 பதிவுகளை இறக்குமதி செய்வதற்கு முன்பே, இதை உங்களால் கையாள முடியுமா என்று முடிவு செய்யுங்கள்.
Flarum: இலகுவான PHP forum
Flarum என்பது ஒரு சாதாரண PHP application ஆகும்: nginx அல்லது Apache-க்கு பின்னால் இயங்கும் php-fpm, ஒரு MySQL அல்லது MariaDB database, மற்றும் disk-ல் உள்ள கோப்புகள். ஆவணப்படுத்தப்பட்ட தேவைகள்: PHP 7.3 அல்லது அதற்கு மேற்பட்ட பதிப்பு, அதனுடன் curl, dom, fileinfo, gd, json, mbstring, openssl, pdo_mysql, tokenizer மற்றும் zip extensions, மேலும் MySQL 5.6+ (அல்லது 8.0.23+) அல்லது MariaDB 10.0.5+. Ubuntu 24.04-ல் PHP 8.3 உள்ளது, இது நிர்ணயிக்கப்பட்ட குறைந்தபட்ச தேவையை விட அதிகம்.
அந்தப் பட்டியலில் உள்ள pdo_mysql-ஐ கவனிக்கவும். Flarum, PostgreSQL அல்லது SQLite-ஐ ஆதரிக்காது. உங்களுக்கு single-file database தேவைப்பட்டால், கீழே உள்ள phpBB-ஐப் பார்க்கவும்.
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/flarumWeb server-ஐ /srv/flarum-க்கு பதிலாக /srv/flarum/public-ஐ நோக்கி அமைக்கவும். Application code, config file மற்றும் database password ஆகியவை public-க்கு ஒரு directory மேலே உள்ளன. எனவே, document root-ஐ ஒரு நிலை உயர்த்தி வைத்தால், உங்கள் credentials-ஐ யார் வேண்டுமானாலும் அணுக முடியும். Apache-ல் நீங்கள் mod_rewrite மற்றும் AllowOverride All-ஐயும் பயன்படுத்த வேண்டும், அப்போதுதான் அதில் உள்ள .htaccess சரியாகச் செயல்படும். Nginx-ல், உங்கள் server block-க்குள் .nginx.conf-ஐ சேர்க்க வேண்டும். அதன் பிறகு, domain-க்குச் சென்றால், Flarum-ன் installer உங்களிடம் database மற்றும் admin account விவரங்களைக் கேட்கும்.
ஆகஸ்ட் 2026 நிலவரப்படி பதிப்புகள்: 1.8.17 தற்போதைய stable release ஆகும், இது ஜூன் 2026-ல் வெளியிடப்பட்டது. 2.0 பதிப்பு release candidate 5 நிலையில் உள்ளது. Release candidate-ல் புதிய community-ஐத் தொடங்க வேண்டாம். 2.0 வரும்போது, extensions-ஐ update செய்தால்தான் அவை இயங்கும். அந்த upgrade-க்கு நீங்கள் ஒரு வாரயிறுதியைச் செலவிட வேண்டியிருக்கும்.
இதன் footprint சிறியது. சில php-fpm workers, சில நூறு MB நினைவகத்தை எதிர்பார்க்கும் MariaDB மற்றும் static கோப்புகள் மட்டுமே தேவை. ஒரு சிறிய community-க்கு 1 GB போதுமானது.
Moderation என்பது இதன் பலவீனம். Core பகுதியில் reports மற்றும் per-group permissions மட்டுமே உள்ளன. Approval queues மற்றும் spam blocking வசதிகள் extensions மூலம் கிடைக்கின்றன. இவை பெரும்பாலும் FriendsOfFlarum தொகுப்பில் உள்ளன, இவற்றை composer require மூலம் install செய்து admin panel-ல் இயக்கலாம். இது தற்போது சரியாகச் செயல்படுகிறது. நீங்கள் phpBB அல்லது Discourse-ஐ விட சிறிய தன்னார்வலர் சூழலை நம்புகிறீர்கள். பராமரிக்கப்படாத ஒரு extension உங்கள் அடுத்த core upgrade-ஐத் தடுக்கலாம், ஏனெனில் புதிய பதிப்புடன் அதை இணைக்க composer மறுத்துவிடும்.
தரவுகளை வெளியே எடுப்பது எளிது: database-ஐ mysqldump செய்து, assets directory-ஐ நகலெடுக்கவும். தரவுகளை உள்ளே கொண்டு வருவது கடினம். Flarum-லிருந்து Discourse-க்கு மாற Discourse flarum_import.rb-ஐ வழங்குகிறது, இதுவே பொதுவாக நடக்கும் traffic திசையைக் காட்டுகிறது. phpBB-யிலிருந்து Flarum-க்கு தரவுகளை மாற்ற முதல் தரப்பு (first party) கருவிகள் இல்லை, community extensions மட்டுமே உள்ளன. எனவே, உங்கள் ஒரே ஒரு தரவு நகலை (copy) நம்பும் முன், ஒரு நகலில் அதைச் சோதித்துப் பார்க்கவும்.
NodeBB: நிகழ்நேர பதிவுகள் மற்றும் அதற்கான கூடுதல் சுமை
NodeBB என்பது Node.js-ல் இயங்குகிறது. இது websockets மூலம் புதிய பதிவுகளைத் திறந்திருக்கும் உலாவிகளுக்குத் தள்ளுகிறது (push), எனவே ஒரு active thread-ஐ refresh செய்யாமலேயே புதுப்பிக்க முடியும். இதற்காகவே இது தேர்ந்தெடுக்கப்படுகிறது. இதன் README கோப்பு Node.js 22 அல்லது அதற்குப் புதிய பதிப்பையும், MongoDB 5+ அல்லது Redis 7.2+ ஆகியவற்றில் ஏதேனும் ஒன்றையும் கோருகிறது. மேலும், மூன்றாவது விருப்பமாக PostgreSQL driver-ம் source tree-ல் வழங்கப்படுகிறது.
Redis-ஐ முதன்மைத் தரவுத்தளமாகப் பயன்படுத்துவது அந்த வாக்கியத்தில் உள்ள ஒரு பொறி. Redis தரவுகளை நினைவகத்தில் (RAM) வைத்திருக்கும், எனவே உங்கள் forum வளர வளர RAM தேவையும் அதிகரிக்கும். MongoDB அல்லது PostgreSQL தரவுகளை வட்டில் (disk) வைத்துக்கொண்டு, அடிக்கடி தேவைப்படும் தரவுகளை மட்டும் cache செய்யும். எதற்காக Redis-ஐத் தேர்ந்தெடுக்கிறீர்கள் என்று உங்களுக்குத் தெரிந்தால் மட்டுமே அதைத் தேர்வு செய்யவும்.
Ubuntu 24.04-ல் Node.js 18 மட்டுமே தொகுக்கப்பட்டுள்ளது, இது குறைந்தபட்சத் தேவையை விடக் குறைவு. எனவே, முதலில் தற்போதைய runtime-ஐ நிறுவவும்.
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 ஒரு interactive கருவி. இது எந்தத் தரவுத்தளத்தைப் பயன்படுத்த வேண்டும், அதை எப்படி அணுக வேண்டும் என்று கேட்கும். பின்னர், இது admin கணக்கை உருவாக்கி, ஒரு port-ஐத் தேர்ந்தெடுக்கும் (இயல்பாக 4567). NodeBB npm start மூலம் தொடங்காது. ./nodebb script-தான் இடைமுகமாகச் செயல்படுகிறது, ./nodebb log-ல் அதன் வெளியீடு சேமிக்கப்படுகிறது.
./nodebb start daemonise செய்கிறது, இது reboot ஆகும் machine-களுக்குப் பொருந்தாது. அதற்குப் பதிலாக, loader-ஐ systemd-ன் கீழ் 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 என்பது பலரும் கவனிக்கத் தவறும் பகுதி. இது இல்லையெனில், loader fork ஆகி parent process வெளியேறிவிடும். இதனால் systemctl status nodebb அந்த unit-ஐ dead என்று காட்டும், ஆனால் curl localhost:4567 தொடர்ந்து பதிலளிக்கும், மேலும் systemctl stop nodebb எதையும் நிறுத்தாது. ஒரு reverse proxy-க்கு பின்னால் இயங்கும்போது, websocket upgrade headers-ஐக் கடத்த வேண்டும். Nginx block-ல் proxy_set_header Upgrade $http_upgrade; மற்றும் proxy_set_header Connection "upgrade"; விடுபட்டிருந்தால், forum இயங்கும், ஆனால் browser console-ல் socket.io கோரிக்கைகள் தோல்வியடையும், பயனர் refresh செய்யும் வரை புதிய பதிவுகள் தோன்றாது.
Moderation வசதிகள் Flarum மற்றும் Discourse-க்கு இடையில் உள்ளன. Admin panel-ல் flag queue, வகை வாரியான உரிமைகள் (per-category privileges) மற்றும் reputation system உள்ளன. Anti-spam வசதிக்கு nodebb-plugin-spam-be-gone போன்ற community plugins-ஐப் பயன்படுத்தலாம், இது Akismet மற்றும் StopForumSpam ஆகியவற்றுடன் இணைகிறது.
Backups கைமுறையாகச் செய்யப்பட வேண்டும், தேவைப்படும் நாள் வரை யாரும் இதைப் பற்றிப் பேசுவதில்லை. ./nodebb CLI-ல் backup கட்டளை இல்லை. நீங்கள் mongodump அல்லது pg_dump மூலம் தரவுத்தளத்தை நீங்களே dump செய்ய வேண்டும். மேலும், public/uploads கோப்பகத்தையும், அதனுடன் config.json-ஐயும் நகலெடுக்க வேண்டும். config.json-ல் தரவுத்தளத்தின் நற்சான்றிதழ்கள் (credentials) மற்றும் தளத்தின் URL இருக்கும், எனவே அது இல்லாமல் restore செய்வது புதிய நிறுவல் போன்றதே. அதிகாரப்பூர்வமான importer வசதியும் இல்லை. nodebb-plugin-import என்பது ஒரு community project, அது தற்போதைய நிலைக்கு ஏற்ப மேம்படுத்தப்படவில்லை. அதேசமயம் Discourse-ல் NodeBB importer இருப்பதால், வெளியேறுவதற்கான ஒரே வழி Discourse-க்கு மாறுவதுதான்.
phpBB: இன்றும் சிறப்பாகச் செயல்படும் எளிமையான தளம்
phpBB ஒரு பழைய மென்பொருள், அதுவே அதன் பலமும் கூட. இதன் 3.3 வரிசை PHP 7.2.0 முதல் PHP 8.3 வரை இயங்குகிறது. இது MySQL 4.1.3+, MariaDB 5.1+, PostgreSQL 8.3+, SQLite 3.6.15+, MS SQL Server மற்றும் Oracle ஆகியவற்றை ஆதரிக்கிறது. இதற்கு json, mbstring, XML support மற்றும் getimagesize() function ஆகியவை கட்டாயம் தேவை.
SQLite ஆதரவு இருப்பதால் தான் இது இந்தப் பட்டியலில் இடம்பெறுகிறது. SQLite-ஐப் பயன்படுத்தும்போது, இந்த forum ஒரு சில PHP கோப்புகள் மற்றும் ஒரே ஒரு database கோப்பாக மட்டுமே இருக்கும். தனி database server தேவையில்லை, எதையும் tune செய்ய வேண்டியதில்லை, மேலதிக backup-ம் தேவையில்லை. ஏற்கனவே பிற சேவைகளை இயக்கும் 1 GB VPS-ல் இந்த வித்தியாசம் பெரிய அளவில் உதவும். சிறிய சமூகங்களுக்கு SQLite-ஐப் பயன்படுத்தவும்; ஒரே நேரத்தில் பல பதிவுகள் (concurrent posting) அதிகரிக்கும்போது MySQL-க்கு மாறவும். ஏனெனில், SQLite பதிவுகளை வரிசைப்படுத்தும் (serialise), இதனால் பதிவுகள் ஒன்றன்பின் ஒன்றாகக் காத்திருக்க நேரிடும்.
இதில் composer படிநிலையோ அல்லது container-ஓ கிடையாது. PHP உடன் கூடிய web server-ஐ நிறுவி, archive-ஐ unpack செய்து, browser installer மூலம் நிறுவவும். முழுமையான stack அமைப்பு Ubuntu 24.04-ல் standard LAMP stack என்பதில் விளக்கப்பட்டுள்ளது.
sudo apt update
sudo apt install -y apache2 php libapache2-mod-php php-mysql php-mbstring php-xml php-gd unzipphpbb.com தளத்திலிருந்து தற்போதைய 3.3 release-ஐப் பதிவிறக்கி, உங்கள் vhost இயங்கும் directory-ல் unpack செய்யவும். பின், installer எழுதும் பாதைகளை web server user-ஆல் மாற்றக்கூடிய வகையில் (writable) அமைக்கவும்.
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அதிகாரப்பூர்வ அறிவுறுத்தல்கள் 666 மற்றும் 777 அனுமதிகளைப் பரிந்துரைக்கின்றன. இவை shared hosting-க்காக உருவாக்கப்பட்டவை, அங்கு PHP எந்த user-ஆக இயங்குகிறது என்பது உங்கள் கட்டுப்பாட்டில் இருக்காது. உங்கள் சொந்த VPS-ல் நீங்கள் தான் கட்டுப்பாட்டாளர், எனவே www-data-க்கு ownership வழங்கி, மற்றவர்களுக்கு அனுமதி மறுக்கவும். Apache-ல் ஒரு முக்கியமான அம்சம்: Ubuntu-ன் config அதன் default document root-க்கு மட்டுமே அணுகலை வழங்கும். எனவே, /srv/phpbb-ஐச் சுட்டிக்காட்டும் vhost-க்கு, Require all granted உடன் கூடிய ஒரு <Directory> block தேவை. இல்லையெனில், phpBB-ஐ அடைவதற்கு முன்பே ஒவ்வொரு கோரிக்கையும் 403 Forbidden என்று பிழையைக் காட்டும். /install/index.php-ல் browser மூலம் நிறுவலை முடிக்கவும். பின் config.php-ஐ மீண்டும் 640-க்கு மாற்றி, install/ directory-ஐ நீக்கவும். அந்த directory நீக்கப்படும் வரை phpBB எச்சரிக்கை செய்திகளைத் தந்துகொண்டே இருக்கும்.
Spam என்பது phpBB-ல் உள்ள ஒரு பொதுவான சிக்கல், ஆனால் அதைச் சரிசெய்ய முடியும். பதிவு செய்யும் படிவம் (registration form) கணிக்கக்கூடிய URL-ல் (ucp.php?mode=register) இருப்பதால், domain crawl செய்யப்பட்ட சில நாட்களிலேயே bots அதைக் கண்டறிந்துவிடும். இதைத் தடுக்க, admin panel-ல் உள்ள Spambot countermeasures பகுதிக்குச் செல்லவும். அங்கு anti-spam முறையை Question and Answer என்று மாற்றி, உங்கள் சமூகத்தினருக்கு மட்டும் தெரிந்த ஒரு கேள்வியை அமைக்கவும். Image CAPTCHAs (completely automated public Turing tests) முறையை மலிவான சேவைகள் மூலம் bots எளிதாகக் கடந்துவிடும். ஆனால், உங்கள் சமூகத்தின் தலைப்பு சார்ந்த கேள்விக்கு அவ்வாறு செய்ய முடியாது.
migration செய்வதற்கு phpBB சிறந்த ஆதரவைக் கொண்டுள்ளது. Discourse-ன் phpbb3.rb இந்தத் தொகுப்பிலேயே மிகவும் பயன்படுத்தப்பட்ட importer ஆகும். phpBB support forums-ல் இருபது ஆண்டுகாலத் தீர்வுகள் உள்ளன. வெளியேறுவது mysqldump போன்றது, அல்லது SQLite கோப்பை நகலெடுத்துக்கொள்ளலாம். உங்கள் styles மற்றும் extensions மட்டும் இடம்பெயராது.
மன்றப் பதிவு மின்னஞ்சல்கள் ஏன் வருவதில்லை?
இந்த நான்கு தளங்களிலும் பதிவு செய்வது உறுதிப்படுத்தல் மின்னஞ்சல் மூலமே நடைபெறுகிறது. அந்த மின்னஞ்சல் வரவில்லை என்றால், கணக்கு செயல்படுத்தப்படாது; உங்கள் பதிவுகளில் பதிவு செய்யும் செயல்முறை பாதியிலேயே நின்றதைக் காணலாம். வெளிச்செல்லும் மின்னஞ்சல் விநியோகமே மன்றத்தின் செயல்பாட்டைத் தீர்மானிக்கிறது, எனவே இதை நிறுவலின் ஒரு பகுதியாகவே கருத வேண்டும்.
- பெரும்பாலான VPS வழங்குநர்கள் வெளிச்செல்லும் port 25-ஐ இயல்பாகவே தடுத்து வைத்துள்ளனர், எனவே உள்ளூர் Postfix நேரடியாக அனுப்ப முயற்சிக்கும் மின்னஞ்சல்கள் எங்கும் சேராது. மின்னஞ்சல் பதிவில்
connect to gmail-smtp-in.l.google.com[...]:25: Connection timed outஎன்று காட்டும். - புதிய IP முகவரிக்கு அனுப்பும் நற்பெயர் (sending reputation) இருக்காது, எனவே மின்னஞ்சல் சென்றடைந்தாலும் அது spam folder-க்குச் சென்றுவிடும். உறுதிப்படுத்தல் இணைப்பைப் பொறுத்தவரை, இது மின்னஞ்சல் வராததற்குச் சமம்.
- DNS-ல் SPF (sender policy framework) மற்றும் DKIM (domainkeys identified mail) பதிவுகள் இல்லையென்றால், பெரிய மின்னஞ்சல் வழங்குநர்கள் செய்தியை நிராகரித்துவிடுவார்கள். Google-ன் நிராகரிப்புச் செய்தி
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) இப்போது அவசியமானது.
இதற்கான நடைமுறைத் தீர்வு ஒரு relay-ஐப் பயன்படுத்துவதாகும். மன்றத்தின் SMTP அமைப்புகளை ஒரு transactional mail provider-ன் port 587-க்கு மாற்றவும். அந்த வழங்குநர் வழங்கும் SPF, DKIM மற்றும் DMARC பதிவுகளை DNS-ல் சேர்க்கவும். மன்றத்தின் நற்பெயர் உங்கள் தனிப்பட்ட மின்னஞ்சலில் இருந்து தனித்து இருக்க, mail.example.com போன்ற ஒரு subdomain-லிருந்து மின்னஞ்சல்களை அனுப்பவும். நீங்களே சொந்தமாக மின்னஞ்சல் server-ஐ இயக்குவது சாத்தியம், VPS-ல் முழுமையான self-hosted மின்னஞ்சல் server அமைப்பது குறித்து அது விளக்குகிறது, ஆனால் மன்றத்தைத் தொடங்கும் வாரத்தில் மின்னஞ்சல் விநியோக நுணுக்கங்களைக் கற்றுக்கொள்வது சரியானதல்ல.
மன்றத்தை அறிவிக்கும் முன் சோதனை செய்யவும். Discourse-ல், container-க்குள் இருந்து:
cd /var/discourse
./launcher enter app
rake emails:test[you@example.com]இந்தக் கட்டளை SMTP இணைப்பைச் சோதித்து ஒரு செய்தியை அனுப்பும். சான்றுகள் தவறாக இருந்தால், அது தோல்விக்கான காரணத்தை பொதுவாக Net::SMTPAuthenticationError என்று காட்டும். phpBB-ல் நிர்வாகப் பலகையில் (admin panel) Client communication பிரிவில் இதற்கு இணையான சோதனை உள்ளது. Flarum மற்றும் NodeBB-க்கு, ஒரு பெரிய மின்னஞ்சல் வழங்குநரில் ஒரு தற்காலிகக் கணக்கை உருவாக்கி, வரும் மின்னஞ்சலின் raw headers-ஐப் பார்க்கவும். Authentication-Results header-ல் spf=pass மற்றும் dkim=pass இருப்பதே நீங்கள் எதிர்பார்க்கும் முடிவு.
Discourse-ல் ஒரு நுணுக்கம் உள்ளது. ஆகஸ்ட் 2026 நிலவரப்படி, setup wizard-ல் SMTP-ஐத் தவிர்த்துவிட்டு Discourse ID-க்கு மாறலாம். இது மின்னஞ்சல் இணைப்புக்குப் பதிலாக, வெளிப்புறக் கணக்கு மூலம் பயனர்களை உள்நுழையச் செய்யும். இது relay இல்லாமலேயே மன்றத்தைத் தொடங்க உதவும். ஆனால், இது அறிவிப்பு மின்னஞ்சல்களையோ அல்லது கடவுச்சொல் மாற்றத்தையோ தராது, எனவே சமூகம் வளரும் முன் SMTP-ஐ எப்படியும் கட்டமைக்கவும்.
மன்றத்தை (forum) TLS-க்கு பின்னால் வைப்பது எப்படி?
Flarum மற்றும் phpBB ஆகியவை சாதாரண virtual hosts என்பதால், நீங்கள் ஏற்கனவே இயக்கும் web server-ல் உள்ள certbot போதுமானது. NodeBB மற்றும் Discourse ஆகியவை மாறுபட்டவை: இவை local ports-ல் இயங்கும் applications, எனவே ஏதேனும் ஒன்றை முன்னால் வைத்து TLS (transport layer security) termination செய்து, hostname மூலம் route செய்ய வேண்டும். மன்றம் மற்ற சேவைகளுடன் ஒரே server-ல் இருந்தால், அவை அனைத்திற்கும் முன்னால் ஒரு reverse proxy-ஐ வைக்கவும்; இதற்காகவே Traefik in front of multiple Docker Compose apps பயன்படுத்தப்படுகிறது.
Discourse இயல்பாகவே 80 மற்றும் 443 ports-ஐத் தானே கையாளும், இதற்காக அது சொந்தமாக nginx மற்றும் Let's Encrypt template-ஐப் பயன்படுத்துகிறது. இதை ஏற்கனவே உள்ள proxy-க்கு பின்னால் வைக்க, நீங்கள் app.yml-ஐத் திருத்தி, templates/web.letsencrypt.ssl.template.yml வரியை நீக்கி, container ஒரு local address-ல் மட்டும் கேட்கும் வகையில் exposed ports-ஐ மாற்ற வேண்டும், பின்னர் ./launcher rebuild app-ஐ இயக்க வேண்டும். இதைச் செய்த பிறகு container-ஐ மீண்டும் உருவாக்க (rebuild) வேண்டும், இதனால் சில நிமிடங்கள் downtime ஏற்படும். எனவே, நிறுவிய பின் முடிவெடுப்பதை விட, நிறுவுவதற்கு முன்பே இதைத் திட்டமிடுவது சிறந்தது.
உங்கள் சமூகத்தின் அளவிற்கு எந்த forum பொருத்தமானது?
இந்த முடிவெடுக்கும் விதி அம்சங்களைப் பற்றியது அல்ல, மக்களைப் பற்றியது.
- சில நூறு உறுப்பினர்களுக்குக் குறைவாகவும், ஒரு moderator மற்றும் 1 GB RAM மட்டுமே இருந்தால்: SQLite-ல் இயங்கும் phpBB அல்லது நவீன இடைமுகம் தேவைப்பட்டு MariaDB-ஐ இயக்க முடிந்தால் Flarum-ஐப் பயன்படுத்தலாம். இவை ஒவ்வொன்றும் patch செய்யப்பட வேண்டிய ஒரு தனி PHP application ஆகும்.
- வளர்ந்து வரும் சமூகம், இரண்டு அல்லது அதற்கு மேற்பட்ட moderators மற்றும் 4 GB RAM இருந்தால்: Discourse-ஐப் பயன்படுத்தலாம். ஒருவரால் மட்டும் moderation செய்ய முடியாத சூழல் வரும்போது, அதன் Trust levels மற்றும் review queue வசதிகள் அந்த கூடுதல் RAM பயன்பாட்டிற்குத் தகுதியானவை.
- நீண்ட கால விவாதங்களை விட நேரடி உரையாடல்கள் முக்கியம் என்றால்: NodeBB-ஐப் பயன்படுத்தலாம், அல்லது அது ஒரு chat என்று ஏற்றுக்கொண்டு அதற்குப் பதிலாக Rocket.Chat on Docker Compose-ஐ இயக்கலாம். ஒரு வாரத்திற்குப் பிறகு வாசிப்பதற்கு ஒன்றுமில்லாத forum-ஐ விட, ஒரு chat server-ஐ வைத்திருப்பதே சிறந்தது.
- விவாதங்களை விட ஆவணப்படுத்துதல் (documentation) தான் தேவை என்றால்: இவை எதுவும் உங்களுக்குத் தேவையில்லை. BookStack, Wiki.js or Outline போன்ற கருவிகள் அந்தத் தேவையைச் சிறப்பாகப் பூர்த்தி செய்யும். மீண்டும் மீண்டும் கேட்கப்படும் கேள்விகள் நிறைந்த forum என்பது, ஒரு wiki இல்லாததையே காட்டுகிறது.
- server-ல் எதை நிறுவுவது என்று இன்னும் முடிவு செய்யவில்லை என்றால்: the wider self-hosting shortlist for 2026 ஒரு சிறந்த தொடக்கப்புள்ளி. மேலும், the self-hosted Notion alternatives guide forum-களுக்கும் பகிரப்பட்ட பணித்தளங்களுக்கும் (shared workspaces) இடையிலான ஒற்றுமைகளை விளக்குகிறது.
நீங்கள் எதைத் தேர்ந்தெடுத்தாலும், அதன் backup எவ்வளவு சரியாக மீட்டமைக்கப்படுகிறதோ அவ்வளவு காலமே அந்த forum நீடிக்கும். ஒரு குறிப்பிட்ட கால அட்டவணையில் database-ஐ dump செய்யவும், அதே வேலையில் uploads directory-யையும் நகலெடுக்கவும். அந்த dump பயன்படுத்தக்கூடியதுதானா என்பதை உறுதிப்படுத்த, அதை வேறொரு இடத்தில் ஒருமுறை மீட்டமைத்துப் பார்க்கவும். Scheduled restic backups on a VPS அந்தப் பகுதியை விளக்குகிறது. இந்த அமைப்பில் இரண்டாவது வாய்ப்பு இல்லாத ஒரே பகுதி இதுதான்.
FAQ
ஒரு self-hosted forum-ஐ இயக்கத் தேவையான குறைந்தபட்ச server தேவைகள் என்ன?
database server இல்லாததால், பிற சேவைகளுடன் சேர்த்து 1 GB RAM-ல் phpBB-ஐ SQLite உடன் இயக்கலாம். Flarum-க்கு 1 GB RAM மற்றும் MariaDB தேவை. NodeBB-க்கு 2 GB RAM மற்றும் MongoDB போதுமானது. Discourse குறைந்தபட்சம் 1 GB RAM (swap உடன்) மற்றும் 10 GB disk தேவை என்று கூறினாலும், நடைமுறையில் 2 GB RAM-மே அடிப்படைத் தேவை. அதிக பயனர்கள் இருக்கும் forum-க்கு 4 GB RAM அவசியம், ஏனெனில் ./launcher rebuild app ஒவ்வொரு upgrade-ன் போதும் memory-ல் assets-ஐ மீண்டும் compile செய்யும்; அப்போது போதிய memory இல்லையெனில் kernel அந்த process-ஐ நிறுத்திவிடும் (out of memory handler).
எனது phpBB forum-ஐ Discourse-க்கு மாற்ற முடியுமா?
ஆம், இதுவே இங்கு சிறப்பாக ஆதரிக்கப்படும் migration வழிமுறையாகும். Discourse-ல் script/import_scripts/phpbb3.rb உள்ளது; இதை நீங்கள் container-க்குள் இயக்கி phpBB database-ன் நகலை மாற்றலாம், நேரடி database-ஐ ஒருபோதும் பயன்படுத்த வேண்டாம். பயனர்கள், பிரிவுகள், தலைப்புகள், பதிவுகள் மற்றும் இணைப்புகள் அனைத்தும் மாற்றப்படும். Styles மற்றும் extensions மாற்றப்படாது, மேலும் பழைய தலைப்பு URL-கள் மாறும் என்பதால், DNS-ஐ மாற்றும் முன்பே phpBB பாதைகளில் இருந்து redirects-ஐத் திட்டமிடுங்கள். பெரிய forum-களை மாற்ற பல மணிநேரம் ஆகும், எனவே ஒரு தற்காலிக server-ல் முதலில் import செய்து நேரத்தைக் கணக்கிடுங்கள்.
புதிய பயனர்களுக்கு ஏன் activation email கிடைப்பதில்லை?
பெரும்பாலான VPS நிறுவனங்கள் outbound port 25-ஐத் தடுப்பதால், local mail server-ஆல் மின்னஞ்சலை அனுப்ப முடியாது; log-ல் பெறுநரின் mail exchanger-க்கு எதிராக Connection timed out பிழை காட்டும். மின்னஞ்சல் சென்றாலும், SPF அல்லது DKIM பதிவுகள் இல்லாத புதிய IP முகவரிகள் நிராகரிக்கப்படும் அல்லது வடிகட்டப்படும்; அப்போது Google 550 5.7.26 Unauthenticated email ... is not accepted due to domain's DMARC policy பிழையை அனுப்பும். port 587 வழியாக relay-ஐப் பயன்படுத்தி மின்னஞ்சல்களை அனுப்புங்கள், அந்த relay வழங்கும் SPF, DKIM மற்றும் DMARC பதிவுகளைப் பதிவேற்றுங்கள். பின்னர் ஒரு test registration செய்து, உங்களுக்கு வரும் மின்னஞ்சலின் Authentication-Results header-ஐச் சரிபார்க்கவும்.
எந்த self-hosted forum மென்பொருளுக்குக் குறைந்தபட்ச moderation வேலை தேவை?
Discourse, ஏனெனில் இதில் moderation workflow மென்பொருளின் மையத்திலேயே உள்ளது. புதிய கணக்குகள் போதுமான அளவு வாசிக்கும் வரை rate limit செய்யப்படும்; flags ஒரு வரிசையில் (queue) சேமிக்கப்பட்டு, யார் நடவடிக்கை எடுத்தார்கள் என்பது பதியப்படும்; Akismet plugin அதிகாரப்பூர்வமாக உள்ளது. phpBB-ல் Question and Answer anti-spam முறையைச் செயல்படுத்தினால், பெரும்பாலான bot பதிவுகளைத் தடுக்கலாம். Flarum மற்றும் NodeBB ஆகியவை இதே பணிகளுக்கு community extensions-ஐச் சார்ந்துள்ளன. மென்பொருள் எதுவாக இருந்தாலும், பதிவிடும் பயனர்களின் எண்ணிக்கையைப் பொறுத்தே moderation வேலை அமையும்.