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

148 lines
3.7 KiB
Markdown

# SIKWEB 2.0
## Installation with docker
### installing docker
install docker and docker-compose. On ubuntu this can be done with
```BASH
sudo apt-get install docker docker-compose
```
### Configuring db-image
```BASH
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
```
```SQL
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
```BASH
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:
```SQL
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`