Move runtime data into config directory
This commit is contained in:
@@ -8,8 +8,12 @@ Eine spielerische Web-App ("Choose Your Own Adventure") zum Planen gemeinsamer D
|
||||
|
||||
```text
|
||||
datetest/
|
||||
├── config/ # Persistente JSON-Konfiguration und Buchungen
|
||||
│ ├── appsettings.json # Admin-Passwort und optionale Namen
|
||||
│ ├── activities.json # Aktivitäten
|
||||
│ ├── dates_available.json # Verfügbare Termine
|
||||
│ └── dates_booked.json # Strukturierte Buchungen
|
||||
├── public/ # Statische Webseiten & Assets
|
||||
│ ├── appsettings.json # Konfiguration der Aktivitäten & Termine
|
||||
│ ├── index.html # Startseite ("Willst du mit mir gehen?")
|
||||
│ ├── datetime.html/.js # Datumsauswahl (Kalender)
|
||||
│ ├── activity.html/.js # Aktivitätsauswahl
|
||||
@@ -41,7 +45,6 @@ Trage in der `.env` deine Server- und SMTP-Zugangsdaten ein:
|
||||
| :--- | :--- | :--- |
|
||||
| `PORT` | HTTP-Port des Go-Servers | `8080` |
|
||||
| `WEB_DIR` | Verzeichnis der statischen Assets | `public` |
|
||||
| `BOOKED_DATES_FILE` | Speicherpfad für bereits gebuchte Termine | `booked_dates.json` |
|
||||
| `SMTP_HOST` | Postausgangsserver (SMTP) | `mail.example.com` |
|
||||
| `SMTP_PORT` | SMTP-Port (Standard meist 587 oder 465) | `587` |
|
||||
| `SMTP_USER` | Benutzername / E-Mail für SMTP-Auth | `absender@example.com` |
|
||||
@@ -51,18 +54,29 @@ Trage in der `.env` deine Server- und SMTP-Zugangsdaten ein:
|
||||
|
||||
*(Hinweis: Wenn `SMTP_HOST` oder `TO_EMAIL` leer bleiben, läuft der Server im Testmodus ohne E-Mail-Versand.)*
|
||||
|
||||
### 2. Aktivitäten & Termine anpassen (`appsettings.json`)
|
||||
### 2. Einstellungen und Daten
|
||||
|
||||
Passe in `appsettings.json` die zur Auswahl stehenden Aktivitäten, verfügbaren Tage und das Admin-Passwort an:
|
||||
Die persistenten Daten liegen in getrennten JSON-Dateien:
|
||||
|
||||
- **`adminPassword`**: Passwort für die Terminverwaltung unter `/admin`. Ändere den Standardwert `change-me`, bevor du die Anwendung veröffentlichst.
|
||||
- **`activities`**: Liste von Objekten mit `name`, `icon` (Unicode Emoji), `type` (`short` oder `long`) und optional `disabled` (`true` blendet die Aktivität vorübergehend aus).
|
||||
- **`availableDates`**: Liste von verfügbaren Tagen mit `date` (`YYYY-MM-DD`) und `type` (`short` oder `long`).
|
||||
- **`names`**: Optional vordefinierte Namen zur Auswahl (ist die Liste leer, wird ein Standard-Fallback angeboten).
|
||||
- **`activities.json`**: Liste von Objekten mit `name`, `icon` (Unicode Emoji), `type` (`short`, `long` oder `custom`) und optional `disabled` (`true` blendet die Aktivität vorübergehend aus).
|
||||
- **`dates_available.json`**: Liste von verfügbaren Tagen mit `date` (`YYYY-MM-DD`) und `type` (`short` oder `long`).
|
||||
- **`dates_booked.json`**: Strukturierte Buchungen mit `bookedAt`, `date`, `dateType`, `name` und den ausgewählten Aktivitäten inklusive Name, Typ und Icon.
|
||||
- **`names`**: Optional vordefinierte Namen zur Auswahl (ist die Liste leer, wird die Namensseite übersprungen).
|
||||
|
||||
Die Termin- und Aktivitätenlisten lassen sich über die passwortgeschützte Verwaltung unter `http://localhost:8080/admin` bearbeiten. Das Passwort bleibt dabei auf dem Server und wird nicht an Besucher ausgeliefert.
|
||||
|
||||
Bei Docker Compose werden `appsettings.json` und `booked_dates.json` dauerhaft unter `/docker/data/date` gespeichert. Beim ersten Start legt der Container die Einstellungen dort aus der im Image enthaltenen Vorlage an. Ändere danach den Standardwert `change-me` in `/docker/data/date/appsettings.json` oder übernimm vor dem ersten Start eine vorbereitete Konfigurationsdatei.
|
||||
Bei Docker Compose wird `/docker/data/date` als ein Volume nach `/app/config` eingebunden. Die vier JSON-Dateien müssen dort vor dem ersten Start vorhanden sein. Du kannst sie aus dem Projektordner initialisieren:
|
||||
|
||||
```bash
|
||||
mkdir -p /docker/data/date
|
||||
cp config/appsettings.json /docker/data/date/appsettings.json
|
||||
cp config/activities.json /docker/data/date/activities.json
|
||||
cp config/dates_available.json /docker/data/date/dates_available.json
|
||||
cp config/dates_booked.json /docker/data/date/dates_booked.json
|
||||
```
|
||||
|
||||
Wenn bisher `/docker/data/date/booked_dates.json` verwendet wurde, übernimm die alten Buchungsdaten zuerst in `dates_booked.json`. Das neue Format speichert Buchungen als Objekte statt als reine Datumsstrings.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user