# Zlattea Билки и чайове от Стара планина. Онлайн магазин. ## Quick Start ```bash git clone https://git.smesh.lol/zlattea.git cd zlattea ./install.sh ``` The install script will prompt for: - **Admin password** (required) - **Port** (default 3000 - the port your reverse proxy forwards to) - **Bind address** (default 127.0.0.1 - change to 0.0.0.0 for public access without proxy) Everything else is automatic: prerequisites (apt/dnf/pacman), bun, dependencies, database setup, product seeding, and build. Both API and web servers start when done. ## Remove ```bash ./uninstall.sh ``` ## Stack - **Astro** - SSR frontend - **Hono** - API server - **SQLite** (Bun native) - database - **Bun** - runtime, package manager, bundler - **Stripe** - card payments (Apple Pay, Google Pay, Link) ## Features ### Store - Product catalog with categories (Билки / Диви плодове) - Product detail pages with usage recommendations - Shopping cart (localStorage) - Multi-method checkout: Stripe cards (Visa/MC), Apple Pay, Google Pay, Link, BTCPay (Bitcoin + Lightning), bank transfer, COD - Courier shipping (Speedy, Econt) with office search and city filter - Bulgarian / English i18n ### Auth - Email/password login with bcrypt - Nostr login (NIP-07 browser extensions, kind 22242 challenge auth) - Mandatory password setup for Nostr users ### Admin Panel Navigate to `/user` after logging in as admin. - **Products**: inline editing (name BG/EN, price, weight, stock, harvest year, category, images with upload), reorder, delete - **Orders**: status transitions (paid → shipped → delivered, cancel) - **Users**: admin toggle, order history - **Messages**: contact form inbox - **Options**: configurable about page (image + markdown BG/EN), delivery page (image + markdown BG/EN), contact details (phone, email, address, services markdown, pickup markdown) - **Terms**: markdown terms of service (BG/EN) - **Payments**: Stripe + BTCPay Server API key configuration ### Content Pages - About page with configurable image + markdown text, justified white text on dark background - Delivery page with configurable image + markdown text - Contact page with configurable phone/email/address, services, pickup sections, contact form - Terms of service rendered from markdown - All hero images unified to shop-hero.jpg ### Responsive - Mobile hamburger drawer with nav links + lang toggle (BG/EN) + login/logout - iOS Safari button styling fix (`-webkit-appearance: none`) - Admin panel tabs wrap on narrow screens - Body scroll locked when drawer open