207 lines
5.6 KiB
Markdown
207 lines
5.6 KiB
Markdown
# Netcup Deployment Guide - Kaffeekasse SaaS
|
|
|
|
Dieser Guide führt Sie Schritt für Schritt durch das Deployment der Kaffeekasse SaaS auf Netcup Webspace.
|
|
|
|
## Übersicht
|
|
|
|
Die Kaffeekasse SaaS ist bereits vollständig für Netcup Webspace vorbereitet. Dieses Deployment-Guide ergänzt die bestehende Dokumentation ([DEPLOY.md](../DEPLOY.md), [docs/go-live-checklist-netcup.md](go-live-checklist-netcup.md)) um praktische Schritte.
|
|
|
|
## Voraussetzungen
|
|
|
|
- Netcup Webspace mit PHP 8.3+ und MySQL
|
|
- FTP/SFTP Zugang zu Ihrem Webspace
|
|
- Domain oder Subdomain für die Anwendung
|
|
|
|
## Schritt 1: Lokale Vorbereitung
|
|
|
|
### 1.1 Deployment-Skript ausführen
|
|
|
|
```bash
|
|
# Im Projektverzeichnis
|
|
./scripts/deploy-netcup.sh
|
|
```
|
|
|
|
Das Skript erstellt:
|
|
- Ein Release-Paket (`build/kaffeekasse-saas-YYYYMMDD-HHMMSS.tar.gz`)
|
|
- Deployment-Anweisungen
|
|
- .htaccess Informationen
|
|
|
|
### 1.2 Umgebungskonfiguration anpassen
|
|
|
|
Bearbeiten Sie `.env.netcup` und passen Sie folgende Werte an:
|
|
|
|
```env
|
|
APP_URL=https://ihre-domain.tld
|
|
APP_KEY=ihr-32-stelliger-app-schluessel
|
|
DB_NAME=ihre_datenbank
|
|
DB_USER=ihr_db_benutzer
|
|
DB_PASS=ihr_db_passwort
|
|
MAIL_FROM=noreply@ihre-domain.tld
|
|
MAIL_REPLY_TO=support@ihre-domain.tld
|
|
RFID_SHARED_SECRET=ihr-sicherer-rfid-schluessel
|
|
```
|
|
|
|
**Wichtig:** Generieren Sie sichere, zufällige Werte für `APP_KEY` und `RFID_SHARED_SECRET`!
|
|
|
|
## Schritt 2: Netcup Webspace vorbereiten
|
|
|
|
### 2.1 Domain/Subdomain einrichten
|
|
|
|
1. Loggen Sie sich in das Netcup WCP (Webhosting Control Panel) ein
|
|
2. Erstellen Sie eine neue Domain oder Subdomain
|
|
3. Setzen Sie den Document Root auf: `/apps/kaffeekasse/current/public`
|
|
|
|
### 2.2 MySQL Datenbank erstellen
|
|
|
|
1. Erstellen Sie eine neue MySQL Datenbank
|
|
2. Erstellen Sie einen separaten Datenbankbenutzer
|
|
3. Gewähren Sie dem Benutzer alle Rechte auf die Datenbank
|
|
4. Notieren Sie sich die Zugangsdaten für die `.env` Datei
|
|
|
|
### 2.3 PHP Version einstellen
|
|
|
|
1. Stellen Sie die PHP Version auf 8.3 oder 8.4
|
|
2. Aktivieren Sie alle benötigten PHP Extensions (PDO, MySQL, etc.)
|
|
|
|
## Schritt 3: Upload und Installation
|
|
|
|
### 3.1 Dateien hochladen
|
|
|
|
```bash
|
|
# Per SFTP/FTP
|
|
# 1. Release-Paket nach /apps/kaffeekasse/ hochladen
|
|
# 2. .env.netcup als .env nach /apps/kaffeekasse/ hochladen
|
|
```
|
|
|
|
### 3.2 Entpacken und einrichten
|
|
|
|
```bash
|
|
# Auf dem Server (SSH) oder per File Manager
|
|
cd /apps/kaffeekasse
|
|
tar -xzf kaffeekasse-saas-*.tar.gz
|
|
mv kaffeekasse-saas-* current
|
|
mv .env current/
|
|
```
|
|
|
|
### 3.3 Verzeichnisberechtigungen
|
|
|
|
Stellen Sie sicher, dass folgende Verzeichnisse beschreibbar sind:
|
|
- `storage/`
|
|
- `storage/cache/`
|
|
- `storage/logs/`
|
|
- `storage/uploads/`
|
|
|
|
## Schritt 4: Installation
|
|
|
|
### Option A: Browser-Installer (empfohlen)
|
|
|
|
1. Öffnen Sie `https://ihre-domain.tld/install`
|
|
2. Folgen Sie den Anweisungen des Installers
|
|
3. Der Installer erstellt automatisch die Datenbanktabellen
|
|
|
|
### Option B: Manuelle Installation
|
|
|
|
```bash
|
|
# Per SSH auf dem Server
|
|
/usr/local/php83/bin/php /apps/kaffeekasse/current/bin/migrate.php
|
|
```
|
|
|
|
## Schritt 5: Cron-Jobs einrichten
|
|
|
|
### 5.1 Hauptcron (alle 5 Minuten)
|
|
|
|
```bash
|
|
*/5 * * * * /usr/local/php83/bin/php /apps/kaffeekasse/current/bin/cron.php
|
|
```
|
|
|
|
### 5.2 Healthcheck (täglich)
|
|
|
|
```bash
|
|
0 6 * * * /usr/local/php83/bin/php /apps/kaffeekasse/current/bin/healthcheck.php
|
|
```
|
|
|
|
## Schritt 6: SSL/HTTPS einrichten
|
|
|
|
1. Aktivieren Sie Let's Encrypt in Ihrem WCP
|
|
2. Erzwingen Sie HTTPS für die Domain
|
|
3. Testen Sie die SSL-Konfiguration
|
|
|
|
## Schritt 7: Tests durchführen
|
|
|
|
### 7.1 Grundfunktionen testen
|
|
|
|
1. **Startseite**: `https://ihre-domain.tld`
|
|
2. **Admin-Login**: `https://ihre-domain.tld/admin/login`
|
|
3. **Healthcheck**:
|
|
```bash
|
|
/usr/local/php83/bin/php /apps/kaffeekasse/current/bin/healthcheck.php
|
|
```
|
|
|
|
### 7.2 Vollständiger Test
|
|
|
|
1. Loggen Sie sich als Admin ein
|
|
2. Erstellen Sie einen Test-Mandanten
|
|
3. Loggen Sie sich als Mandant ein
|
|
4. Erstellen Sie Testprodukte und -buchungen
|
|
5. Prüfen Sie die Cron-Ausführung
|
|
|
|
## Schritt 8: Produktionsbereitschaft
|
|
|
|
### 8.1 Sicherheitscheck
|
|
|
|
- [ ] Nur `public/` ist über Web erreichbar
|
|
- [ ] `.env`, `.git`, Backups sind nicht öffentlich zugänglich
|
|
- [ ] HTTPS ist erzwungen
|
|
- [ ] Starke Passwörter für Admin und DB
|
|
|
|
### 8.2 Backup einrichten
|
|
|
|
- [ ] Tägliches DB-Backup
|
|
- [ ] `.env` Datei sichern
|
|
- [ ] `storage/uploads` sichern
|
|
- [ ] Release-Artefakte aufbewahren
|
|
|
|
### 8.3 Monitoring
|
|
|
|
- [ ] Externes Uptime-Monitoring
|
|
- [ ] Log-Überwachung
|
|
- [ ] Cron-Job Überwachung
|
|
|
|
## Troubleshooting
|
|
|
|
### Häufige Probleme
|
|
|
|
**Problem**: 500 Internal Server Error
|
|
- **Lösung**: Prüfen Sie Apache Error Logs und PHP Error Logs
|
|
- **Häufige Ursache**: Falsche Dateiberechtigungen oder .htaccess Probleme
|
|
|
|
**Problem**: Datenbank-Verbindungsfehler
|
|
- **Lösung**: Prüfen Sie DB-Zugangsdaten in `.env`
|
|
- **Tipp**: Testen Sie die Verbindung mit einem separaten PHP-Skript
|
|
|
|
**Problem**: Cron-Jobs laufen nicht
|
|
- **Lösung**: Prüfen Sie PHP-Pfad und Dateiberechtigungen
|
|
- **Tipp**: Testen Sie Cron-Jobs manuell per SSH
|
|
|
|
### Log-Dateien
|
|
|
|
- **Apache Error Log**: Meist in `/var/log/apache2/error.log` oder über WCP
|
|
- **PHP Error Log**: Konfigurierbar in PHP-Einstellungen
|
|
- **Application Logs**: `storage/logs/`
|
|
|
|
## Support und weitere Informationen
|
|
|
|
- **Vollständige Checkliste**: [docs/go-live-checklist-netcup.md](go-live-checklist-netcup.md)
|
|
- **Deployment-Dokumentation**: [DEPLOY.md](../DEPLOY.md)
|
|
- **Betriebshandbuch**: [RUNBOOK.md](../RUNBOOK.md)
|
|
|
|
## Nächste Schritte nach Go-Live
|
|
|
|
1. Überwachen Sie die Anwendung in den ersten Tagen intensiv
|
|
2. Richten Sie regelmäßige Backups ein
|
|
3. Planen Sie Updates und Wartungsfenster
|
|
4. Dokumentieren Sie Ihre spezifische Konfiguration
|
|
|
|
---
|
|
|
|
**Hinweis**: Dieser Guide basiert auf der aktuellen Netcup Webspace-Konfiguration. Bei Änderungen der Hosting-Umgebung können Anpassungen erforderlich sein. |