7b9cfb68585d341ae8d84c6f25f3fb5d6c925024
Adding a custom domain now: - creates a Cloudflare Custom Hostname (SSL for SaaS) automatically, returning the ownership + SSL validation TXT records to show the restaurant owner alongside the CNAME instruction - adds the domain to the Coolify app's fqdn and triggers a restart (Coolify only regenerates Traefik labels on deploy, not on a bare fqdn PATCH — coollabsio/coolify#6281) - /verify now checks Cloudflare's actual ssl.status instead of doing a DNS CNAME lookup, which is structurally blind on proxied hostnames Tested end-to-end against the real Cloudflare zone and Coolify app (create, verify data, then clean up) before this push — see docs/PROGRESS.md. Requires CLOUDFLARE_API_TOKEN, CLOUDFLARE_ZONE_ID, COOLIFY_API_TOKEN, COOLIFY_BASE_URL, COOLIFY_WEB_APP_UUID in the API's environment. Without them, domain add/verify falls back to DB-only bookkeeping.
Menulio
AI QR Menü SaaS. Ürün detayları için docs/AI_QR_Menu_SaaS_PRD.md, faz planı için docs/ROADMAP.md.
Yapı
apps/
api/ Node.js + Fastify — business logic, PRD §23
web/ Next.js — public menu (customer-facing, PRD §9)
mobile/ Expo — restaurant owner app (management, PRD §2)
packages/
shared/ Ortak TS tipleri ve theme config şeması
supabase/
migrations/ DB şeması (PRD §22)
seed.sql Başlangıç temaları
Geliştirme
pnpm install
| Komut | Ne çalıştırır |
|---|---|
pnpm dev:api |
API — http://localhost:3001 |
pnpm dev:web |
Public web — http://localhost:3000 |
pnpm dev:mobile |
Expo dev server |
Supabase local (Docker gerekir):
npx supabase start
npx supabase db reset # migration + seed uygular
Her app'in .env.example dosyasını .env'e kopyalayıp doldurun.
Faz durumu
Şu an Faz 0 — Altyapı tamamlandı (monorepo iskeleti, DB şeması, boş route/screen stub'ları). Sıradaki adım Faz 1 — Manuel akış: gerçek restoran/menü CRUD'unu API ve mobile'da uçtan uca bağlamak. Detaylar için ROADMAP.md.
Languages
TypeScript
98.7%
Dockerfile
0.4%
Objective-C++
0.3%
Ruby
0.3%
JavaScript
0.1%
Other
0.1%