Murmur uses Django with a MySQL backend (you can replace with any other backend Django supports). For email, we use postfix along with the python lamson library.
Please contact us for an example of the private file. You cannot run the program without it.
- change the root mysql account to one written in private file.
- make sure you can log in to mysql with the password in the command line:
mysql -u root -p
Recommended to use Linux
To install the Docker Engine select your Linux distribution and follow the instructions to install.
Currently you need a gmail account in order for Murmur to send verification emails, such as registration confirmation. In order for Murmur to log in to your gmail account you need to enable less secure logins.
Next set up the environment variables. The only variables you should need to set are your gmail username and password.
cp .env.example .env
- Fill in the correct values in
.env
for your gmail account. Make sure to enable insecure logins on gmail. - Use
make
to create the database and create a superuser account to login - Check it out on
localhost:8000
In order to stop docker you can simply run make stop
and run make start
to start it up again.
git clone https://github.com/haystack/murmur.git
sudo apt-get install libmysqlclient-dev python-dev
/usr/bin/python2.7
- pip:
sudo easy_install pip
sudo pip install virtualenv
- create a virtualenv for this project:
virtualenv murmur-env
- make sure your virtualenv is activated:
source murmur-env/bin/activate
pip install mysql-python
pip install -r requirements.txt
- edit database details in a new file called private.py. http_handler/settings.py looks for this file to populate database information:
MYSQL_LOCAL = { 'NAME': 'murmur', 'USER': 'admin', 'PASSWORD': 'password', 'HOST': 'localhost' }
- also in this private.py file, add your Amazon S3 settings:
AWS_STORAGE_BUCKET_NAME = 'bucket-name-goes-here'
AWS_ACCESS_KEY_ID = 'key-goes-here'
AWS_SECRET_ACCESS_KEY = 'secret-key-goes-here'
- create file /opt/murmur/env with single word containing "dev", "staging", or "prod" for the type of server you are setting up
- create file /opt/murmur/debug with single word containing "true" or "false" to turn on debug mode
- edit file /opt/murmur/website with single word containing "murmur" or "squadbox" to direct to the respective landing page
- If using Google integration, create a Google API project and enable the Gmail, People and Contacts APIs; generate an Oauth2 client_secrets.json file for this project and put this in the /gmail_setup/ directory
- Run this command at mysql
mysql -u root -p
create database murmur;
- Give privileges to the user that will access the database from django:
grant all privileges ON murmur.* TO admin@localhost;
- Create new migrations:
python manage.py makemigrations schema
- Apply the migrations:
python manage.py migrate --noinput
&&python manage.py migrate schema
- Sync registration schema:
python manage.py migrate --run-syncdb
- Create superuser
python manage.py createsuperuser
- Webserver:
python manage.py runserver 0.0.0.0:8000
(check here for details)
Setting for relay & outgoing server is in config/settings.py
(Double check you open firewall for the ports)
If you are using Postfix, you should update two postfix files:
master.cf
: add a lineRELAY_PORT_YOU_SPECIFIED_at_config/settings.py inet n - n - - smtpd
main.cf
:
mydestination =
local_recipient_maps =
local_transport = error: local mail delivery disabled
relay_domains = YOUR DOMAIN NAME
relay_transport = smtp:127.0.0.1:[RECEIVER PORT YOU SPECIFIED at config/settings.py]
Then reboot Postfix.
- If running email server:
lamson start
⚠️ If it is not running without any error msg or throwsconnection refused
error, then check your email port being used by other services (e.g.,netstat -peanut | grep ":8825"
) and check logs at logs/lamson.err. If the port is being used, use another port or kill the process using the port.
crontab -e
and add a line0 */24 * * * python ABSOLUTE_DIRECTORY/manage.py digest