# hd-commerce **hd-commerce** ist ein eigenständiges, brand-neutrales E-Commerce-Backend von Heidrich Digital: eine wiederverwendbare Astro-SSR-Anwendung mit Commerce-Engine (SQLite), Shopify-artigem Admin, JSON-API und einem schlanken, neutralen Demo-Storefront. Die mitgelieferte Demo-Instanz heißt **„Brittas Nähkiste"** (Kurzwaren/Nähbedarf) und dient nur als Beispiel. Name, Akzentfarbe, Texte und Logo-Wortmarke sind über die Einstellungen frei anpassbar — derselbe Code läuft für beliebige Shops. ## Features - **Storefront** (hell, editorial, neutral): Startseite mit Announcement-Bar, Slider, Kategorien, Featured-Produkten und Newsletter; Shop-Katalog mit Kategorie-Filter; Produktdetailseiten; Warenkorb (localStorage); Checkout; Rechts-/Inhaltsseiten aus der DB. - **Admin** (Shopify-Stil): Dashboard mit KPIs & Funnel, Bestellungen mit Status-Workflow, Produkt-Editor (CRUD), Kunden, eigene Analytics (First-Party, Chart.js), Marketing (Popups & Announcement-Bar), Inhalte (Seiten, Slider, Medien-Upload) und Einstellungen. - **Engine**: synchron via `better-sqlite3` (WAL), automatisches Seeding beim ersten Start. - **API**: `/api/checkout` (Stripe Hosted Checkout oder Demo-Fallback), `/api/track`, `/api/subscribe`, `/api/upload`, `/uploads/[file]`. - **First-Party-Analytics**: eigene `events`-Tabelle, kein externer Dienst, keine personenbezogenen Rohdaten (Session = täglich rollender Hash aus IP+UA+Tag). - **Branding konfigurierbar**: Shop-Name, Akzentfarbe, Währung u. a. in einer `settings`-Tabelle; Akzentfarbe wird als CSS-Variable in Storefront **und** Admin injiziert. - **Self-hosted Fonts** (Fraunces + Public Sans), kein Google-CDN. ## Umgebungsvariablen (ENV) | Variable | Beschreibung | Default | |---|---|---| | `DB_PATH` | Pfad zur SQLite-Datenbank (wird angelegt) | `./data/hdc.db` | | `ADMIN_USER` | Basic-Auth-Benutzer für `/admin` | `admin` | | `ADMIN_PASS` | Basic-Auth-Passwort für `/admin` | `admin` | | `STRIPE_PUBLIC_KEY` | Stripe Publishable Key (optional) | – | | `STRIPE_SECRET_KEY` | Stripe Secret Key (`sk_test_…`/`sk_live_…`). Ohne echten Key läuft der Demo-Checkout. | – | Siehe `.env.example`. ## Lokal starten ```bash npm install npm run dev # Entwicklungsserver auf http://localhost:4321 # oder produktiv: npm run build node ./dist/server/entry.mjs ``` Storefront: `/` · Admin: `/admin` (Standard `admin` / `admin`). ## Docker / Coolify ```bash docker build -t hd-commerce . docker run -p 4321:4321 -v hdc-data:/data \ -e ADMIN_USER=admin -e ADMIN_PASS=geheim hd-commerce ``` Das `Dockerfile` (node:22-slim) baut `better-sqlite3` nativ, legt `/data` an und setzt `DB_PATH=/data/hdc.db`. Auf Coolify ein persistentes Volume auf `/data` mounten, damit Datenbank und Uploads erhalten bleiben. HEALTHCHECK prüft `/`. ## Datenmodell `settings`, `products`, `orders`, `customers`, `slides`, `pages`, `popups`, `subscribers`, `events`, `media` — alles seed-bar und im Admin pflegbar. --- > **Hinweis:** „Brittas Nähkiste" ist nur die mitgelieferte Demo-Instanz. Brand (Name, Farben, Texte) ist über **Admin → Einstellungen** anpassbar. Lizenz: MIT (siehe `LICENSE`).