Files
beauty-bookings/README.md
elpatron 2ddd0704d7 Add interactive map to Impressum with configurable coordinates
- Add OpenStreetMap iframe to legal page showing business location
- Support ADDRESS_LATITUDE and ADDRESS_LONGITUDE environment variables
- Generate dynamic map URLs based on configured coordinates
- Include link to full map view
- Update legal-config.ts interface to include latitude/longitude
- Document new environment variables in README.md
- Use Kiel coordinates as default (54.3233, 10.1228)
2025-09-30 18:52:11 +02:00

5.6 KiB

Stargirlnails Kiel - Nail Salon Booking System

Ein vollständiges Buchungssystem für Nagelstudios mit Admin-Panel, Kalender und E-Mail-Benachrichtigungen.

Dependencies

Setup

1. Umgebungsvariablen konfigurieren

Kopiere die .env.example Datei zu .env und konfiguriere deine Umgebungsvariablen:

cp .env.example .env

2. Admin-Passwort Hash generieren

Das Admin-Passwort wird als Base64-Hash in der .env Datei gespeichert. Hier sind verschiedene Methoden, um einen Hash zu generieren:

PowerShell (Windows)

# Einfache Methode mit Base64-Encoding
$password = "dein_sicheres_passwort"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($password)
$hash = [System.Convert]::ToBase64String($bytes)
Write-Host "Password Hash: $hash"

# Alternative mit PowerShell 7+ (kürzer)
$password = "dein_sicheres_passwort"
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($password))

Node.js (falls verfügbar)

// In der Node.js Konsole oder als separates Script
const password = "dein_sicheres_passwort";
const hash = Buffer.from(password).toString('base64');
console.log("Password Hash:", hash);

Online-Tools (nur für Entwicklung)

3. .env Datei konfigurieren

Bearbeite deine .env Datei und setze die generierten Werte:

# Admin Account Configuration
ADMIN_USERNAME=owner
ADMIN_PASSWORD_HASH=ZGVpbl9zaWNoZXJlc19wYXNzd29ydA==  # Dein generierter Hash

# Domain Configuration
DOMAIN=localhost:5173  # Für Produktion: deine-domain.de

# Email Configuration
RESEND_API_KEY=your_resend_api_key_here
EMAIL_FROM=noreply@yourdomain.com
ADMIN_EMAIL=admin@yourdomain.com

# Stornierungsfrist (in Stunden)
MIN_STORNO_TIMESPAN=24

# Legal Information (Impressum/Datenschutz)
COMPANY_NAME=Stargirlnails Kiel
OWNER_NAME=Inhaber Name
ADDRESS_STREET=Liebigstr. 15
ADDRESS_CITY=Kiel
ADDRESS_POSTAL_CODE=24145
ADDRESS_COUNTRY=Deutschland
ADDRESS_LATITUDE=54.3233  # Optional: GPS-Koordinaten für Karte
ADDRESS_LONGITUDE=10.1228  # Optional: GPS-Koordinaten für Karte
CONTACT_PHONE=+49 431 123456
CONTACT_EMAIL=info@stargirlnails.de
TAX_ID=12/345/67890  # Optional
VAT_ID=DE123456789  # Optional
COMMERCIAL_REGISTER=HRB 12345  # Optional
RESPONSIBLE_FOR_CONTENT=Inhaber Name
DATA_PROTECTION_RESPONSIBLE=Inhaber Name
DATA_PROTECTION_EMAIL=datenschutz@stargirlnails.de
THIRD_PARTY_SERVICES=Resend (E-Mail-Versand),Google Analytics  # Komma-getrennt

4. Anwendung starten

# Dependencies installieren
pnpm install

# Entwicklungsserver starten
pnpm dev

Docker Deployment

Docker Build

# Docker Image erstellen
docker build -t stargirlnails-booking .

# Container starten
docker run -d \
  --name stargirlnails-app \
  -p 3000:3000 \
  --env-file .env \
  stargirlnails-booking

Docker Compose (empfohlen)

Erstelle eine docker-compose.yml Datei:

services:
  stargirlnails:
    build: .
    ports:
      - "3000:3000"
    env_file:
      - .env
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

Starten mit Docker Compose:

# Container starten
docker-compose up -d

# Logs anzeigen
docker-compose logs -f

# Container stoppen
docker-compose down

Produktions-Deployment

Für den produktiven Einsatz:

# Mit Docker Compose
docker-compose -f docker-compose.yml up -d

# Oder direkt mit Docker
docker run -d \
  --name stargirlnails-prod \
  -p 80:3000 \
  --restart unless-stopped \
  --env-file .env.production \
  stargirlnails-booking

Wichtige Produktions-Hinweise:

  • Verwende eine .env.production Datei mit Produktions-Konfiguration
  • Setze NODE_ENV=production in der Umgebungsdatei
  • Verwende einen Reverse Proxy (nginx, Traefik) für HTTPS
  • Überwache Container mit Health Checks

Features

  • 📅 Terminbuchung: Kunden können online Termine buchen
  • 💅 Behandlungsverwaltung: Admin kann Behandlungen hinzufügen/bearbeiten
  • 📆 Kalender-Ansicht: Übersichtliche Darstellung aller Termine
  • Verfügbarkeits-Slots: Flexible Slot-Verwaltung mit behandlungsspezifischen Dauern
  • 📧 E-Mail-Benachrichtigungen: Automatische Benachrichtigungen bei Buchungen
  • Termin-Stornierung: Kunden können Termine über sichere Links stornieren
  • Stornierungsfrist: Konfigurierbare Mindestfrist vor dem Termin (MIN_STORNO_TIMESPAN)
  • 📋 Impressum/Datenschutz: Rechtliche Seiten mit konfigurierbaren Daten
  • 🔐 Admin-Panel: Geschützter Bereich für Inhaber

Admin-Zugang

Nach dem Setup kannst du dich mit den in der .env konfigurierten Admin-Credentials anmelden:

  • Benutzername: Wert aus ADMIN_USERNAME
  • Passwort: Das ursprüngliche Passwort (nicht der Hash)

Sicherheit

⚠️ Wichtige Hinweise:

  • Ändere das Standard-Passwort vor dem Produktionseinsatz
  • Das Passwort wird als Base64-Hash in der .env Datei gespeichert
  • Verwende ein sicheres Passwort und generiere den entsprechenden Hash
  • Die .env Datei sollte niemals in das Repository committet werden