Welcome to Muss’s documentation!¶
Muss is a 100% open source forum developed with Django and Ember.js.

Features
- Multiple forums and ordered by category.
- Support to subforums.
- Hit count by topics.
- Support to topics main in top in the forum.
- Support to rss to forums.
- Search topics in the all forums.
- Pre-moderation of topics with multiple moderators.
- Support of media files for topics.
- Infinite scroll for topics and comments.
- Notifications and email notifications.
- Notifications and comments in real time.
- Django-admin for moderation.
- Support check user online.
- Support English, Italian and Spanish languages.
- API REST with django-rest-framework.
- Custom configuration css.
- Editor Markdown.
- Messages for forums.
- Suggested Topics in topic.
- Open and Close topic.
- Support to likes in topics and comments.
- Check if a user is a troll.
- Support Open Graph.
To start using Muss forum, check out the Requirements and next the Quick Start Guide.
Contents¶
Requirements¶
The requirements necessary to setup Muss are:
- python3 and pip3
- virtualenv or virtualenvwrapper
- Python 3
- Node.js/npm
- Bower
- Ember-cli
- PostgreSQL
- Redis
Ready!? Continue to the Quick Start Guide!
Quick Start Guide¶
Download Muss forum Project¶
First, you need to download Muss from GitHub.
You can visit the repository webpage in Github and download it as a zip file.
You can also do the same using your terminal with:
$ git clone git@github.com:mapeveri/muss.git
Important
Make sure you have a redis installer.
Install the requirements¶
Next, located in the root directory project, install the packages dependencies inside your virtual environment:
$ pip install -r requirements.txt
Go to the folder /conf/ and rename file settings_local.py.txt to settings_local.py and .env.example to .env. Then configure that’s variables. These variables are to configure the database and secret key of Django.
Secret Django Key¶
Muss has the SECRET_KEY environment variable hidden. You can the generate the SECRET_KEY and export environment variable of this way:
Generating the SECRET_KEY¶
Locate in the root directory and type:
$ python script/django-secret-keygen.py
This will generate the characters combination value to SECRET_KEY
Defining the SECRET_KEY environment variable¶
Copy this value and paste it instead of your_secret_django_key value to the file conf/.env. With this previous step will be include your new Django SECRET_KEY inside your project
Migrating and create super user¶
We sync the changes to the database:
$ python manage.py migrate
$ python manage.py createsuperuser
Internationalization and Localization¶
Settings¶
The default language for this Project is English, and the internationalization is used to translate the text to Spanish and Italian languages.
If you want to change the translation language, you just need to modify the LANGUAGE_CODE variable in the file conf/settings.py.
Set variable GOOGLE_MAPS_API_KEY with API_KEY value of Google maps.
Translation¶
Go to the terminal, inside the muss folder and create the files to translate with:
$ python manage.py compilemessages
For change the lenguage default set in settings.py the language to use in the variable LANGUAGE_CODE.
Admin¶
In django admin go to application site and edit record with the full url of the site (Example: http://www.myforum.com).
Configuration forum¶
For custom forum go to application Configuration. In the application you can change design, upload logo and favicon, etc.
Frontend¶
Now, Go to the folder /static/muss and execute:
$ npm install
$ bower install
Continue to the Running Muss in Development!
Automated Installing with Ansible¶
Located in the root project directory, enter to the ansible folder and execute:
$ cd ansible
$ ansible-playbook playbook.yml
Running Muss in Development¶
Execute the Django backend:
$ python manage.py runserver
Execute the frontend with ember:
$ npm install -g ember-cli
$ ember s
Translate¶
Located in the root directory project execute:
# For make new messages run this command
$ python manage.py makemessages --ignore=static
# Compile the new message run this command
$ python manage.py compilemessages