feat: initial commit — local services (backend + manager dashboard + waiter PWA)

Includes all work to date:
- local_backend: FastAPI backend with products, orders, tables, shifts, cloud sync
- manager_dashboard: React manager UI with product/category management, reports, settings
- waiter_pwa: React PWA for waiter devices
- Category reparent endpoint and UI
- Waiter domain: local_ip sent on heartbeat, waiter_domain persisted from cloud response
- QR code modal in AppInfoTab for waiter domain
- Product form: number input spinners removed, category pre-selected on new product
- Category row: count badge moved to far right

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-20 14:04:38 +03:00
commit 8ba8c95ecd
209 changed files with 48017 additions and 0 deletions

41
docker-compose.yml Normal file
View File

@@ -0,0 +1,41 @@
services:
backend:
image: ${REGISTRY}/pos-backend:${VERSION:-latest}
restart: unless-stopped
environment:
- SITE_ID=${SITE_ID}
- SITE_KEY=${SITE_KEY}
- CLOUD_URL=${CLOUD_URL}
- SECRET_KEY=${SECRET_KEY}
- LICENSE_GRACE_HOURS=${LICENSE_GRACE_HOURS:-24}
- DATABASE_URL=sqlite:////app/data/pos.db
- VERSION=${VERSION:-0.0.0}
volumes:
- ${DATA_PATH}:/app/data
- ${LOGO_PATH}:/app/logo.png:ro
waiter_pwa:
image: ${REGISTRY}/pos-waiter:${VERSION:-latest}
restart: unless-stopped
depends_on:
- backend
manager_dashboard:
image: ${REGISTRY}/pos-manager:${VERSION:-latest}
restart: unless-stopped
depends_on:
- backend
proxy:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
- "4443:4443"
volumes:
- ./nginx-proxy/nginx.conf:/etc/nginx/conf.d/default.conf:ro
- ./certs:/etc/nginx/certs:ro
depends_on:
- waiter_pwa
- manager_dashboard
restart: unless-stopped