# Scope Django project, without virtual environment. Hint, to create a virtualenv in the current dir: `virtualenv --python=python3.7 .` This probably requires you to have built python3.7 manually and have debian packages installed: `python3-virtualenv python-virtualenv` Then activate the virtenv: `source bin/activate` To later deactive: `deactivate` # Prerequisites ## Python 3.7.4 Older versions might work, development environ and runtime environment run Python-3.7.4 Currently newer then in the repo's, if that's still the case, you might have to compile and built it yourself. If you notice you can' t use ssl when using pip, you should have installed `libssl-dev` before building python, or any of the following packages: `libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev` ## System packages needed for psycopg2 Install either postgresql-server-dev-X.Y or libpq-dev: `sudo apt install`... ## Python packages Install required pyton packages: `pip3 install -r requirements.txt` ## Postgres database with user. Fill in the passwords, don't change the database name, it's hardcoded in pyRot, for now. 1. `sudo apt install postrgresql` 1. `sudo su - postgresql` 1. `psql` 1. `CREATE ROLE website WITH LOGIN PASSWORD ''; 1. `CREATE DATABASE website WITH OWNER = website;` 1. `CREATE ROLE pyrot WITH LOGIN PASSWORD '';` 1. `GRANT ALL ON DATABASE website TO pyrot;` ## DB authentication For now, set the database authentication details in the following files: 1. website/website/settings.py 1. rotbot/bot.py ## Create the database tables. 1. `cd website` 1. `python manage.py makemigrations` 1. `python manage.py migrate` ## Nginx configuration 1. See if you to change `STATIC_ROOT` in `website/website/settings.py`. 1. `ln -s /etc/nginx/sites-enables/` 1. `sudo systemctl reload nginx` ## uwsgi uwsgi command: `/opt/h0v1n8-env/bin/uwsgi --emperor /etc/uwsgi/vassals/ --daemonize /var/log/uwsgi-emperor.log` # Testing the project. ## webgui 1. `cd website` 1. `python manage.py runserver` ## pyRot The pythonic version of RotBot, there have been 5 earlier versions including winRot and javaRot. 1. `cd rotbot` 1. `python bot.py 1` Where `1` is the ID of the server database record. # Edeting the look of the webgui ## Build Fomatic-ui 2.7.8 ### Requirements: NodeJS 10.15.3 & NPM 6.4.1 On debian: `sudo apt install npm`