zlattea

git clone https://git.smesh.lol/zlattea.git

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

files