|
|
|
# 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
|