Open
Description
SFML has been using SMF (Simple Machines Forum) for many years. While it's been a good enough experience, there are three problems that would encourage us to move away from SMF:
- The software foundation is decades old and there isn't a goal insight to completely modernize to a "safer" architecture
- The plugin system is beyond horrible, patching the actual core files with diff-patches, which is especially "fun" if you have multiple plugins patch the same file
- The theme is not mobile friendly, even with some adjustments it will probably always have certain limitations, as mobile usage was non-existent when SMF was originally created
Software Selection
Some of the Requirements:
- Easily self-hostable
- Non-commercial, or no recurring cost
- Preferable "boring tech", best matching our current stack (PHP, MariaDB, Nginx)
- No massive scaling required (max concurrent users ~300)
- Mobile-friendly
- Modern architecture
- Basic moderation tooling
Migration Path
- Evaluate Flarum
- SMF2 to Flarum migration script
- Ensure users are correctly migrated and can login
- Check if there's a possibility to request a password change and/or the hash is updated automatically
- Check performance
- Tag load times
- Discussion load times
- Search performance
- Extensions
- Traditional forum style: https://github.com/askvortsov1/flarum-categories
- Announce migration on the forum (EN & FR)
- Consider cleaning up spam user accounts (somehow)
- Clean up duplicated usernames
-
SELECT member_name, COUNT(*) FROM smf_members GROUP BY member_name HAVING COUNT(*) > 1
-
- Archive the French forums (as discussed)
- Remove the SubForums plugin, essentially merging the English and French forums
- Ensure forum names are unique to prevent tag collisions
- Move the forum to https://www.sfml-dev.org/forums/ without the en.* or fr.* subdomain
- Implement a redirections for en.* and fr.*
- Implement a redirection script for SMF links to Flarum links
- Can this be generic or does it need DB look ups?
- Consider fixing Old forum links without sub-domain fail in a 404 #148
- Put the forum in maintenance mode
- Do the data migration
- Switch to the new forum