Files
kaffeekasse-saas/DEPLOY.md
T

56 lines
1.8 KiB
Markdown

# Deployment auf Netcup Webspace
## Zielbild
- Code unter einem Release-Pfad wie `/apps/kaffeekasse/current`
- Document Root in Plesk auf `/apps/kaffeekasse/current/public`
- `.env` ausserhalb des Webroots oder direkt im Projektverzeichnis ohne
Webzugriff
- Migrationen ueber `bin/migrate.php`
- zyklische Aufgaben ueber `bin/cron.php`
## Erstinstallation
1. Neue Domain oder Subdomain im Netcup WCP/Plesk anlegen.
2. Document Root auf das Verzeichnis `public/` des Releases zeigen lassen.
3. MySQL-Datenbank und separaten User anlegen.
4. Projekt per FTPES oder SFTP hochladen.
5. Installer unter `/install` aufrufen oder `.env` manuell setzen.
6. Alternativ oder zusaetzlich:
`/usr/local/php83/bin/php /apps/kaffeekasse/current/bin/migrate.php`
7. Plattform-Admin einloggen und ersten Mandanten registrieren.
## Scheduled Tasks
- Alle 5 Minuten:
`/usr/local/php83/bin/php /apps/kaffeekasse/current/bin/cron.php`
- Optional Healthcheck:
`/usr/local/php83/bin/php /apps/kaffeekasse/current/bin/healthcheck.php`
## Release-Prozess
1. `scripts/build-release.sh` erzeugt ein auslieferbares Paket.
2. Paket hochladen und entpacken.
3. `.env` und persistente `storage/`-Pfade sichern.
4. `bin/migrate.php` ausfuehren.
5. Healthcheck und Login pruefen.
## Sicherheitshinweise
- `public/` bleibt der einzige Webroot.
- `.env`, Dumps, Backups und `.git` duerfen nicht oeffentlich erreichbar sein.
- Fuer produktive Domains HTTPS erzwingen.
- Session-Cookies sind auf `HttpOnly`, `SameSite=Lax` und `Secure` ausgelegt.
- Tenant-Daten werden serverseitig ueber Session und Memberships zugeordnet.
## Git-Remote vorbereiten
Beispiel fuer spaeteres Pushen auf `git.ctb-it.de`:
```bash
git remote add origin ssh://git@git.ctb-it.de/namespace/kaffeekasse-saas.git
git push -u origin main
```
Die genaue URL haengt von eurem Namespace und dem Zielsystem ab.