|
|
@@ -1,108 +0,0 @@
|
|
|
-# Ablösung des PSA-Bestellsystems
|
|
|
-
|
|
|
-## Überblick
|
|
|
-
|
|
|
-**Dieses Dokument beschreibt einen Umbau, der noch nicht durchgeführt wurde.**
|
|
|
-
|
|
|
-Das PSA-Bestellsystem (`/var/www/html/psa`) wurde beim Herauslösen von `manage`
|
|
|
-nicht verändert. Es läuft unverändert weiter gegen seine eigenen Verzeichnisse
|
|
|
-`update-server/` und `backup-server/`. Dieses Dokument hält fest, was ein späterer
|
|
|
-Wechsel bedeuten würde – damit die Entscheidung bewusst getroffen werden kann und
|
|
|
-nicht nebenbei passiert.
|
|
|
-
|
|
|
-## Warum es kein automatischer Wechsel ist
|
|
|
-
|
|
|
-`manage` spricht ein anderes Protokoll. Der bisherige Stand:
|
|
|
-
|
|
|
-| | bisher (psa) | jetzt (manage) |
|
|
|
-|---|---|---|
|
|
|
-| Manifest | öffentlich abrufbar | Token-Pflicht |
|
|
|
-| Paket-Download | öffentlich abrufbar | Token-Pflicht |
|
|
|
-| Backup-Upload | ohne Anmeldung, nur Namensliste | Token-Pflicht |
|
|
|
-| Instanz-Identität | nur beim Backup, als Klartext-Name | Registereintrag mit Token-Hash |
|
|
|
-
|
|
|
-Es gibt bewusst keine Kompatibilitätsschicht für das alte Protokoll. Der bestehende
|
|
|
-Client kann also nicht einfach auf `manage` gezeigt werden; er müsste ersetzt werden.
|
|
|
-
|
|
|
-## Was zu tun wäre
|
|
|
-
|
|
|
-### 1. Instanz anlegen
|
|
|
-
|
|
|
-Im Manage-Server eine Instanz anlegen, zum Beispiel `psa-prod`, und das einmalig
|
|
|
-angezeigte Token notieren.
|
|
|
-
|
|
|
-### 2. Client einbauen
|
|
|
-
|
|
|
-`client-package/manage-client/` nach `psa/manage-client/` kopieren und
|
|
|
-`config.php` anlegen. Die Zuordnung der bisherigen Konstanten:
|
|
|
-
|
|
|
-| bisher in `psa/config.php` | neu in `psa/manage-client/config.php` |
|
|
|
-|---|---|
|
|
|
-| `UPDATE_MANIFEST_URL` | entfällt – ersetzt durch `MANAGE_SERVER_URL` + Token |
|
|
|
-| `UPDATE_WORK_DIR` | `MANAGE_WORK_DIR` |
|
|
|
-| `UPDATE_BACKUP_DIR` | `MANAGE_UPDATE_BACKUP_DIR` |
|
|
|
-| `BACKUP_DIR` | `MANAGE_BACKUP_DIR` |
|
|
|
-| `BACKUP_LOCAL_RETENTION` | `MANAGE_BACKUP_LOCAL_RETENTION` |
|
|
|
-| `BACKUP_AUTO_INTERVAL_SECONDS` | `MANAGE_BACKUP_AUTO_INTERVAL_SECONDS` |
|
|
|
-| `BACKUP_REMOTE_TARGETS` mit `type => managed` | entfällt – eingebaut, über `MANAGE_BACKUP_UPLOAD` |
|
|
|
-| `BACKUP_REMOTE_TARGETS` mit `s3`/`sftp`/`custom` | `MANAGE_BACKUP_REMOTE_TARGETS`, unverändertes Format |
|
|
|
-| – | `MANAGE_VERSION_FILE` = `includes/version.php`, `MANAGE_VERSION_CONSTANT` = `APP_VERSION` |
|
|
|
-
|
|
|
-Die bisherigen Backup-Quellen entsprechen genau:
|
|
|
-
|
|
|
-```php
|
|
|
-define("MANAGE_BACKUP_SOURCES", [
|
|
|
- ["as" => "data", "glob" => "data/*.json"],
|
|
|
- ["as" => "data/uploads", "dir" => "data/uploads"],
|
|
|
-]);
|
|
|
-```
|
|
|
-
|
|
|
-Damit sind die erzeugten Archive inhaltlich identisch zu den bisherigen.
|
|
|
-
|
|
|
-### 3. Oberfläche ersetzen
|
|
|
-
|
|
|
-`psa/admin/updater.php` würde durch eine Seite ersetzt, die
|
|
|
-`manage-client/ui/panel.php` einbindet – mit der bestehenden Anmeldeprüfung von
|
|
|
-psa davor. Der Statusblock in `psa/admin/settings.php`
|
|
|
-(`settingsGetUpdaterStatus()`) würde durch
|
|
|
-`manage-client/ui/status-partial.php` ersetzt.
|
|
|
-
|
|
|
-Der Aufruf `backupCreateAutomaticIfDue()` in `psa/admin/index.php` würde zu
|
|
|
-`manageBackupCreateAutomaticIfDue()`.
|
|
|
-
|
|
|
-### 4. Altes entfernen
|
|
|
-
|
|
|
-Danach könnten entfallen:
|
|
|
-
|
|
|
-- `psa/admin/updater.php`
|
|
|
-- `psa/includes/backup.php`
|
|
|
-- `psa/update-server/`
|
|
|
-- `psa/backup-server/`
|
|
|
-- `psa/scripts/create-update-zip.sh` (ersetzt durch die angepasste Vorlage aus
|
|
|
- `manage/scripts/create-release-zip.sh`)
|
|
|
-
|
|
|
-Die zugehörigen Abschnitte in `psa/docs/BACKUP_CONFIGURATION.md` und
|
|
|
-`psa/docs/CONFIG_REFERENCE.md` würden auf die Client-Dokumentation verweisen.
|
|
|
-
|
|
|
-### 5. Bestehende Daten
|
|
|
-
|
|
|
-- **Backups**: Die bisherigen Archive liegen auf dem alten Backup-Server. Sie
|
|
|
- lassen sich nicht automatisch übernehmen; entweder werden sie dort belassen, bis
|
|
|
- ihre Aufbewahrungsfrist abläuft, oder sie werden von Hand nach
|
|
|
- `manage/storage/backups/psa-prod/` kopiert und in `index.json` eingetragen.
|
|
|
-- **Releases**: Die ZIPs aus `psa/update-server/packages/` können über die
|
|
|
- Oberfläche unter **Releases** hochgeladen werden; Prüfsummen berechnet der
|
|
|
- Server neu.
|
|
|
-
|
|
|
-## Empfohlene Reihenfolge
|
|
|
-
|
|
|
-1. Manage-Server aufsetzen und mit einer **Testinstanz** vollständig durchspielen.
|
|
|
-2. Instanz `psa-test` anlegen und den Umbau an einer Kopie von psa erproben.
|
|
|
-3. Erst danach die Produktivinstallation umstellen – mit frischem Backup über den
|
|
|
- **alten** Weg, bevor der alte Weg abgeschaltet wird.
|
|
|
-4. Alte Server-Verzeichnisse einige Wochen laufen lassen, bevor sie entfernt werden.
|
|
|
-
|
|
|
-## Weiter
|
|
|
-
|
|
|
-- [ARCHITECTURE](ARCHITECTURE.md) – woher welcher Code stammt
|
|
|
-- [../client-package/docs/02_INTEGRATION.md](../client-package/docs/02_INTEGRATION.md) – Einbindung im Projekt
|