DB
We're using postgres. For development there are 2 options:
Use a docker container for DB
Run the container:
docker run --name eventol-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=eventol -e POSTGRES_DB=eventol -p 5432:5432 -d postgres
And the database will be magically available on localhost:5432!
Dependencies needed on dev machine (tested for Debian jessie and sid):
$ sudo apt-get install python build-essential python-setuptools python-dev python-pip
$ sudo apt-get install binutils libproj-dev gdal-bin libgeoip1 python-gdal
$ sudo apt-get install libjpeg-dev libpng3 libpng12-dev libfreetype6-dev zlib1g-dev
$ sudo apt-get install jpegoptim optipng
$ sudo apt-get install postgresql-server-dev-9.4
Installation on Debian like systems (jessie+):
Install postgre, python and some dependencies
$ sudo apt-get install python build-essential python-setuptools python-dev python-pip
$ sudo apt-get install postgresql postgresql-client-9.4 postgresql-server-dev-9.4
$ sudo apt-get install binutils libproj-dev gdal-bin libgeoip1 python-gdal
$ sudo apt-get install postgresql-9.4-postgis-2.2
$ sudo apt-get install libjpeg-dev libpng3 libpng12-dev libfreetype6-dev zlib1g-dev
$ sudo apt-get install jpegoptim optipng
Configure postgre
$ sudo passwd postgres
$ sudo su - postgres
$ pg_dropcluster --stop 9.4 main
$ pg_createcluster --start -e UTF-8 9.4 main
$ psql postgres
postgres=# ALTER ROLE postgres PASSWORD '<password>';
(ctrl-d)
$ createuser --createdb eventol
postgres=# ALTER ROLE eventol PASSWORD '<password>';
$ psql
postgres# CREATE USER eventol PASSWORD 'my_passwd';
postgres# CREATE DATABASE eventol OWNER eventol ENCODING 'utf8';
If you want some administration tool for the database
$ sudo apt-get install pgadmin3
Python/Django project dependencies
Install python requirements
$ pip install -U -r requirements.txt
Django stuff
First of all, change in settings.py URLS, PATHS, DATABASE and EMAIL related settings with your specific configuration.
Then, model related stuff:
$ python manage.py migrate
$ python manage.py makemigrations api device event user activity
$ python manage.py migrate
$ python manage.py createsuperuser
$ python manage.py collectstatic
If you want to populate the db with some initial example data
$ python manage.py loaddata manager/initial_data.json
Update tranlations
$ django-admin makemessages --locale=es
$ django-admin compilemessages