Files
web2.0-backend/readme.md
T
2017-02-24 15:22:00 +02:00

3.7 KiB

SIKWEB 2.0

Installation with docker

installing docker

install docker and docker-compose. On ubuntu this can be done with

sudo apt-get install docker docker-compose

Configuring db-image

sudo docker-compose up db
# then configure following with another shell window
sudo docker exec -ti <image_name> bash  # image name can be found with sudo docker ps (propably web20_db_1)
mysql -u root -p # then enter root password which is in docker-compose.yml

CREATE USER 'sik'@'%' IDENTIFIED BY 'password123';
CREATE DATABASE sik DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON sik.* TO 'sik'@'%';

Then ctrl-d away from docker bash shell and shutdown db image with ctrl-c

Configuring web-image

  1. Fix your settings.py to use 'db' as host and correct user and password (configured above)
  2. run following commands
sudo docker-compose run web python manage.py migrate 
sudo docker-compose run web python manage.py makemigrations infoscreen members
sudo docker-compose run web python manage.py migrate 
sudo docker-compose run web python manage.py createsuperuser 

starting dev unit

sudo docker-compose up

now you should have dev environment running on localhost:8000

NOTE: as your working dir (web2.0) is mounted by images changes will be reflected immediately. no rebuilding needed. migrations and makemigrations must still be run separately though. see examples above

Installation to python virtual env

Create a virtual environment for python

virtualenv -p python3 virtualenv.sikweb

Clone this repository and enter it

Set up your SSH key authentication in GitLab Profile Settings. Then clone the repository:

git clone git@sika.sahkoinsinoorikilta.fi:vtmk/web2.0.git
cd web2.0

Change to the development branch:

git checkout develop

Activate virtualenv (assuming we are at the root of this repository and virtualenv is one level above)

. ../virtualenv.sikweb/bin/activate

Install Mariadb and create necessary tables

Run the following commands to install dependencies and to run the mariadb installation script

sudo apt-get install mariadb-server libmysqlclient-dev python3-dev libffi-dev python3-cffi libssl-dev
sudo mysql_secure_installation
# Setup root password and say yes to all other questions
sudo mysql -u root -p
# Log in with your new password

Create a user called 'sik' with password 'password123' and create the db

PLEASE CHANGE THE PASSWORD TO SOMETHING MORE SECURE!

Paste the following into the mysql client prompt:

CREATE USER 'sik'@'localhost' IDENTIFIED BY 'password123';
CREATE DATABASE sik DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `sik\_%` . * TO 'sik'@'%' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON sik . * TO 'sik'@'localhost' IDENTIFIED BY 'password123';

Install required python modules

pip install --upgrade pip
pip install -r requirements.txt

Configure Django settings

cp sikweb/settings-sample.py sikweb/settings.py

Change the following fields in sikweb/settings.py if you are not using the default values:

NAME (default: sik)
USER (default: sik)
PASSWORD (default: password123)

under DATABASES -> 'default' around line 80.

Run migrations

./manage.py migrate

You should be now have succesfully set up a development version of SikWeb 2.0

Running

Activate virtualenv

Assuming we are on root of this repo and virtualenv is one step above:

. ../virtualenv.sikweb/bin/activate

Use runserver command

./manage.py runserver

or

./manage.py runserver 0.0.0.0:8000

if you need to connect from anywhere else than localhost.

Run unit tests

./manage.py test -v 2