Zlattea
Билки и чайове от Стара планина. Онлайн магазин.
Quick Start
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
./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