NForum is a simple light-weight forum written in Python using Django. It allows users to create their own threads or talk in already existing ones. It has a built-in upvote/downvote (reputation) system, achievements, alerts & more!
⚠️ The project is still under heavy development and should not be used in production in it's current state.
- Extremely easy to use UI (+ admin panel)
- Thread categories & subcategories
- Thread locking & pinning
- Thread prefixes
- User profiles (avatar, description, recent threads & posts)
- Reputation system (users can upvote or downvote each others' messages)
- Achievement system (users get achievements based on thread count, post count, upvotes, downvotes)
- Alerts (users get a notification when someone responds to their thread, are mentioned or their post is rated)
- Users are able to create their own threads (topics) or talk in already existing ones.
- Wiki (community can create and edit wiki pages)
- Basic customization (site name, logo, favicon title, description, short description)
- Customizable site color palette
Here a few pictures so you can see how NForum looks in action:
https://imgur.com/a/rmhtj9q
- Install Python and pip (https://www.python.org/downloads/).
- Create a new virtual environment (https://docs.python.org/3/tutorial/venv.html).
- Create a new
.env
file (in this directory) containing the following:SECRET_KEY = <django-secret-key> DATABASE_NAME = <name> DATABASE_USER = <user> DATABASE_PASSWORD = <password> DATABASE_PORT = <port> DATABASE_HOST = <host>
- Install the packages in requirements.txt (
pip install -r requirements.txt
). - Run the server! (
python manage.py runserver
)
NOTE: You also need a database (preferably MySQL) running in the background. Provide your database credentials in .env
.
You'll first need to create a super user using the following command:
python manage.py createsuperuser