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.
 
 
 
 
 
Jiří Kalvoda a2ca047f55 Strategická: Další kousek webu 2 years ago
..
bin Strategická: Další kousek webu 2 years ago
hra Strategická: Další kousek webu 2 years ago
static Strategická: Init web serveru 2 years ago
README.md Strategická: Zobecnění vytváření účtů 2 years ago
config.py.example Strategická: Reforma webu 2 years ago
constraints.txt Strategická: Reforma webu 2 years ago
flask Strategická: Init web serveru 2 years ago
setup.py Strategická: Zobecnění vytváření účtů 2 years ago

README.md

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
# Přístup do orgočásti webu
bin/create_user --root root <heslo>

./flask run

# Po běžných úpravách není potřeba balíček přeinstalovávat

Instalace na produkční server

TODO: Upravit (momentálně pouze vykradeno)

# 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 mo-web (jako root)
adduser --system mo-web --shell /bin/bash
loginctl enable-linger mo-web

# Založit databázi (jako správce PostgreSQL)
psql -e 'CREATE ROLE mo_osmo'
psql -e 'CREATE ROLE "mo-web" LOGIN'
psql -e 'GRANT mo_osmo TO "mo-web"'	# a případně dalším uživatelům
psql -e 'CREATE DATABASE mo_osmo_test WITH OWNER=mo_osmo'

# Inicializovat databázi (už jako mo-web)
psql mo_osmo_test <db/db.ddl

# Založit adresář pro instanci
mkdir /akce/mo/osmo-test
chmod 770 /akce/mo/osmo-test
setfacl -m u:mo-web:rwx -m g:mo:rwx /akce/mo/osmo-test
setfacl -d -m u:mo-web:rwx -m g:mo:rwx /akce/mo/osmo-test

# Zbytek jako uživatel mo-web v /akce/mo/osmo-test
git clone <repozitář> src

# Vytvořit etc/config.py podle src/etc/config.py.example
# Vytvořit etc/uwsgi.ini podle src/etc/uwsgi.ini.example
cd src
bin/deploy

# Zpřístupnit socket Nginxu
setfacl -m u:www-data:x /akce/mo/osmo-test /akce/mo/osmo-test/var

# Inicializovat regiony v DB
# Obstarat si extra/ruian/ a extra/schools/parsed/ z jiné instance (nebo je znovu stáhnout)
. ../venv/bin/activate
bin/test-init	# případně podmnožinu

# Případně ručně otestovat, že uwsgi funguje
# uwsgi --ini etc/osmo.ini

# Založit ~/.config/systemd/user/osmo_test.service podle etc/osmo.service.example
systemctl --user daemon-reload
systemctl --user enable osmo_test.service
systemctl --user start osmo_test.service
systemctl --user status osmo_test.service

# Nastavit nginx:
location /osmo-test {
	include uwsgi_params;
	uwsgi_pass unix:/akce/mo/osmo-test/var/osmo.sock;
}

# Na instalaci nové verze pak stačí spustit bin/deploy

Mražení závislostí

pip freeze | grep -v '^osmo=' >constraints.txt