weitere Bearibeitung
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user