Skip to content

Advanced set up: server deployment

Soya edited this page Oct 28, 2020 · 1 revision

Not Running Docker i.e. on the server

install required linux packages if on linux

  • sudo apt-get install libmysqlclient-dev python-dev

install virtualenv and python packages

  • /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

install required python packages

  • pip install mysql-python
  • pip install -r requirements.txt

configuration

  • 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

setup the database

  • 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 root@localhost;

install schema and create superuser

  • python manage.py syncdband create superuser
  • Convert schema app to be managed by South: python manage.py schemamigration schema --initial
  • Then do fake migration: python manage.py migrate schema 0001 --fake

run murmur server

  • Webserver: python manage.py runserver 0.0.0.0:8000 (check here for details)

Email Instructions

Setting for relay & outgoing server is in config/settings.py (Double check you open firewall for the ports)

Postfix setting (if you are using postfix as a relay system)

If you are using Postfix, you should update two postfix files:

  1. master.cf: add a line RELAY_PORT_YOU_SPECIFIED_at_config/settings.py inet n - n - - smtpd
  2. 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.

run murmur server

  • If running email server: lamson start
    • ⚠️ If it is not running without any error msg or throws connection 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.

enable daily digest feature

  • crontab -e and add a line 0 */24 * * * python ABSOLUTE_DIRECTORY/manage.py digest