You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.3 KiB

# Server na strategicou hru na SKSP2022
Velké poděkování patří Medvědovi a Jirkovi Setničkovi, jejichž kód vykrádám.
## Instalace vývojového prostředí
python3 -m venv venv
. venv/bin/activate
pip install wheel
pip install -c constraints.txt --editable .
# vytvořit hra/config.py podle config.py.example
# Jako admin postgresu
psql
postgres=# CREATE DATABASE ksp_strathra_devel WITH OWNER=$(UŽVATELSKÉ JMÉNO);
# Naplníme databázi
bin/db_init [--drop]
# Přístup do orgočásti webu
bin/create_user --org root <heslo>
#
bin/build nebo bin/update
./flask run
# Po běžných úpravách není potřeba balíček přeinstalovávat
## CMD ovládání
Některé části serveru se nedají ovládat přes web, je nutné pouštět skripty v adresáři
`bin`. Před spouštěním je nutné aktivovat venv!
Vytváření nové hry (konfigurace přepsáním programu):
./bin/create_game
Každý uživatel při vzniku dostane také testovací hru (parametry v `hra/lib.py`).
Ovládání hry:
./bin/control_game
Aby fungovali automatické kroky, je nutné nechat běžet
./bin/control_game [id] --autosteps
Vytváření (orgovského) účtu:
./bin/create_user [--org]
## Instalace na produkční server
# Pro systém s jádrem < 5.4 zvýšit net.core.somaxconn (jako root)
[ "`cat /proc/sys/net/core/somaxconn`" -lt 4096 ] && echo net.core.somaxconn=4096 >> /etc/sysctl.conf && sysctl -p
# Založit účet (jako root)
useradd -m -s /usr/bin/bash ksp-strathra-web
# Založit databázi (jako správce PostgreSQL)
psql -e -c 'CREATE ROLE ksp_strathra'
psql -e -c 'CREATE ROLE "ksp-strathra-web" LOGIN'
psql -e -c 'GRANT ksp_strathra TO "ksp-strathra-web"' # a případně dalším uživatelům
psql -e -c 'CREATE DATABASE ksp_strathra_pub WITH OWNER=ksp_strathra'
# Nastavit uživateli SSHčko (jako on)
mkdir .ssh
vi authorized_keys
# Pushnout data (jako svůj uživatel v složce s README)
bin/build nebo bin/update
bin/deploy
# Nainstalovat venv
python3 -m venv venv
. venv/bin/activate
pip install wheel
pip install -c constraints.txt --editable .
# Inicializovat databázi (už jako mo-web)
bin/db_init [--drop]
# Pustit web
uwsgi --http 127.0.0.1:8000 --master -p 4 -w hra.web:app
## Mražení závislostí
pip freeze | grep -v '^hra=' >constraints.txt