Produktions-Deployment¶
Empfohlene Architektur¶
Wichtig: Das Backend serviert im aktuellen Stand keine frontend/dist-Dateien automatisch.
1) Frontend builden¶
Artefakte liegen in frontend/dist/.
2) Backend als systemd-Service¶
Beispiel /etc/systemd/system/ripster-backend.service:
[Unit]
Description=Ripster Backend
After=network.target
[Service]
Type=simple
User=ripster
WorkingDirectory=/opt/ripster/backend
ExecStart=/usr/bin/env node src/index.js
Restart=on-failure
RestartSec=5
Environment=NODE_ENV=production
Environment=PORT=3001
Environment=LOG_LEVEL=info
[Install]
WantedBy=multi-user.target
Aktivieren:
sudo systemctl daemon-reload
sudo systemctl enable --now ripster-backend
sudo systemctl status ripster-backend
3) nginx konfigurieren¶
Beispiel /etc/nginx/sites-available/ripster:
server {
listen 80;
server_name ripster.local;
root /opt/ripster/frontend/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /ws {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
Aktivieren:
sudo ln -s /etc/nginx/sites-available/ripster /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Datenbank-Backup¶
Sicherheit¶
- Ripster hat keine eingebaute Authentifizierung.
- Für externen Zugriff mindestens Basic Auth + TLS + Netzwerksegmentierung/VPN einsetzen.
- Secrets nicht ins Repo committen (
.env, Settings-Felder).