WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
인도 전역 부동산을 무료로 검색·판매·임대, 소유자 직접 등록·전화번호 인증·관심 기반 연결, 중개 수수료 없음
Browse, sell, or rent properties across India for free. Direct owner listing, verified phone numbers, and interest-based connection with zero brokerage.
라이프스타일GitHub @kkeyqik온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Property listing site for India. Next.js 16 (App Router) + Prisma 7 (pg driver adapter) on Supabase Postgres, Supabase Auth and Storage, Firebase phone OTP. Deployed on Vercel (region bom1).
Production: https://listme-sable.vercel.app
Next.js 16 differs from older versions. Read
AGENTS.mdand the docs innode_modules/next/dist/docs/before changing framework code.
Requires Node.js 20.9 or newer.
npm ci # also runs `prisma generate`
cp .env.example .env # then fill in values
npm run dev # http://localhost:3000
Every environment variable the code reads is documented in .env.example.
Use a separate development Supabase project. Do not point a local .env at the production database: seed scripts and local testing write real rows.
| Command | What it does |
|---|---|
npm run dev | Dev server |
npm run typecheck | tsc --noEmit |
npm run lint | ESLint |
npm run build | Production build |
npm run check | typecheck + lint + build |
npx prisma db seed | Seed reference data (prisma/seed.ts); dev databases only |
prisma/schema.prisma. CLI config: prisma.config.ts (uses DIRECT_URL, falling back to DATABASE_URL).prisma/sql/*.sql and are applied by hand in the Supabase SQL editor.Every ADMIN / SUPER_ADMIN must pass an authenticator-app check (TOTP) before opening /admin pages or calling admin APIs. The first visit to /admin sends the admin to /admin-verify, which shows a QR code to scan and then 8 one-time backup codes. A successful check lasts 12 hours per browser (listme-admin-mfa cookie).
Data lives in profiles.role_metadata.mfa (secret encrypted with a key derived from SESSION_SECRET; backup codes stored only as hashes). It is never sent to the browser.
Changing SESSION_SECRET disables every admin's authenticator (the stored secrets can no longer be decrypted). Clear mfa for all admins (below) so they set it up again.
Another admin lost their phone: a Super Admin opens Role Manager and uses the "Reset two-step verification" button on that admin's row.
The only Super Admin lost their phone: sign in, choose "Use a backup code" on /admin-verify, enter one saved backup code, then (optionally) ask a second Super Admin to reset it. If no backup code is left, remove the mfa key in the Supabase SQL editor and set it up again on the next visit:
update profiles set role_metadata = role_metadata - 'mfa' where phone = '+917777777777';
Pushes to main deploy to Vercel. Set the same variables as .env.example in the Vercel project (never the dev-only mock-auth flags). Security headers (CSP in report-only mode, HSTS, nosniff, frame protection, Referrer-Policy, Permissions-Policy) are set in next.config.ts.
.github/workflows/ci.yml runs typecheck, lint and build on every pull request with placeholder env values. Dependabot opens weekly minor/patch update PRs.