Files
smb-online/playbooks/tier-b-selfhosted.md
mivanchenko 319218ce21
Test backoffice (smb-crm) / test (push) Has been cancelled
Remove Google Sheets mirror entirely (#13)
Postgres is now the sole source of truth: delete sheets.py and
import_from_sheets.py, strip mirror_entity/mirror_async/_mirror_worker and
POST /api/sync from app.py, drop the tab/mirror keys from db.py's TABLES.
Re-point n8n/renewal-reminder.json at the CRM's own HTTP API (GET
/api/clients, POST /api/activity_log) instead of the Sheets nodes, and drop
SHEET_ID/GOOGLE_SA_JSON from deploy env/compose and requests from
requirements.txt (PyJWT stays — still used by booking_api.py). Updates
docs/README/playbooks accordingly and closes the old #5 (atomic mirror) as
moot.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 11:29:57 +02:00

34 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Playbook — Tier B (self-hosted / privacy)
For privacy-sensitive businesses (physio, medical, legal, tax, therapy). Data stays on
German-hosted infrastructure. You charge a privacy/hosting premium. Target build time: ~12 days.
## When to pick Tier B
- Handles health, legal or financial personal data → GDPR sensitivity is a selling point.
- Client explicitly wants control over where data lives / no third-party tracking.
## Setup checklist
1. **Landing page** — clone `templates/landing/demo-tier-b/`, rebrand. Keep the privacy band and
"Daten in Deutschland" badges. Deploy to a free static host or the homelab behind HTTPS.
2. **Domain + TLS** — connect domain; ensure valid certificate (Caddy/Let's Encrypt).
3. **Booking** — deploy **self-hosted Cal.com** (see `stacks/selfhosted/docker-compose.yml`);
create the practice's event types; embed it (replace the demo Cal.com card).
4. **Lead form** — self-hosted form endpoint → n8n webhook → CRM. No third-party form service.
5. **Reception** — business mailbox; (later) the **AI receptionist** widget (Phase 6, Claude
Haiku 4.5) wired to the booking + FAQ.
6. **Credentials** — store all client logins in **Vaultwarden**; the CRM holds only `vault_ref`.
7. **CRM** — add a `Clients` row (tier = B, services, monthly_fee, renewal_date, vault_ref).
8. **Backups** — ensure the Tier-B services + CRM are in the daily backup job.
## Hosting note (NETWAYS boundary)
Keep this as **"I host a small website + booking for you,"** not managed cloud/monitoring. Use
cheap shared/managed infra or the homelab for low-traffic client sites — do not position it as a
managed-cloud/Kubernetes/monitoring service (that is NETWAYS's lane).
## What to charge (suggestion)
- One-off setup: €6001,500 (self-hosted booking + privacy setup is worth more).
- Monthly hosting + management: €4090 (covers infra, updates, backups, support).
## Recurring tasks
- Renewal reminder, Cal.com/booking sync to CRM, backup verification, security updates.