Strategická: README
This commit is contained in:
		
							parent
							
								
									ecc8e42d33
								
							
						
					
					
						commit
						8fe759b9ad
					
				
					 1 changed files with 87 additions and 0 deletions
				
			
		
							
								
								
									
										87
									
								
								server/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								server/README.md
									
									
									
									
									
										Normal file
									
								
							|  | @ -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 a new issue