Strategická: Produkční web
This commit is contained in:
parent
7d7df55564
commit
121927c51e
4 changed files with 28 additions and 44 deletions
|
@ -30,58 +30,34 @@ TODO: Upravit (momentálně pouze vykradeno)
|
||||||
# Pro systém s jádrem < 5.4 zvýšit net.core.somaxconn (jako root)
|
# 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
|
[ "`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)
|
# Založit účet (jako root)
|
||||||
adduser --system mo-web --shell /bin/bash
|
useradd -m -s /usr/bin/bash ksp-strathra-web
|
||||||
loginctl enable-linger mo-web
|
|
||||||
|
|
||||||
# Založit databázi (jako správce PostgreSQL)
|
# Založit databázi (jako správce PostgreSQL)
|
||||||
psql -e 'CREATE ROLE mo_osmo'
|
psql -e -c 'CREATE ROLE ksp_strathra'
|
||||||
psql -e 'CREATE ROLE "mo-web" LOGIN'
|
psql -e -c 'CREATE ROLE "ksp-strathra-web" LOGIN'
|
||||||
psql -e 'GRANT mo_osmo TO "mo-web"' # a případně dalším uživatelům
|
psql -e -c 'GRANT ksp_strathra TO "ksp-strathra-web"' # a případně dalším uživatelům
|
||||||
psql -e 'CREATE DATABASE mo_osmo_test WITH OWNER=mo_osmo'
|
psql -e -c 'CREATE DATABASE ksp_strathra_pub WITH OWNER=ksp_strathra'
|
||||||
|
|
||||||
# Inicializovat databázi (už jako mo-web)
|
# Nastavit uživateli SSHčko (jako on)
|
||||||
psql mo_osmo_test <db/db.ddl
|
mkdir .ssh
|
||||||
|
vi authorized_keys
|
||||||
|
|
||||||
# Založit adresář pro instanci
|
# Pushnout data (jako svůj uživatel v složce s README)
|
||||||
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
|
bin/deploy
|
||||||
|
|
||||||
# Zpřístupnit socket Nginxu
|
# Nainstalovat venv
|
||||||
setfacl -m u:www-data:x /akce/mo/osmo-test /akce/mo/osmo-test/var
|
python3 -m venv venv
|
||||||
|
. venv/bin/activate
|
||||||
|
pip install wheel
|
||||||
|
pip install -c constraints.txt --editable .
|
||||||
|
|
||||||
# Inicializovat regiony v DB
|
# Inicializovat databázi (už jako mo-web)
|
||||||
# Obstarat si extra/ruian/ a extra/schools/parsed/ z jiné instance (nebo je znovu stáhnout)
|
bin/db_init
|
||||||
. ../venv/bin/activate
|
|
||||||
bin/test-init # případně podmnožinu
|
|
||||||
|
|
||||||
# Případně ručně otestovat, že uwsgi funguje
|
# Pustit web
|
||||||
# uwsgi --ini etc/osmo.ini
|
uwsgi --http 127.0.0.1:8000 --master -p 4 -w hra.web:app
|
||||||
|
|
||||||
# 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í
|
## Mražení závislostí
|
||||||
|
|
||||||
pip freeze | grep -v '^osmo=' >constraints.txt
|
pip freeze | grep -v '^hra=' >constraints.txt
|
||||||
|
|
6
server/bin/deploy
Executable file
6
server/bin/deploy
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
rsync static setup.py bin constraints.txt config.py.example ksp-strathra-web@localhost:web/ -LKr
|
||||||
|
rsync hra ksp-strathra-web@localhost:web/ -LKrm --exclude="config.py" --exclude '__pycache__'
|
||||||
|
|
|
@ -40,6 +40,7 @@ types-setuptools==65.3.0
|
||||||
types-SQLAlchemy==1.4.51
|
types-SQLAlchemy==1.4.51
|
||||||
types-urllib3==1.26.24
|
types-urllib3==1.26.24
|
||||||
typing_extensions==4.3.0
|
typing_extensions==4.3.0
|
||||||
|
uwsgi==2.0.20
|
||||||
uwsgidecorators==1.1.0
|
uwsgidecorators==1.1.0
|
||||||
visitor==0.1.3
|
visitor==0.1.3
|
||||||
webencodings==0.5.1
|
webencodings==0.5.1
|
||||||
|
|
|
@ -33,6 +33,7 @@ setuptools.setup(
|
||||||
'psycopg2',
|
'psycopg2',
|
||||||
'pyzbar',
|
'pyzbar',
|
||||||
'sqlalchemy[mypy]',
|
'sqlalchemy[mypy]',
|
||||||
|
'uwsgi',
|
||||||
'uwsgidecorators',
|
'uwsgidecorators',
|
||||||
# Používáme pro vývoj, ale aby je pylsp našel, musí být ve stejném virtualenvu
|
# Používáme pro vývoj, ale aby je pylsp našel, musí být ve stejném virtualenvu
|
||||||
# jako ostatní knihovny.
|
# jako ostatní knihovny.
|
||||||
|
|
Loading…
Reference in a new issue