feat: bootstrap webspace deploy and status-beacon landing page
Add public/index.php, private config bootstrap, FTPS deploy script, and complete todo/01 including Let's Encrypt, HTTPS redirect, and HSTS docs. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# 01 — Bootstrap, `.env`, Deployment
|
||||
|
||||
**Priorität:** high
|
||||
**Status:** erledigt (2026-06-11)
|
||||
**Abhängigkeiten:** keine
|
||||
**Blockiert:** 02, 03, 04, 05, 06
|
||||
|
||||
@@ -10,22 +11,38 @@ Lokales Repo mit dem Webspace verbinden und eine deploybare Grundstruktur anlege
|
||||
|
||||
## Checkliste
|
||||
|
||||
- [ ] `.env.example` nach `.env` kopieren
|
||||
- [ ] Plesk-User/Passwort, FTP, später SMTP in `.env` eintragen (nicht committen)
|
||||
- [ ] In Plesk Document Root prüfen (typisch `httpdocs/`)
|
||||
- [ ] PHP-Version notieren (Cron-Screenshot: 8.5.x)
|
||||
- [ ] Verzeichnis `public/` als Quelle für `httpdocs/` festlegen
|
||||
- [ ] Erstes Test-Deployment: `public/index.php` mit `phpinfo()` oder „hello“ — danach wieder entfernen
|
||||
- [ ] HTTPS für `0012.de` prüfen (Let's Encrypt in Plesk)
|
||||
- [ ] Optional: Deploy-Skript (`scripts/deploy.sh` rsync/lftp) — nur wenn gewünscht
|
||||
- [x] `.env.example` nach `.env` kopieren
|
||||
- [x] Plesk-User/Passwort, FTP in `.env` eintragen (nicht committen)
|
||||
- [x] Document Root: `httpdocs/` (Plesk-Standard)
|
||||
- [x] PHP-Version: 8.5.x (Plesk Cron)
|
||||
- [x] Verzeichnis `public/` als Quelle für `httpdocs/`
|
||||
- [x] Erstes Deployment: `public/index.php` (Status-Beacon Platzhalter)
|
||||
- [x] HTTPS Let's Encrypt in Plesk (gültig bis 2026-09-09)
|
||||
- [x] HTTP → HTTPS Redirect (301)
|
||||
- [x] HSTS (`Strict-Transport-Security`, max-age 15768000, includeSubDomains)
|
||||
- [x] Deploy-Skript: `scripts/deploy.sh` (FTPS/FTP via Python)
|
||||
|
||||
## Server-Layout (nach Deploy)
|
||||
|
||||
```
|
||||
0012.de/
|
||||
├── httpdocs/ ← public/
|
||||
│ └── index.php
|
||||
└── private/ ← nicht öffentlich
|
||||
├── .env
|
||||
├── config/bootstrap.php
|
||||
└── data/ ← später last-checks.json
|
||||
```
|
||||
|
||||
## Deploy
|
||||
|
||||
```bash
|
||||
./scripts/deploy.sh # upload
|
||||
./scripts/deploy.sh --dry-run
|
||||
```
|
||||
|
||||
## Akzeptanzkriterien
|
||||
|
||||
- FTP-Login funktioniert
|
||||
- `https://0012.de/` liefert eine Testseite
|
||||
- `.env` liegt lokal, ist in `.gitignore`
|
||||
|
||||
## Notizen
|
||||
|
||||
- Temporäre URL aus Kundenbereich nutzen, falls DNS noch propagiert
|
||||
- Firewall: Port 8443 (Plesk), 21/22 (FTP/SFTP je nach Anbieter)
|
||||
- [x] FTP-Login funktioniert (deploy.sh)
|
||||
- [x] `https://0012.de/` — Landing Page über TLS
|
||||
- [x] `.env` liegt lokal, ist in `.gitignore`
|
||||
|
||||
Reference in New Issue
Block a user