# 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 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`