This is a collection of all the information I came across while setting up my own Xenforo forum (migrating from Reddit subs). I'll keep it updated as I learn more.
- Why move from Reddit to a forum?
- Why Xenforo (XF)?
- Why Centmin Mod?
- Easiest setup
- Setting up a server
- Full installation guide:
- General Centmin Mod info:
- Email:
- Titles:
- Threaded view/replies:
- Prefixes & tags
- Backups
- MySQL:
- Addons:
- Misc info & customization:
- Themes/styles:
- CSS and more:
- Customizations I used
- Moderating:
- Other forum options:
- Finding forums
Reddit has been going downhill on the path to enshittification for many years. But recently, they really s**t their bed. They've made communities no longer autonomous, and completely ignore their Terms of Service. Meaning there is no guarantee that any user or community can freely participate under the ToS without fear of the admins randomly stepping in and asserting their power -- whether that be via banning users or communities without cause, or turning over the community to complete outsiders or hostile entities.
Reddit showed that you can't trust a 3rd party. They can rapidly and drastically change their policies to screw you over after you've put in a decade of work hosting & growing your communities on their platform. With hosting your own forum, there is no such risk; you are under complete control.
Hosting your own Lemmy instance is a similar possibility, but Lemmy is early in development, and has various issues and more limitations currently. For me, adding a traditional forum to my existing website was the best option.
I wanted to move away from Reddit without losing any of the functionality/features, and I was able to accomplish that. I'm paying $5/mo for my server, which is plenty affordable for me.
A majority of the forums I've participated in over the past decade use XF. It seems to be the favorite choice for most people. There are free options that I like, like phpBB. But I'm not sure what their features & limitations are compared to XF. You can certainly install them and test them out for yourself. I wanted to get this done ASAP, and didn't want to have to possibly migrate from phpBB to XF later on. I didn't want the hassle/cost for myself, and didn't want my users to have to get used to something new. I also wanted to start out by having the forum appeal to the broadest audience possible.
- Startup discussion: I'm not seeing any newbie guides or comparisons. How is a complete novice supposed to decide on software, server, etc.?
If you use free-hosted options like these https://best-web-hosting.org/free-forum-hosting/ you have the same problem as with Reddit - they own you. But free software like phpBB that you host yourself is fine.
Making my way through the XF installation exposed some of the downsides:
- $160 may be too costly for many people, but there are free options listed at the bottom.
- The documentation is quite poor, so you'll be finding yourself doing lots of searches for "how to" and troubleshooting. And you may not find good answers despite this product being around for so long and being so popular.
- If you're not technically savvy yourself you'll have to spend lots more money hiring people to make tweaks that seem like they should be simple and part of the default software.
- Many of the best addons are free, but you may find that you need/want features not covered by them and thus have to pay ~$30 for existing addons, or $60+ for custom ones.
Overall, the cost, time consumed, and difficulty are all much higher for Xenforo compared to starting up some Reddit subs. Not to mention the monthly server & email costs. I think the Xenforo devs can definitely improve on this to become a more competitive option.
They have various hour-long videos on their Youtube channel https://www.youtube.com/@XenForo/playlists. They are helpful but definitely not exhaustive.
Xenforo is highly customizable, but most of the options are locked behind:
a) hiring someone
b) having technical skills/knowledge and/or time to figure everything out on your own
Lucky for you, I've shared some insights below that will help you get acquainted. I'll be keeping this Github guide updated as I learn more.
Centmin mod seems to be one of the most popular server setups for Xenforo forums, due to speed, good documentation, and an active developer.
The other option that was mentioned to me was OpenLiteSpeed server + Cyberpanel. It's supposed to be more novice-friendly, but I actually found Centmin easier since there was a full step-by-step guide for it, along with a more active/helpful community/developer. With Cyberpanel, I ran into problems I couldn't find an answer for.
Lessons learned:
The primary factors in choosing a specific setup are:
- The existence of a step-by-step guide that covers all aspects of what you intend to set up: Server host, software, DNS, forum, etc.
- The quality of the documentation.
- How active the community or support options are.
Centmin mod beats Cyberpanel + LiteSpeed in all of these aspects.
-
by eva2000 https://xenforo.com/community/members/63090/ - https://xenforo.com/community/threads/installing-on-linux-with-linode.188474/post-1482247
-
A text-based control panel. Can't be used with Cyberpanel or cloudpanel.io https://xenforo.com/community/threads/is-digital-ocean-host-good-for-xenforo-or-what-host-can-is-best.198215/post-1634037
-
Install guides: https://centminmod.com/install.html - https://centminmod.com/getstarted.html
-
Resources: https://community.centminmod.com/resources/
If you want to pay someone to do everything for you, here are some options:
- https://driven2services.com/
- MattW: https://xenforo.com/community/members/mattw.15562/#about - https://mattwservices.co.uk/ - https://xenforo.com/community/threads/mattwservices-co-uk-server-configuration-hosting-support.61392/post-1526827
- Eva, the creator of Centmin Mod might do it too. https://community.centminmod.com/members/eva2000.1/ - https://community.centminmod.com/misc/contact
- https://gconverters.com/forum-to-forum-migration/
- https://xenforo.com/community/forums/third-party-services-offers.42/
If you want to go the easiest route, you can purchase a shared-hosting plan from someone like MattW (see above). Shared hosting means Matt takes care of server installation & updates. All you have to worry about is your forum. It's easier and may be more convenient, especially for novices, but there are limitations (it's not your server so you can't do whatever you want) and you get less bang for your buck. Here's an argument in favor of shared hosting if you're starting off small.
Free micro instance in Google's GCP free tier: https://www.theadminzone.com/threads/benchmark-review-for-upcloud-vs-digitalocean-vs-linode-vs-vultr-vs-hetzner.151018/post-1141139
After some deliberation, I chose Hetzner cloud servers. They seem to have a good reputation and some of the best specs-to-price ratios. Cloud servers are similar to VPS, but seem more flexible.
Basic Hetzner setup: https://www.youtube.com/watch?v=kTgu4wJ7v-0
$20 credit https://hetzner.cloud/?ref=iQrpqFra6HP7
More video tutorials for setting up a server with Cloudflare & nginx.
Change time zone: On CentOS 7 it's timedatectl
to check. Then choose one: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. Then set with timedatectl set-timezone America/Los_Angeles
.
For the hostname, use the directions here: https://centminmod.com/getstarted.html. If you take a snapshot of your server and create a new server from it, you'll need to do those hostname steps again.
Putty and FileZilla will be your main tools on Windows. FileZilla settings:
Host: elastic IP
Port: blank
User: ubuntu
PW: key file
Protocol: SFTP SSH file transfer
Note that Volumes are optional additional storage. Hetzner automatically comes with a 40 GB drive, which is probably enough for most people. You can add a volume later on if needed.
I'm currently paying $5/mo for my Hetzner server running a small forum. I've heard that $10/mo is enough to run fairly active/large ones.
Hetzner backups:
- Backups are daily automatic copies of your server's disk. Snapshots are manual and permanent.
- Backups and Snapshots do not include any Volumes which are attached to your server. I guess there's no way to back up Volumes?
- Snapshots vs Backups https://web.archive.org/web/20230625021023/https://old.reddit.com/r/hetzner/comments/suwncj/snapshots_vs_backups/
Be careful with SSH keys. When I removed mine from the UI at /security/sshkeys
it seemed like an irreversible action akin to deleting my whole server. Hetzner support implied there's a fallback option, but I didn't quite understand it, and what I tried didn't work, so I created a new server.
- https://community.hetzner.com/tutorials/howto-ssh-key
- https://community.hetzner.com/tutorials/add-ssh-key-to-your-hetzner-cloud
- Connecting to server: https://docs.hetzner.com/cloud/servers/getting-started/connecting-to-the-server/
- They recommend Putty for SSH and FileZilla: https://docs.hetzner.com/konsoleh/account-management/access-details/login-data/
- via Putty: https://www.youtube.com/watch?v=kTgu4wJ7v-0
When I ran "ssh-keygen -t ed25519" on Windows 10, and added a passphrase, Putty/puttygen would not open the key. IE: import key did not work https://web.archive.org/web/20230605235602/https://blog.andrerampersad.me/how-to-import-ed25519-keys-for-use-in-putty-on-windows/
When I ran it without a passphrase, putty would open it, convert it to .ppk with or without a passphrase. So it's better to use Putty to create the keys.
- You can set a root password after using an SSH key: https://community.cyberpanel.net/t/cannot-login-to-immunufy-av/35999/7
- Login to your server using the ssh key, run “passwd” and set up a password for your root.
Protecting against DDoS - "Your origin IP should never leak. If you set up your server before without Cloudflare, then switch to Cloudflare there will be public records. If you're getting a fresh start with Cloudflare you're going to want to switch servers" https://www.youtube.com/watch?v=hcmxz0w7Td8&t=844s
- Cloudflare says the same https://blog.cloudflare.com/ddos-prevention-protecting-the-origin/
- https://developers.cloudflare.com/learning-paths/prevent-ddos-attacks/
- https://www.techtarget.com/searchsecurity/tip/How-to-protect-an-origin-IP-address-from-attackers
- "For enhanced security, we recommend rolling your origin IP addresses at your hosting provider after your zone has been activated. This action prevents your origin IPs from being leaked during onboarding." https://developers.cloudflare.com/dns/manage-dns-records/reference/proxied-dns-records/
Test “Origin IP” Vulnerability https://geekflare.com/test-origin-ip-exposed/
Check website IP address https://www.ecosia.org/search?q=check%20website%20ip%20address - nslookup.io is good.
Unlimited, free DDoS protection with Cloudflare https://www.cloudflare.com/cdn/#CDN-Page-Pricing-AS
"Cloudflare only stops those who don't know your server's IP address. The first time someone posts an image on forum that is hosted on their own server... they have your server's IP and can by-pass Cloudflare" https://xenforo.com/community/threads/is-digital-ocean-host-good-for-xenforo-or-what-host-can-is-best.198215/post-1634117 - "or you can use Cloudflare itself as your image/unfurl proxy (for free and the reliability of hundreds of data centers)"
- Blocks port 25 by default. After first paid invoice + 1 mo wait, you can request they open it.
- https://blog.hqcodeshop.fi/archives/553-Hetzner-outgoing-mail-SMTP-blocked-on-TCP25.html
- Outgoing traffic to ports 25 and 465 are blocked by default on all Cloud Servers. https://docs.hetzner.com/cloud/servers/faq/#why-can-i-not-send-any-mails-from-my-server
- To request it to be unblocked head over to https://console.hetzner.cloud/limits > and hit the request button.
- IPv4 is probably required: https://news.ycombinator.com/item?id=33894933&p=2
- Or not: "there is a simple trick you can use IPv6 with CDN like Cloudflare and your websites will still work with IPv4 connections" https://lowendtalk.com/discussion/180172/hetzner-now-charging-for-cloud-server-ipv4-separated
- More: https://docs.hetzner.com/robot/dedicated-server/ip/faq-primary-ipv4/#what-limitations-are-there-for-servers-that-just-have-an-ipv6
UptimeRobot (hosted) or UptimeKuma (selfhosted). updown.io, Hetrixtool, Cloudflare has it for paid plans. newrelic.com for server and application monitoring.
- https://web.archive.org/web/20230612054310/https://old.reddit.com/r/webhosting/comments/dg3km8/suggestions_for_web_hosting_a_forum/
- https://www.onlinetoolsexpert.com/full-list-of-eig-web-hosting-companies/ - Hostgator and Bluehost are an EIG brand and should be avoided.
The site I used is excluded from archive.org and archive.today so I'm not sure if I'm even allowed to link to it here. But there's a forum post with a series of video tutorials/walkthroughs for the full setup titled "CentMinMod Tutorial Series - Cloudflare + nginx + Xenforo" and the videos are:
- CentMinMod Tutorial 1 - Digital Ocean + Cloudflare + nginx
- CentMin Mod Tutorial 2 - Cloudflare, nginx rate limiting & more
- CentMinMod Tutorial 3 - How to Install Xenforo 2 on nginx
- CentMin Mod Tutorial 4 - vBulletin NGINX redirects for Xenforo 2
- CentMin Mod Tutorial 5 - How to install phpMyAdmin & SSL Certs
- How to Install Mailcow Tutorial + Xenforo 2 - Self hosted email
- cfautouam - CloudFlare Under Attack Mode Automation
I would have never been able to do it without this guide. And this guide is a main part of why I chose Centmin Mod.
The specific page with the guide even stopped loading for me. I was panicked that it was lost forever, but I was able to access it once at some point and saved the webpage locally, I also downloaded the Youtube videos.
All of this is certainly not ideal, so perhaps someone can make a less-problematic guide.
The creator of CentMin Mod (Eva) has his own written guides, but I find them a little more difficult, and the video tutorials above cover more essential things. Though, I didn't find Eva's Xenforo setup guide on Cenmin Mod till later, and it actually seems better in some ways. I would use Eva's guide side-by-side with the video tutorial.
CentMinMod Tutorial 3 - How to Install Xenforo 2 on nginx https://www.youtube.com/watch?v=YprjFHTOHwI
Upload folder to /home/nginx/domains/forum.mysite.com/public
He uses these two commands and says not to worry about the error, but it seems like the error is important and all the files don't actually copy over. You can copy them over with Filezilla, or you can try alternative commands in the Centmin guide above.
mv upload/* .
mv upload/*. .
mysql
show databases;
create database myforum;
/usr/local/nginx/conf/conf.d/
ngxrestart
/home/nginx/domains/forum.mysite.com/public/src/config.php
chown -R nginx:nginx /home/nginx/domains/forum.mysite.com/public
https://community.centminmod.com/threads/xf-2-2-2-cannot-install-style.20812/ - you may have to run this command occasionally if you login to FileZilla with root
to install addons.
'port' => '11211'
memcachedrestart
mysqlcheck --all-databases
-
https://centmin.sh/nginx_configure_xenforo_seo_friendly_urls.html
-
Cloudflare: https://centminmod.com/nginx_configure_cloudflare.html
-
Password-protect the install domain: https://youtu.be/hcmxz0w7Td8?t=1120
-
Rate limiting: https://youtu.be/tEwliqSt1Zg?t=592
-
Check server emails: https://www.youtube.com/watch?v=tEwliqSt1Zg&t=14m20s
yum install mutt
; then just typemutt
to view. -
IMPORTANT: Read over the Managing root user emails section and this forum comment so that you don't get spammed with thousands of emails.
-
Upgrading php: https://youtu.be/tEwliqSt1Zg?t=405 - https://www.php.net/supported-versions.php
Centmin Mod redirects:
- https://www.youtube.com/watch?v=tEwliqSt1Zg&t=8m2s
/usr/local/nginx/conf/conf.d/redirects.conf
"I would not recommend relying on it for your DB dumps. It has a habit of timing out and you getting a corrupted export of your DB, especially when on a shared server environment" https://xenforo.com/community/threads/public-service-announcement-check-your-mysql-backup.152740/post-1535332
- Centminmod install: https://centminmod.com/addon_phpmyadmin.html
- https://www.youtube.com/watch?v=pMck2U-5JOc
- If using stdio (for email - you'll know what this is once you get to it) check /var/spool/mail/root. Or after installing mutt, type "mutt" to view.
- Installing honeypot spam protection https://community.centminmod.com/threads/projecthoneypot-org-installation-with-xenforo-and-centmin-mod.23943
- 4 GB swap disk space is a requirement. CentOS 7 and AlmaLinux seem to default to a 1-2 GB swap file, so you'll have to delete and replace it with a larger one: https://community.centminmod.com/threads/almalinux-elevate-in-place-centos-7-to-el8-migrations-and-resource-requirements.24324/#post-98152
Use cmd alias centmin
to invoke centmin.sh
(menu).
Use alias
to see available cmds. cmdir
gets you into the centmin mod directory.
cmupdate
ngxrestart
fpmrestart
(php)
cminfo sar-mem
- memory metrics for past 7 days
cminfo sar-cpu
Firewall: /etc/csf
csf -ra
(reboot firewall)
Enable and verify automatic yum updates https://community.centminmod.com/threads/automatic-nightly-yum-updates-with-yum-cron.1507/page-6#post-96644 -- Config options. You can use dnf-automatic for Rocky/Almalinux.
Ubuntu tells you when a system restart is required. But it seems that CentOS does not. Per https://www.cyberciti.biz/faq/how-to-check-if-centos-rhel-needs-a-full-reboot/, we can use these two commands:
needs-restarting -r
systemctl reboot
You may have to run yum whatprovides needs-restarting
first, to install the utility, but when I ran yum install yum-utils
it said it was already installed.
This check is added to Centmin beta branch: https://community.centminmod.com/threads/centmin-mod-130-00beta01-release-discussion.22676/page-2#post-97159
Find content in files:
grep -rinw "PREG_OFFSET_CAPTURE" /home/nginx/domains/forum.mysite.com/public/src/XF/BbCode
- https://stackoverflow.com/questions/16956810/how-can-i-find-all-files-containing-specific-text-string-on-linux
- -rn showed the lines the keyword was found on. -rlnw does not.
- -w to search for entire words only instead of patterns in the middle of other words
- -i for a case-insensitive search
Find files:
- https://stackoverflow.com/questions/21046354/how-to-search-for-a-file-in-the-centos-command-line
find /home/username -name *.java
find /home/ -name .htaccess
Use sed to replace content in files: https://community.centminmod.com/threads/automatic-nightly-yum-updates-with-yum-cron.1507/page-3#post-98078
- Will move to Alma Linux 8. https://xenforo.com/community/threads/upgrading-centos-7-or-waiting.206482/
- CentOS stream is different and not supported https://community.centminmod.com/threads/does-centminmod-work-on-centos-8-stream.23783/
- acmetool & manual SSL certs https://community.centminmod.com/threads/cloudflare-origin-certificates.7681/#post-96586
Generally, you don't want SSL certificates for the main hostname/IP (nor phpmyadmin) anyway as every time you issue an SSL certificate, the certificate can be publicly searched for via Certificate Transparency logs https://community.centminmod.com/threads/ip-ssl.22538/#post-92222 - https://community.centminmod.com/threads/can-i-issue-ssl-with-acme-sh-for-phpmyadmin-tool.21901/#post-90131
So if you have Cloudflare proxy protecting and hiding your real server IP for Nginx vhosts on Centmin Mod server but have valid SSL certificate on main hostname without Cloudflare proxy, then you'd leak your real server IP.
And if you enabled Cloudflare proxy on that main hostname, you'd break email deliverability on the Centmin Mod server as reverse PTR lookup for main hostname won't be able to return the real server IP and instead return Cloudflare proxy edge server IP - see Email - Steps to ensure your site/server email doesn't end up in spam inboxes. https://community.centminmod.com/threads/install-le-ssl-on-hostname.21634/#post-89626
So don't request one for http://main.myforum.com/
Cloudflare:
Don't enable "bot fight mode" in cloudflare or it will prevent your letsencrypt certificate from renewing.
Various methods of being notified ahead of time if your SSL cert fails to renew.
General information about sending bulk email.
Centmin mod email info (SPF, DKIM, DMARC, etc.) https://community.centminmod.com/threads/steps-to-ensure-your-site-server-email-doesnt-end-up-in-spam-inboxes.6999/
Centmin Mod installs Postfix MTA server for outbound mail. https://community.centminmod.com/threads/how-i-setup-amazon-ses-donotreply-address-easily.15810/#post-67765
Read over the Managing root user emails section and this forum comment so that you don't get spammed with thousands of emails.
There's an email set in /etc/yum/yum-cron.conf, and another in /root/.forward. Or for Rocky/Almalinux it's /root/.forward and /etc/dnf/automatic.conf.
Free @yourdomain email using Cloudflare, an SMTP (Sendinblue/Brevo or Mailjet), and Gmail: https://www.youtube.com/watch?v=nNGcvz1Sc_8
I was surprised to see that some forums are using Gmail accounts. I didn't know that was possible, and some people say it's not anymore. You'll have to look up a guide for setting that up yourself.
Amazon SES is the cheapest SMTP option if you're doing large amounts of emails. If you're small, and you think you'll stay small, there are free options like Sendinblue/Brevo and Mailjet.
to process bounces & unsubscribes: https://xenforo.com/community/resources/amazon-ses-bounces-support.8319/
The main instructions should work. If you have trouble you can review this alternative guide: https://xenforo.com/community/threads/amazon-ses-bounces-support.192673/post-1634067
ErrorException: [E_WARNING] Attempt to read property "recipient" on bool src/XF/EmailBounce/Processor.php:106
https://xenforo.com/community/threads/amazon-ses-bounces-support.192673/post-1635749 "appears when you install everything and Amazon tries to connect. After everything is set up correctly with Amazon SES, this error does not happen a second time. Just delete the errors and see it yourself over the next days"
More info in this comment and the next two: https://xenforo.com/community/threads/amazon-ses-bounces-support.192673/post-1637109
- Setting up SNS for an SES sending email https://xenforo.com/community/threads/amazon-ses-and-xenforo.128853/page-2#post-1150297
- Cloudwatch https://community.centminmod.com/threads/amazon-aws-ses-smtp-transactional-email-info.13842/#post-62892
- More discussion https://community.centminmod.com/threads/amazon-ses-for-xenforo.4152/
- Bounce management with SES https://xenforo.com/community/threads/bounce-management-handling-with-postmark-sendgrid-amazon-ses.213795/
- Amazon SES questions https://xenforo.com/community/threads/amazon-ses-questions.208178/
- When you send from the contact form it will send from "default email" to "contact email" https://xenforo.com/community/threads/amazon-ses-adds-emails-from-own-domain-to-suppression-list.199400/
Troubleshooting:
- Configuring Amazon SES with XF 2.1 https://xenforo.com/community/threads/configuring-amazon-ses-with-xf-2-1.182458/
- Configure Amazon SES in our Xenforo forum https://xenforo.com/community/threads/configure-amazon-ses-in-our-xenforo-forum.205540/
is to create a "[email protected]" email to be used ONLY for this purpose. Directions:
- Handle email bounces with a dedicated Gmail address https://xenforo.com/community/threads/bounce-email.156547/post-1298668
- Go to gmail settings -> POP/IMAP -> enable IMAP. https://support.google.com/mail/answer/7126229
- Using a non-Gmail account that allows 3rd party connections via login credentials would be much easier.
- "You need to activate "Email Feedback Forwarding" in the settings of your SES domain. This will send a regular bounce mail to the sender address which will get Xenforo to act as you setup your bounce processing." https://xenforo.com/community/threads/amazon-ses-bounce-processing.149343/post-1263353
- Clarification: https://xenforo.com/community/threads/expand-your-youtube-tutorial-series-and-docs-to-cover-more-of-the-basic-setup-and-features.215201/ - any POP/IMAP email provider is fine to use for bounces & unsubs.
Use "Tools -> test outbound email".
https://docs.aws.amazon.com/ses/latest/dg/send-an-email-from-console.html
[email protected]
[email protected]
[email protected]
[email protected]
https://xenforo.com/community/threads/192673/post-1637170
There is a built-in option for sending out emails to everyone, but it's somewhat limited.
Threadloom Search / Newsletter to be retired https://www.theadminzone.com/threads/threadloom-search-newsletter-to-be-retired.154476/page-3#post-1172368
DragonByte Mail is mentioned as an alternative https://xenforo.com/community/resources/dbtech-dragonbyte-mail.5867/ $25.
- Manual change of thread & node title lengths: https://xenforo.com/community/threads/increasing-the-150-character-thread-title-limit.215208/ - may have to redo it after an update.
- Reddit-like titles: Customize row below thread title https://xenforo.com/community/resources/cxf-customize-row-below-thread-title.6984/ - move replies and views to the row below the thread title. That way you get more space for long thread titles.
Other:
- Thread Titles Manager https://xenforo.com/community/resources/thread-titles-manager.8806/ - removes duplicates and controls length.
- Title Length Modifier https://xenforo.com/community/resources/cz-title-length-modifier.7565/ "If you remove this add-on it will reset the length of all affected database tables back to their default character count. If you have longer names they will be truncated at 150 characters"
There's a $30 add-on that adds this optional functionality to threads. You can choose to reply-in-thread or reply normally. I haven't tried it. I'm sure it has its downsides. https://xenforo.com/community/resources/post-reply.6928/
I found a free one: [OzzModz] Post Comments https://xenforo.com/community/resources/ozzmodz-post-comments.8591/
Prefixes are forum-specific, tags are site-wide.
Add list of prefixes at top of forum:
-
Manual https://xenforo.com/community/resources/filter-threads-by-prefix-menu.5833/
-
Via Prefix Filter addon https://xenforo.com/community/resources/sc-prefix-filter.7165/
-
Show tags on thread list https://xenforo.com/community/resources/xtr-show-tags-on-thread-list.8252/
If you delete a "custom thread field" it (and its content) will be deleted from all previous threads that used them. It's irreversible. https://xenforo.com/community/threads/deleting-custom-thread-fields.215714/
Thus, I would not recommend using them for anything important, and instead use the "field description" to list information you want people to include in their post, and they can copy-paste that in. You could pair that with a "checkbox field type" containing "I included all required info". I found an addon that solves the problem: [OzzModz] Thread & Quick Reply Placeholders & Templates.
The main guide covers manual backups: https://youtu.be/tEwliqSt1Zg?t=944 - /home/backup.sh
I added a change of permissions from 644 to 640 due to: https://community.centminmod.com/threads/mariadb-10-1-upgrades-to-mariadb-10-2-10-3-and-10-4.17793/#post-75214
My SQL backup:
cd /home/
mysqldump yourdbname | gzip > yourdbfilename-$(date +"%Y-%m-%d--%H-%M-%S").sql.gz
chmod 0640 /home/yourdbfilename*
Manual centmin backups:
First I edited the backup.sh
with this different date format: full_backups/$(date +"%Y-%m-%d--%H-%M-%S")-
Then:
/home/backup.sh
or
cd /home/
./backup.sh
chmod 0640 /home/nginx/domains/forum.myforum.com/backup/full_backups/2023*
Backup.sh:
I added all the commands to the backup.sh
so that I only have to run one command. I also added some other config files. The \cp
copies & overwrites without a confirmation.
mysqldump myforumdb | gzip > /home/nginx/domains/forum.mysite.com/backup/full_backups/myforumdb-$(date +"%Y-%m-%d---%H-%M-%S").sql.gz
wait
\cp /etc/my.cnf /home/nginx/domains/forum.mysite.com/backup/misc_files/
\cp /etc/centminmod/custom_config.inc /home/nginx/domains/forum.mysite.com/backup/misc_files/
\cp /etc/centminmod/php.d/b_customphp.ini /home/nginx/domains/forum.mysite.com/backup/misc_files/
\cp /etc/csf/csf.conf /home/nginx/domains/forum.mysite.com/backup/misc_files/
crontab -l > /home/nginx/domains/forum.mysite.com/backup/misc_files/crontab_backup.txt
wait
tar -zcvpf /home/nginx/domains/forum.mysite.com/backup/full_backups/$(date +"%Y-%m-%d---%H-%M-%S")-miscFILES-.tar.gz /home/nginx/domains/forum.mysite.com/backup/misc_files/;
tar -zcvpf /home/nginx/domains/forum.mysite.com/backup/full_backups/$(date +"%Y-%m-%d---%H-%M-%S")-sitebackupPUBLIC-.tar.gz /home/nginx/domains/forum.mysite.com/public/;
tar -zcvpf /home/nginx/domains/forum.mysite.com/backup/full_backups/$(date +"%Y-%m-%d---%H-%M-%S")-mainPUBLIC.tar.gz /usr/local/nginx/html/;
tar -zcvpf /home/nginx/domains/forum.mysite.com/backup/full_backups/$(date +"%Y-%m-%d---%H-%M-%S")-CONF.tar.gz /usr/local/nginx/conf/conf.d/;
wait
chmod 0640 /home/nginx/domains/forum.mysite.com/backup/full_backups/*
chmod 0640 /home/nginx/domains/forum.mysite.com/backup/misc_files/*
You can pay Hetzner/your server provider an additional 20% for full-server automated backups. There are free ways to do automated backups locally and externally, but I haven't found a good guide yet. If I learn of one I'll add it here.
Eva/George has a script for premium users: https://community.centminmod.com/threads/dbbackup-sh-quick-mysql-database-backups-for-centmin-mod-stack.4573/
You can automate the backup.sh with a cronjob (Eg: 15 */12 * * * /home/backup.sh 2>/dev/null
to backup every 12 hrs), but if your databases are password protected you'll have to change some of the commands to make password entry non-interactive. Eg with postgres: psql postgresql://listmonk:[email protected]:9432/listmonk
Move Xenforo to a new server: https://xenforo.com/community/threads/moving-from-one-server-to-another-manual.178540/
Restore the SQL db:
CLIENTOPT='--max_allowed_packet=256M --net_buffer_length=65536'
mysql $CLIENTOPT dbname < /home/backupsql/dbname.sql
More info: https://community.centminmod.com/threads/centmin-mod-site-data-migration-guide.10382/
Since the file is probaly gzip'd, you can first do gunzip dbname.sql.gz
.
Basic commands: https://xenforo.com/community/threads/increasing-the-150-character-thread-title-limit.215208/
mysql
SHOW DATABASES;
use database_name;
SHOW TABLES;
SHOW COLUMNS FROM xf_thread;
ALTER TABLE `xf_node` MODIFY title varchar(100), MODIFY node_name varchar(100);
ALTER TABLE `xf_thread` MODIFY title varchar(300);
SHOW VARIABLES LIKE 'ft_min_word_len';
Change minimum search length (default 4 characters minimum): https://xenforo.com/community/threads/change-minimum-search-keyword.153405/post-1655953
Clear bounce log https://xenforo.com/community/threads/any-way-to-clear-the-email-bounce-log.159473/
SHOW COLUMNS FROM xf_email_bounce_log;
SELECT * FROM xf_email_bounce_log;
- too big; just gibberish.
TRUNCATE `database_name`.`xf_email_bounce_log`;
"Unless you're a DBA or otherwise managing a huge database, the differences between MySQL and MariaDB are so trivial that it's not worth worrying about which one the control panel defaults to." https://www.theadminzone.com/threads/im-not-seeing-any-newbie-guides-or-comparisons-how-is-a-complete-novice-supposed-to-decide-on-software-server-etc.154985/#post-1181527
Updating is easy https://community.centminmod.com/threads/mariadb-10-1-upgrades-to-mariadb-10-2-10-3-and-10-4.17793/#post-75214
Altered (date format) Centmin code:
mysqldump -Q -K --max_allowed_packet=256M --net_buffer_length=65536 --routines --events --triggers --hex-blob --all-databases > /home/mysql-all-databases-backup-$(date +"%Y-%m-%d--%H-%M-%S").sql
- Free addons: https://xenforo.com/community/resources/categories/add-ons-2-x.44/?type=free&order=rating_weighted&direction=desc
- Create addon: https://www.youtube.com/watch?v=an4WHJuLiNk?list=PL71lyEf0D9idDVFxEHykUywlWAxyVDhz8&t=15m20s
- Import addons: https://xenforo.com/docs/xf2/add-ons/
- Updating addons - "merge" (overwrite) with FileZilla https://xenforo.com/community/threads/ftp-merge-files.142663/
Your website is located at /home/nginx/domains/forum.mysite.com/public
ngxrestart
fpmrestart
(php)
memcachedrestart
- PHP version: You generally don't want to upgrade to the latest version.
- XF FAQ 1.5 https://xenforo.com/community/threads/frequently-asked-questions.5183/#post-180455
- XF Docs https://xenforo.com/docs/xf2/install-upgrade/
- PHP cmds https://xenforo.com/community/threads/xf-2-command-line-functions.140441/
- Xenforo redirects http://www.youtube.com/watch?v=tEwliqSt1Zg&t=8m2s - https://xenforo.com/community/threads/setup-redirections-in-xenforo.194434/post-1638157
- XF tips and guides https://xenforo.com/community/resources/categories/xenforo-tips-guides-2-x.43/?order=rating_weighted&direction=desc
- XenForo 2.2 - Forum & Thread Types https://www.youtube.com/watch?v=qEwqgEn4ZLI
- XF Youtube: https://www.youtube.com/@XenForo/playlists
- User permissions & groups https://youtu.be/teGpqPwqQD0?list=PL71lyEf0D9idDVFxEHykUywlWAxyVDhz8&t=2377
- From/To migrations of forum software: https://gconverters.com/statistics/
- Commercial Forum Platforms relative market share & migrations https://tools.digitalpoint.com/cookie-search
- Gaia Online is the largest web forum: https://www.gaiaonline.com/info/aboutus/
- https://xenforo.com/community/threads/twitter-card-meta.57655/
- metadata_macros https://xenforo.com/community/threads/solved-twitter-cards-for-xenforo.95219/post-1403438
- Need to use the 512 one for Facebook https://xenforo.com/community/threads/how-to-change-the-xenforo-image-in-the-facebook-preview.215055/post-1640424
- FAQ https://xenforo.com/community/threads/sharing-to-social-media-preview-image-change.111541/ - didn't work for XF 2.2.
- Designer mode: https://xenforo.com/docs/dev/designing-styles/
- Issue with importing styles to centmin mod (it was a permissions issue which you shouldn't have if you used the commands above) https://community.centminmod.com/threads/xf-2-2-2-cannot-install-style.20812/ - https://xenforo.com/community/threads/expand-your-youtube-tutorial-series-and-docs-to-cover-more-of-the-basic-setup-and-features.215201/
A basic tutorial of how to customize with CSS:
F12 to open the developer console of your browser. Click the "element picker" on the left side. Click on the part of the page you want to customize and look through the CSS code. Copy/edit it and put in your extra.less file.
For macOS: In your Safari menu bar click Safari > Preferences & then select the Advanced tab. Select: "Show Develop menu in the menu bar". Now you can click Develop in your menu bar and choose Show Web Inspector. You can also right-click and press "Inspect element".
- XF resources https://xenforo.com/community/resources/categories/xenforo-2.42/
- XF Youtube https://www.youtube.com/playlist?list=PL71lyEf0D9iexmCHe7kGA0lDLhr_2upCr
- Other sites https://xenforo.com/community/threads/addon-and-theme-websites.212883/
- customizexf https://www.customizexf.com/resources/
- xf2 addons https://www.xf2addons.com/ - also has tutorials. $35/yr for 400 addons.
- Custom work https://pixelexit.com/ - Used by https://hardforum.com/.
Font size:
- https://xenforo.com/community/threads/change-default-thread-font-size.173922/
- https://xenforo.com/community/threads/change-font-size-of-threads-and-messages-count.161179/
Most of the style changes will go in "appearance -> styles -> templates -> extra.less". You can see below what mine currently has.
- Shades of Grey (dark) https://xenforo.com/community/resources/shades-of-grey.5812/
- XenForo Lite -- Alternadiv (minimalist) https://xenforo.com/community/resources/xenforo-lite-alternadiv.8696/
- Grey: modified version of this demo https://www.youtube.com/watch?v=JvU5U_fnGxw&list=PL71lyEf0D9iexmCHe7kGA0lDLhr_2upCr&index=1
- Remove notice "This message is awaiting moderator approval, and is invisible to normal visitors." https://xenforo.com/community/resources/9223/
- Remove notice "Awaiting approval before being displayed publicly." https://xenforo.com/community/threads/155218/post-1637359
- Highlight and Separate Sticky Threads https://xenforo.com/community/resources/highlight-and-separate-sticky-threads.5909/
- Underline links https://xenforo.com/community/threads/underlined-links-in-post.196999/
- Style text editor toolbar buttons manual CSS or via addon.
- Sticky postbit https://xenforo.com/community/resources/cxf-sticky-postbit.9572/
Here's what mine currently has (for the default-grey style):
With the default font (Segoe UI):
/* Border between sticky/normal threads */
.structItemContainer-group--sticky {
border-bottom: 7px solid;
color: xf-diminish(@xf-borderColor, 6%);
}
.structItemContainer-group--sticky {
background-color: @xf-paletteColor1;
}
.structItemContainer-group--sticky .structItem-title a:link,
.structItemContainer-group--sticky .structItem-title a:visited {
color: @xf-paletteColor4;
}
/* limit the size of images in posts and conversations */
.message .messageContent .messageText img {
max-width: 50%;
}
/* limit the size of images in threads */
.message-body img
{
max-width: 50% !important;
}
/* Underline links */
/* Can use a.link--internal */
a.link
{
text-decoration: underline;
}
/* remove node stats */
.node-stats {
display: none;
}
/* Font size of node stats
.node-stats dd {
font-size: 15px;
}
*/
/* Font size of node titles */
.node-title {
margin: 0;
padding: 0;
font-size: 16px;
font-weight: 400;
}
/* Size of node avatars */
.node-extra {
.avatar img:not(.cropImage) {
text-indent: 100%;
overflow: hidden;
white-space: nowrap;
word-wrap: normal;
display: block;
border-radius: inherit;
width: 70%;
height: 70%;
}
}
/* Font size of thread titles outside the thread */
.structItem-title {
font-size: 15px;
font-weight: 600;
margin: 0;
padding: 0;
}
/* Font size of thread titles within the thread */
.p-title-value {
padding: 0;
margin: 0 0 5px 0;
margin-right: 0px;
font-size: 16px;
font-weight: 550;
min-width: 0;
margin-right: auto;
}
/* Remove custom thread field */
.message-fields:last-child {
.pairs.pairs--columns {
display: none;
}
}
/* Editor toolbar button icon styling */
[data-cmd="clearFormatting"]
{
color: red !important;
}
[data-cmd="bold"]
{
color: #000099 !important;
}
[data-cmd="fontSize"]
{
color: green !important;
}
[data-cmd="strikeThrough"]
{
color: black !important;
}
[data-cmd="paragraphFormat"]
{
color: #bc6103 !important;
}
[data-cmd="xfList"]
{
color: #00b3b3 !important;
}
[data-cmd="insertLink"]
{
color: #3A0FFF !important;
}
[data-cmd="xfQuote"]
{
color: #7e4002 !important;
}
[data-cmd="xfInlineSpoiler"]
{
color: cadetblue !important;
}
[data-cmd="xfSpoiler"]
{
color: #8ac7db !important;
}
[data-cmd="undo"]
{
color: brown !important;
}
[data-cmd="redo"]
{
color: brown !important;
}
[data-cmd="textColor"]
{
color: purple !important;
}
[data-cmd="insertImage"]
{
color: cadetblue !important;
}
[data-cmd="xfMedia"]
{
color: #008AD8 !important;
}
[data-cmd="insertVideo"]
{
color: #008AD8 !important;
}
/* End editor toolbar button icon styling */
/* Format of node descriptions when viewing threads */
.p-description {
margin: 5px 0 0;
padding: 0;
font-size: 13px;
color: #1a1a1a;
}
After changing to Verdana and decreasing font sizes in Appearance > Style properties > Typography:
/* Border between sticky/normal threads */
.structItemContainer-group--sticky {
border-bottom: 7px solid;
color: xf-diminish(@xf-borderColor, 6%);
}
.structItemContainer-group--sticky {
background-color: @xf-paletteColor1;
}
.structItemContainer-group--sticky .structItem-title a:link,
.structItemContainer-group--sticky .structItem-title a:visited {
color: @xf-paletteColor4;
}
/* limit the size of images in posts and conversations */
.message .messageContent .messageText img {
max-width: 50%;
}
/* limit the size of images in threads */
.message-body img
{
max-width: 50% !important;
}
/* Underline links */
/* Can use a.link--internal */
a.link
{
text-decoration: underline;
}
/* remove node stats */
.node-stats {
display: none;
}
.node-meta {
display: none;
}
/* Font size of node stats
.node-stats dd {
font-size: 14px;
}
*/
/* Font size of node titles */
.node-title {
margin: 0;
padding: 0;
font-size: 14px;
font-weight: 400;
}
/* Size of node avatars */
.node-extra {
.avatar img:not(.cropImage) {
text-indent: 100%;
overflow: hidden;
white-space: nowrap;
word-wrap: normal;
display: block;
border-radius: inherit;
width: 70%;
height: 70%;
}
}
/* Size of nodes */
/* Font size of thread titles outside the thread */
.structItem-title {
font-size: 15px;
}
/* Font size of thread titles within the thread */
.p-title-value {
font-size: 18px;
}
/* Font size of prefix list */
.scPrefixList {
.label {
font-size: 90%;
}
}
/* Remove custom thread field */
.message-fields:last-child {
.pairs.pairs--columns {
display: none;
}
}
/* Editor toolbar button icon styling */
.fr-btn.fr-active:not(.fr-disabled)
{
background-color: @xf-pageBg;
}
[data-cmd="clearFormatting"]
{
color: red !important;
}
[data-cmd="bold"]
{
color: #000099 !important;
}
[data-cmd="fontSize"]
{
color: green !important;
}
[data-cmd="strikeThrough"]
{
color: black !important;
}
[data-cmd="paragraphFormat"]
{
color: #bc6103 !important;
}
[data-cmd="xfList"]
{
color: #00b3b3 !important;
}
[data-cmd="formatUL"]
{
color: #00b3b3 !important;
}
[data-cmd="insertLink"]
{
color: #3A0FFF !important;
}
[data-cmd="xfQuote"]
{
color: #7e4002 !important;
}
[data-cmd="xfInlineSpoiler"]
{
color: cadetblue !important;
}
[data-cmd="xfSpoiler"]
{
color: #8ac7db !important;
}
[data-cmd="undo"]
{
color: brown !important;
}
[data-cmd="redo"]
{
color: brown !important;
}
[data-cmd="textColor"]
{
color: purple !important;
}
[data-cmd="insertImage"]
{
color: cadetblue !important;
}
[data-cmd="xfMedia"]
{
color: #008AD8 !important;
}
[data-cmd="insertVideo"]
{
color: #008AD8 !important;
}
/* End editor toolbar button icon styling */
/* Format of node descriptions when viewing threads */
.p-description {
color: #1a1a1a;
}
/* Inline code from 80% to 100% */
.bbCodeInline {
font-size: 100%;
}
/* size and spacing of user info in threads */
.pairs.pairs--justified > dt {
float: left;
max-width: 100%;
margin-right: 1px;
}
.message-cell {
display: block;
vertical-align: top;
padding: 5px;
}
/*
.message-userExtras {
font-size: 11px;
}
*/
- Shrink avatars in threads https://xenforo.com/community/threads/avatar-size.135801/post-1183665
- Convert URLs to page titles {title} | {url} https://xenforo.com/community/threads/110607/
- Show user post counts/stats under avatar https://xenforo.com/community/threads/add-profile-counts-under-avatar.172089/
- Node and title length.
src/XF/Entity/Forum.php
,src/XF/Entity/Node.php
, andsrc/XF/Entity/Thread.php
. - Remove Thread Prefix from Thread Title.
- Disable automatic link shortening with ellipsis/periods/dots.
src/XF/BbCode/Renderer/Html.php
- Amazon SES Bounces Support https://xenforo.com/community/resources/amazon-ses-bounces-support.8319/
- App for Cloudflare https://xenforo.com/community/resources/digitalpoint-app-for-cloudflare%C2%AE.8750/
- Approval Queue Spam Link Highlighting https://xenforo.com/community/resources/approval-queue-spam-link-highlighting.8347/
- Add list of prefixes at top of forum Via [SC] Prefix Filter addon https://xenforo.com/community/resources/sc-prefix-filter.7165/
- Customize row below thread title https://xenforo.com/community/resources/cxf-customize-row-below-thread-title.6984/
- Conversation Folders https://xenforo.com/community/threads/conversation-folders.188620/
- Conversation Improvements by Xon https://xenforo.com/community/resources/conversation-improvements-by-xon.6553/
- Change Content Owner or Date https://xenforo.com/community/resources/change-content-owner-or-date.6124/
- Font Awesome Manager https://xenforo.com/community/resources/font-awesome-manager.8407/
- Lazy Image Loader https://xenforo.com/community/resources/lazy-load-img.6057/
- Limit slug URL length addon: https://xenforo.com/community/resources/limit-slug-url-length.9227/
- Original Poster Highlight https://xenforo.com/community/resources/al-original-poster-highlight.6134/
- Post Delete Time Limit https://xenforo.com/community/resources/post-delete-time-limit.6628/
- Reply to user https://xenforo.com/community/resources/cxf-reply-to-user.6328/
- Redis Cache https://xenforo.com/community/resources/redis-cache-by-xon.5562/
- Report Improvements https://xenforo.com/community/resources/report-improvements-by-xon.6905/
- Show tags on thread list https://xenforo.com/community/resources/xtr-show-tags-on-thread-list.8252/
- s9e/MediaSites https://xenforo.com/community/threads/s9e-media-sites.139274/
- Schedule content https://xenforo.com/community/threads/plan-a-thread-who-automatic-posts-at-a-certain-date-time.208545/post-1588975
- Search Improvements https://xenforo.com/community/resources/search-improvements.6838/
- Standard Library https://xenforo.com/community/resources/standard-library-by-xon.7915/
- Warning Improvements https://xenforo.com/community/resources/warning-improvements-by-xon.6240/
- What's New Digest (Weekly digest email) https://xenforo.com/community/resources/whats-new-digest.6596/
- Hide birthdate https://www.xendach.de/resources/hidebirthdate.433/ - (more info)
- [Andrew] Moderator Panel https://xenforo.com/community/resources/andrew-moderator-panel.8131/
- [AP] Character Counter https://xenforo.com/community/resources/ap-character-counter.8810/
- [Liam W.] Post Macros https://xenforo.com/community/resources/liam-w-post-macros.5631/
- [OzzModz] Post Areas https://xenforo.com/community/resources/ozzmodz-post-areas.6779/
- [OzzModz] Remove Thread Prefix From Page Title https://xenforo.com/community/resources/ozzmodz-remove-thread-prefix-from-page-title.8153/
- [OzzModz] Google Search https://xenforo.com/community/resources/ozzmodz-google-search.8508/
- [OzzModz] Spam Phrases Report https://xenforo.com/community/resources/ozzmodz-spam-phrases-report.8968/
- [OzzModz] Thread & Quick Reply Placeholders & Templates https://xenforo.com/community/resources/ozzmodz-thread-quick-reply-placeholders-templates.8167/ - an alternative for custom thread fields.
Click to expand signatures https://xenforo.com/community/threads/how-to-only-show-one-line-of-signature-behind-a-click-to-expand-button-for-multi-line-signatures.215263/
Display character limit/count https://xenforo.com/community/threads/display-post-character-limit.196477/
Moderate new users:
- With trophy points: https://xenforo.com/community/threads/how-to-moderate-new-users.15686/
- With user group promotions: https://xenforo.com/community/threads/forcing-all-of-a-single-users-posts-into-moderation-queue.33381/#post-387464 - "Follow message moderation rules" = "Submit content without approval". Create a new promotion for "manual approval" group, and "apply this promotion while" "User has posted no more than X messages".
- https://xenforo.com/docs/xf2/groups-permissions/#user-group-promotions
Moving threads to a new forum can change/kill the old URL. But I did it by "selecting all" within the thread. If you select the thread in the thread/forum view then "move thread" it gives you different options regarding "redirects". I chose the first/default "Do not leave a redirect" and it didn't change the URL at all.
"Leave a permanent redirect" leaves a "ghost thread" where the original one was. The "ghost thread" has a new URL. The moved thread in the new location has the old URL.
You can move single comments/posts without killing the URL, but when I did that (with both "copy" & "move") it moved it to the top position (OP) instead of the bottom, and there was no option to set the position. So it turned a comment into an OP thread, and turned the previous OP into a comment. https://xenforo.com/community/threads/can-you-append-moved-posts-onto-a-thread-rather-than-place-them-in-chronological-order.212610/
Maybe a bug, but I moved a thread to a private "moderator" forum and the original link still exists for normal users to view, but when they click on it it doesn't work.
I'd strongly recommend setting up one or more private testing subforums where you can move/copy/experiment beforehand with test posts to see exactly what will happen.
Allowing banned users to access appeals: https://xenforo.com/community/threads/can-i-give-banned-users-access-to-support-thread-node-only.219248/
Regex: Using regex for spam matching https://xenforo.com/community/threads/spam-phrases-could-also-inspect-thread-title-for-matches.137468/post-1286655
Discourage system: https://www.youtube.com/watch?v=3ubbZa4J2tQ?t=28m
Paid vs free discussion https://www.theadminzone.com/threads/new-forum-with-phpbb-instead-of-xenforo.155215/post-1184911
https://www.phpbb.com/ - free & open source. Seems very customizable. Should be able to do 300 char titles.
Used by VLC https://forum.videolan.org/ and https://forums.blurbusters.com/ - I like it but I don't see tags.
"Wasn't phpBB infamous for its never-ending parade of security flaws?" https://web.archive.org/web/20230609230406/https://old.reddit.com/r/RedditAlternatives/comments/14536mi/my_alternative_back_to_web_forums/ - https://archive.ph/ZdWNw#selection-4033.13-4033.14
Topic tags: https://www.phpbb.com/customise/db/extension/rh_topic_tags/
An extension to add flair to user profiles https://github.com/TheVilleOrg/phpbb-flair
https://www.discourse.org/ - Titles can be of an unlimited length https://meta.discourse.org/t/is-there-a-way-to-limit-max-and-min-no-of-characters-allowed-for-topic-replies/78043
The tag system seems nice https://meta.discourse.org/tag/moderation. But the overall navigation menu/ability seems poor. Though from the rotating screenshot examples here https://www.discourse.org/ it seems like "categories" may be the answer.
One of the main appeals seems to be the built-in restrictions on new accounts to limit spam?
1-click install on digitalocean https://marketplace.digitalocean.com/apps/discourse
Discourse vs phpBB: https://www.slant.co/versus/2789/17561/~discourse_vs_phpbb
Now federated with ActivityPub Plugin https://meta.discourse.org/t/activitypub-plugin/266794/117
Ranked #1 on this site https://www.slant.co/topics/898/viewpoints/7/~best-web-forum-software-packages~flarum
It looks like it has a built-in blog https://sheepishpatio.net/blog/501-2-year-anniversary-of-the-site
https://simplemachines.org/ Looks nice, similar to phpBB. Doesn't look like it has tags/flair built-in, but there are some mods for it:
- Super Simple Thread Tags https://www.simplemachines.org/community/index.php?topic=533673.0
- Tagging System For Topics https://www.simplemachines.org/community/index.php?topic=135761.0
https://www.wpbeginner.com/plugins/5-best-forum-plugins-for-wordpress/ - was recommended over using vBulletin. Someone else said vBulletin 3.x is better and WordPress is majorly insecure.
Invision & Xenforo seem to be the two main options https://www.theadminzone.com/threads/which-forum-software-is-the-best.147142/.
IPB/Invision $50-90/mo https://invisioncommunity.com/buy - used by https://www.ibspatient.org/community/forum/ and https://linustechtips.com.
Issues with Invision: https://xenforo.com/community/threads/bring-xenforo-to-the-fediverse.215471/post-1643471
Starting off more greedy than Reddit ended up after 10+ years https://xenforo.com/community/threads/bring-xenforo-to-the-fediverse.215471/page-3#post-1644349
Xenforo $60/mo https://xenforo.com/purchase/ + https://www.themehouse.com/ - used by overclock.net and more. XenForo wins the vote: https://www.theadminzone.com/threads/which-forum-software-is-the-best.147142/
Those are the costs for them to host the forum for you. Alterntaively, you can purchase their software and install it on your own server (as I did above) and the costs will be much less if you have a small-medium forum. My understanding is that IPB offers a "full suite" and charges more, and Xenforo lets you leave out the options you don't need and thus is cheaper for most people.
The network effect of Reddit and similar sites is valuable, and probably a large reason why they've grown so big. The convenience of having everything on one site with a single login is not trivial. Obviously, that comes with major downsides as well. Twitter, Facebook, Instagram, Youtube, and Reddit have all demonstrated the benefits & detriments of this.
I wrote on this blog about how search engines have an important role to play in breaking up the dependency people have on Reddit. There is a search engine dedicated to forums though -- board reader. It seems like a pretty good alternative to using "search query reddit".
Perhaps a Lemmy-like front end could be created to connect forums; making a forum-equivalent of Reddit. Discourse is implementing federation for their forums so they integrate with Mastodon, etc.
Below is a very common problem in managing disk space and data cleanup-specifically, temporary files and logs in some systems-explained in great detail in the GitHub Gist by Maximilian Kohler. This is a very common issue in development environments and systems where logs or cache files are never purged periodically, which may lead to huge storage problems.
In many ways, this gist would find a useful accompaniment in https://syntaxerror.site), since debugging and troubleshooting practices will help provide insight into the tasks that also have a place in system maintenance and the resolution of errors. While the Gist focuses on a practical example, SyntaxError.Site can provide additional context or strategies for avoiding related programming mistakes, especially when scripting automated cleanup or error-handling routines.
Both resources are quite helpful for developers who are into maintaining efficient and error-free environments.