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