AyrisAI 7b9cfb6858 feat(api): automate custom domain setup via Cloudflare + Coolify
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.
2026-08-20 05:43:40 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00

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.

S
Description
No description provided
Readme
69 MiB
Languages
TypeScript 98.7%
Dockerfile 0.4%
Objective-C++ 0.3%
Ruby 0.3%
JavaScript 0.1%
Other 0.1%