StaySense/docs/DEPLOYMENT.md

2.6 KiB

StaySense Deployment Guide (Linux + Nginx)

1. Voraussetzungen

  • Ubuntu/Debian Server mit sudo
  • Domain (optional, empfohlen)
  • Python 3.10+
  • Nginx
  • systemd

Install:

sudo apt update
sudo apt install -y python3 nginx
sudo useradd --system --create-home --shell /usr/sbin/nologin staysense || true

2. Code bereitstellen

sudo mkdir -p /opt/staysense
sudo chown -R $USER:$USER /opt/staysense
git clone <REPO_URL> /opt/staysense
sudo mkdir -p /opt/staysense/data
sudo chown -R staysense:staysense /opt/staysense/data
sudo chmod 2775 /opt/staysense/data

3. Initialisierung

cd /opt/staysense/backend
python3 -c "from db import init_db; init_db()"
python3 import_osm_overpass.py
python3 run_import_jobs.py --config ../docs/open_data_sources.json --prune-legacy

4. API als Service starten

  1. Service-Datei kopieren:
sudo cp /opt/staysense/deploy/systemd/staysense-api.service /etc/systemd/system/
  1. Secret setzen (Datei anpassen):
sudo nano /etc/systemd/system/staysense-api.service
# STAYSENSE_SERVER_SALT=... setzen
  1. Aktivieren:
sudo systemctl daemon-reload
sudo systemctl enable --now staysense-api.service
sudo systemctl status staysense-api.service

5. Import-Timer aktivieren

sudo cp /opt/staysense/deploy/systemd/staysense-import.service /etc/systemd/system/
sudo cp /opt/staysense/deploy/systemd/staysense-import.timer /etc/systemd/system/
sudo cp /opt/staysense/deploy/systemd/staysense-watchdog.service /etc/systemd/system/
sudo cp /opt/staysense/deploy/systemd/staysense-watchdog.timer /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now staysense-import.timer
sudo systemctl enable --now staysense-watchdog.timer
sudo systemctl list-timers | grep staysense

6. Nginx konfigurieren

sudo cp /opt/staysense/deploy/nginx/staysense.conf /etc/nginx/sites-available/staysense
sudo ln -s /etc/nginx/sites-available/staysense /etc/nginx/sites-enabled/staysense
sudo nginx -t
sudo systemctl reload nginx

7. API-Route im Frontend anpassen

Fuer Reverse Proxy /api kann in src/index.html vor app.js gesetzt werden:

<script>
  window.STAYSENSE_API_BASE = "/api";
</script>

Danach Nginx reloaden.

8. HTTPS (empfohlen)

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d staysense.example.com

9. Betrieb / Checks

curl -s http://127.0.0.1:8787/health
sudo journalctl -u staysense-api.service -f
sudo journalctl -u staysense-import.service -n 100
sudo journalctl -u staysense-watchdog.service -n 50