An internet relay chat robot and web-based graphical user interface, dance event, and other things mashed together

tBKwtWS 7620be47e6 botfixes vor 6 Jahren
rotbot 7620be47e6 botfixes vor 6 Jahren
website 8c76ba5b78 minor downgrade for stable version vor 6 Jahren
.gitignore 6790b1ff71 semanticuiforms vor 6 Jahren
README.md d0807c19c7 bot stability vor 6 Jahren
package.json 48342d35e8 a bunch of work vor 6 Jahren
requirements.txt 6790b1ff71 semanticuiforms vor 6 Jahren
semantic.json 48342d35e8 a bunch of work vor 6 Jahren
uwsgi_params 5d3c043e1c webserver stuff vor 6 Jahren
website_nginx.conf 6cc6516a42 nginx ssl vor 6 Jahren
website_uwsgi.ini abed9b53fd miroring vor 6 Jahren

README.md

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
  2. sudo su - postgresql
  3. psql
  4. `CREATE ROLE website WITH LOGIN PASSWORD '';
  5. CREATE DATABASE website WITH OWNER = website;
  6. CREATE ROLE pyrot WITH LOGIN PASSWORD '';
  7. GRANT ALL ON DATABASE website TO pyrot;
  8. Connect to database website
  9. GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO pyrot;
  10. GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO pyrot;

DB authentication

For now, set the database authentication details in the following files:

  1. website/website/settings.py
  2. rotbot/bot.py

Create the database tables and static files.

  1. cd website
  2. python manage.py makemigrations
  3. python manage.py migrate
  4. python manage.py collectstatic

uwsgi

  1. sudo ln -s /opt/h0v1n8-website-env/website_uwsgi.ini /etc/uwsgi/vassals/website_uwsgi.ini
  2. sudo nano /etc/rc.local:

    #!/bin/sh
    
    /opt/h0v1n8-env/bin/uwsgi --emperor /etc/uwsgi/vassals/ --daemonize /var/log/uwsgi-emperor.log`
    
    exit 0
    

Test with: bin/uwsgi --emperor /etc/uwsgi/vassals/ TBD /etc/rc.local:

Nginx configuration

  1. See if you to change STATIC_ROOT in website/website/settings.py.
  2. sudo ln -s /opt/h0v1n8-website-env/website_nginx.conf /etc/nginx/sites-enabled/website_nginx.conf
  3. sudo systemctl reload nginx

Testing the project.

webgui

  1. cd website
  2. python manage.py runserver

Running the project

pyRot

The pythonic version of RotBot, there have been 5 earlier versions including winRot and javaRot.

  1. cd rotbot
  2. 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