Jiří Kalvoda
2 years ago
1 changed files with 87 additions and 0 deletions
@ -0,0 +1,87 @@ |
|||
# 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_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 |
Loading…
Reference in new issue