Skip to content
Snippets Groups Projects

AURA Steering: Program Scheduler

Installation

If you have a working Docker environment, do:

$ docker build -t pv_container .
$ docker run -p 8000:8000 -d pv_container:latest

and log into it at http://127.0.0.1:8000/admin/ with username "admin" and password "admin". Full setup without Docker is done as described below.

To get setup you must have the following installed:

  • PostgresSQL or MySQL-Client Development libraries
  • JPEG library development files
  • Python 3.5 including Development files
  • virtualenv 1.11

In Debian or Ubuntu (or derivatives) you should be able to achieve this with this command:

Using PostgreSQL:

$ sudo apt-get install postgresql postgresql-contrib libjpeg-dev python3.6 virtualenv

Using MySQL:

$ sudo apt-get install default-libmysqlclient-dev libjpeg-dev python3.6 virtualenv

Setting up the environment

Create a virtual environment where the dependencies will live:

$ virtualenv -p python3.6 python
$ source python/bin/activate
(python)$

Change into the base directory of this software and install the project dependencies:

(python)$ pip3 install -r requirements.txt

Setting up the configuration

By default the project is set up to run on a SQLite database.

Create a file pv/local_settings.py and add at least the following line:

SECRET_KEY = 'secret key'

(obviously replacing "secret key" with a key of your choice).

Setting up PostgreSQL

We recommend using PostgreSQL in order to be able to use the collation utf8mb64_unicode_ci and thus being able to display all languages.

To use PostgreSQL, add the following to your local_settings.py (before migrating) and add your credentials:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '',
        'USER': '',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '5432'
    }
}

Setting up MySQL

Note: When adding your database, make sure you don't use the collation utf8mb4_unicode_ci or you will get a key length error during migration. (use e.g. utf8_general_ci instead).

To use MySQL, add the following to your local_settings.py (before migrating):

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': os.path.join(PROJECT_DIR, 'mysql.cnf'),
        },
    }
}

Create a file pv/mysql.cnf and give your MySQL credentials:

[client]
database =
host = localhost
port = 3306
user =
password =
default-character-set = utf8

Setting up the database

Then run:

(python)$ python manage.py migrate
(python)$ python manage.py loaddata program/fixtures/*.yaml

Open pv/local_settings.py again and add the line:

USE_TZ = False

Adding an admin user

In order to create an admin user (which you will need to login to the webinterface after the next step) run:

(python)$ python manage.py createsuperuser

Running a web server

In development you should run:

(python)$ python manage.py runserver

After this you can open http://127.0.0.1:8000/admin in your browser and log in with username "admin" and password "admin".

Make sure to change your password by visiting http://127.0.0.1:8000/admin/auth/user/1/password/