Add booking stack, client deploys, and back-office updates

- deploy/booking: shared Easy!Appointments stack with brand-matched
  wizard (flatpickr recolor, single-tenant provider hide, iframe
  auto-fit height reporter)
- deploy/clients: per-client isolated nginx compose stacks with
  _template scaffold, new-client.sh, and happynails live site
- deploy/backup: smb-db backup script
- n8n: booking-sync workflow; onboarding tweaks
- playbooks: lead-to-customer lifecycle + outreach
- templates: nail-studio landing previews
- backoffice: app/db/init/compose updates

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 16:10:15 +02:00
parent 4257bd3e55
commit 156166b4e5
25 changed files with 2900 additions and 23 deletions
+22
View File
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Platzhalter — Kundenseite</title>
<style>
body { font-family: system-ui, sans-serif; background: #fdf6f4; color: #3b2a2e;
display: grid; place-items: center; min-height: 100vh; margin: 0; text-align: center; }
.box { max-width: 520px; padding: 32px; }
code { background: #f1e1de; padding: 2px 6px; border-radius: 5px; }
</style>
</head>
<body>
<div class="box">
<h1>Platzhalter-Kundenseite</h1>
<p>Dieser isolierte Client-Stack läuft. Ersetzen Sie den Inhalt von <code>site/</code> mit
der gebrandeten Seite des Kunden (z. B. geklont aus <code>templates/landing/…</code>),
tragen Sie den Google-Terminbuchungs-Link ein und deployen Sie neu.</p>
</div>
</body>
</html>