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
- Fix your settings.py to use 'db' as host and correct user and password (configured above)
- 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