diff --git a/docs/deploy.md b/docs/deploy.md index 95ec4d4..4227e9a 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -63,17 +63,31 @@ which php; php -v # PHP muss >= 8.1 sein git --version ``` -Drei Dinge, die du für später brauchst: den **Pfad aus `pwd`**, den **Pfad aus -`which php`** und die **PHP-Version**. Ist `php` älter als 8.1, prüfe nach -versionierten Binaries (`ls /usr/bin/php*`, `ls /usr/local/bin/php*`) und nimm den -passenden absoluten Pfad; die Cronjobs brauchen ihn ohnehin absolut. +**Ergebnis vom 31.07.2026 auf diesem Webspace:** + +| | | +|---|---| +| HOME | `/www/htdocs/w01ca75d` | +| SITE | `/www/htdocs/w01ca75d/tsv08kulmbach-website` | +| PHP (CLI, für Cron) | `/usr/bin/php` — 8.3.29 | +| Composer | 2.9.8, global vorhanden | +| Alte CMS-Seite (Rückweg) | `/www/htdocs/w01ca75d/tsv08kulmbach.de` | + +All-Inkl legt pro Domain einen Ordner im Home an, das Home selbst ist also kein +Docroot. Der Ordnername `tsv08kulmbach.de` ist von der alten Seite belegt, deshalb +heißt der neue `tsv08kulmbach-website`. Die anderen TSV-Ordner +(`2024.`, `hall-of-fame.`, `kabinendienst.`, `kreisliga-reise.`) sind eigene +Subdomains und vom Umschalten nicht betroffen. + +Achtung: das ist die **CLI**-Version. Welches PHP der Webserver nimmt, stellt KAS pro +Domain getrennt ein (Schritt C1). ### B2 [SSH] Repo klonen ```bash cd ~ -git clone https://onion.breadcrumb-online.de/fs/tsv08kulmbach-website.git tsv08kulmbach -cd tsv08kulmbach && pwd # diesen Pfad notieren: das ist SITE +git clone https://onion.breadcrumb-online.de/fs/tsv08kulmbach-website.git tsv08kulmbach-website +cd tsv08kulmbach-website && pwd # diesen Pfad notieren: das ist SITE ``` Der Klon lädt gut 460 MB (Website plus das Vereinsmaterial der Dateiablage), das @@ -87,7 +101,7 @@ Die Datei ist gitignored, also nicht im Klon. Vom Mac hochladen: ```bash # [lokal], in einem zweiten Terminal scp config/config.production.php \ - @.kasserver.com:~/tsv08kulmbach/config/config.php + @.kasserver.com:~/tsv08kulmbach-website/config/config.php ``` Wichtig: Ziel heißt `config.php`, nicht `config.production.php`. Danach [SSH]: @@ -99,7 +113,7 @@ chmod 600 config/config.php # enthält SMTP-Passwort und app_secret ### B4 [SSH] Composer-Abhängigkeiten ```bash -cd ~/tsv08kulmbach +cd ~/tsv08kulmbach-website composer install --no-dev --optimize-autoloader ``` @@ -132,7 +146,7 @@ Schreiben muss die Seite in `storage/logs`, `storage/cache`, `storage/ratelimit` ### C1 [KAS] Subdomain anlegen und schützen 1. **Domains** → Subdomain `neu.tsv08kulmbach.de` anlegen. -2. Als Verzeichnis **`/tsv08kulmbach/public`** eintragen, nicht das Repo-Root. +2. Als Verzeichnis **`/tsv08kulmbach-website/public`** eintragen, nicht das Repo-Root. Damit liegen `app/`, `config/`, `data/`, `storage/` und `vendor/` außerhalb des Docroots und sind grundsätzlich nicht per URL erreichbar. (Die Root-`.htaccess` ist nur ein Notnagel für Hoster, die das nicht können.) @@ -155,7 +169,7 @@ holen die Syncs. Vor dem ersten Lauf fehlen Tabellen, Spiele und der Instagram-Block (die Seite bricht deswegen nicht, sie zeigt Ersatzinhalte). ```bash -cd ~/tsv08kulmbach +cd ~/tsv08kulmbach-website php bin/matchcenter-sync.php # Spiele, Ergebnisse, Tabellen, Wappen php bin/instagram-sync.php # Posts und Bilder ``` @@ -227,8 +241,8 @@ PHP-Pfad kommen aus B1/B2. 23 3 * * 0 cd SITE && PHP bin/log-rotate.php > /dev/null 2>&1 ``` -`SITE` und `PHP` durch die echten absoluten Pfade ersetzen, etwa -`cd /www/htdocs/w01ca75d/tsv08kulmbach && /usr/bin/php bin/…`. Die Minuten sind +`SITE` und `PHP` durch die echten absoluten Pfade ersetzen, auf diesem Webspace also +`cd /www/htdocs/w01ca75d/tsv08kulmbach-website && /usr/bin/php bin/…`. Die Minuten sind versetzt, damit sich zwei Läufe nicht überlappen. Alle Skripte sind CLI-only, sperren sich per Lock gegen Parallelläufe und lassen bei Fehlern den letzten guten Cache stehen — ein fehlgeschlagener Lauf schadet nie. @@ -251,7 +265,7 @@ unangetastet, nicht löschen. ### E2 [KAS] Domain umstellen **Domains** → `tsv08kulmbach.de` und `www.tsv08kulmbach.de` auf -**`/tsv08kulmbach/public`** zeigen lassen. PHP-Version prüfen, SSL muss für beide +**`/tsv08kulmbach-website/public`** zeigen lassen. PHP-Version prüfen, SSL muss für beide aktiv sein. ### E3 Sofort danach prüfen @@ -284,14 +298,14 @@ liegt und andere Menschen dort hochladen: ```bash # 1. [SSH] auf dem Server: neue Uploads sichern -cd ~/tsv08kulmbach +cd ~/tsv08kulmbach-website git add -A storage/dateien/uploads && git commit -m "Uploads vom Server" && git push # 2. [lokal] holen, dann entwickeln git pull # 3. [lokal] fertig, gepusht → [SSH] ausrollen -cd ~/tsv08kulmbach && git pull && php bin/preflight.php +cd ~/tsv08kulmbach-website && git pull && php bin/preflight.php ``` Nie in der anderen Reihenfolge. Details und Begründung in CLAUDE.md, Abschnitt