rafalp / Misago

Misago is fully featured modern forum application that is fast, scalable and responsive.
http://misago-project.org
GNU General Public License v2.0
2.56k stars 529 forks source link
django docker forum forums htmx python

Misago

Test Coverage Works on Python 3.12 Community Chat

Development Status: 🍌 Bananas 🍌

Misago aims to be complete, featured and modern forum solution that has no fear to say 'NO' to common and outdated opinions about how forum software should be made and what it should do.

Screenshots

Forum index

Thread view

Production use

Misago implements all features considered "must have" on live internet forum:

Even more features will follow in future releases:

Development

Preferred way to run Misago development instances on your machine is with Docker, which makes it easy to spin up arbitrary number of instances running different code with separate databases and dependencies besides each other.

To start, clone the repository and run ./dev init command in your terminal. This will build necessary docker containers, install python dependencies and initialize the database. After command does its magic, you will be able to start development server using the docker compose up command.

After development server starts, visit the http://127.0.0.1:8000/ in your browser to see your Misago installation.

Admin Control Panel is available under the http://127.0.0.1:8000/admincp/ address. To log in to it use Admin username and password password.

The ./dev utility implements other features besides the init. Run it without any arguments to get the list of available actions.

Running Misago in development without dev

You may skip ./dev init and setup dev instance manually, running those commands:

  1. docker compose build: builds docker containers
  2. docker compose run --rm misago python manage.py migrate: runs migrations
  3. docker compose run --rm misago python manage.py createsuperuser: creates admin user
  4. docker compose up: starts dev server

Frontend

With exception of Admin Panel, Misago frontend relies heavily on React.js components backed by Django API. This application uses webpack for building.

Currently Misago's package.json defines following tasks:

To start work on custom frontend for Misago, fork and install it locally to have development forum setup. You can now develop custom theme by modifying assets in frontend directory, however special care should be taken when changing source JavaScript files as no test suite for those exists.

Misago defines template that allows you to include custom html and JavaScript code before Misago's JavaScript app is ran, named scripts.html.

Admin

Admin assets are stored in misago-admin directory and deployed to misago/static/misago/admin directory on build.

To work on admin's JavaScript or CSS, cd to misago-admin and install dependencies with npm install. Now you can use following actions:

Emails

Misago uses Mailpit to capture emails sent from the development instance.

To browse those emails, visit the http://127.0.0.1:8025 in your browser for the web interface.

Note for Windows users

If you are using Windows, you may see the following error during installation:

 => ERROR [misago 8/8] RUN ./dev bootstrap_plugins
------
 > [misago 8/8] RUN ./dev bootstrap_plugins:
0.385 /bin/sh: 1: ./dev: not found
------
failed to solve: process "/bin/sh -c ./dev bootstrap_plugins" did not complete successfully: exit code: 127

This error is caused by the dev file having its line endings converted from Unix format (LF) to Windows (CRLF) by git when you cloned the repository. To fix this, disable the automatic conversion of line endings in your git configuration and then clone the repository again.

Providing feedback and contributing

If you have found a bug, please report it either on the issue tracker or on the project's forums.

If you want to contribute to project, please see the contributing document.

For feature or support requests as well as general feedback please use the official forums. Your feedback means much to the project so please do share your thoughts!

There's also a Discord server for those looking for instant-messaging approach for getting in touch with Misago devs and users.

Authors

Rafał Pitoń and ❤️ contributors.

English sentences used within misago.faker.phrases were extracted from National Aeronautics and Space Administration Solar System Exploration Portal and are not copyrighted as per Media and content usage guidelines.

Copyright and license

Misago - Copyright © 2023 Rafał Pitoń This program comes with ABSOLUTELY NO WARRANTY.

This is free software and you are welcome to modify and redistribute it under the conditions described in the license. For the complete license, refer to LICENSE.rst