BossHunter
스마트 구직 에이전트(소스 공개, PolyForm 비상업적 라이선스; 상업적 이용은 별도 서면 허가 필요)
Glint Host Registry가 EU 규정 2024/1028 및 현지 등록 번호 등을 지원해 호스트가 규정을 준수하도록 돕습니다
Glint Host Registry helps hosts meet Regulation (EU) 2024/1028, platform registration numbers, SES Hospedajes, Mossos, Ertzaintza and French guest police fiches. Bilingual FR/EN interface.
비즈니스TypeScript · JavaScriptGitHub @Benjamin-de-Pourquery온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Glint Host Registry — EU short-term rental compliance SaaS (Regulation 2024/1028)
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Professional compliance operations SaaS for EU short-term rental hosts under Regulation (EU) 2024/1028.
Going live? See GO_LIVE.md for the production billing checklist (Stripe live flip, smoke tests, rollback).
• Next.js 16 (App Router) + TypeScript + Tailwind CSS
• Prisma 7 + SQLite (local/demo) — Postgres/Turso-ready
• Auth.js (NextAuth v5) — email/password credentials; optional Google OAuth when configured
• next-intl — bilingual FR/EN UI
• Stripe — subscription billing (test mode until go-live; see GO_LIVE.md)
See .env.example for the full list. Summary:README 전문 보기 ↗Professional compliance operations SaaS for EU short-term rental hosts under Regulation (EU) 2024/1028.
Going live? See GO_LIVE.md for the production billing checklist (Stripe live flip, smoke tests, rollback).
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env
# Edit .env — at minimum set AUTH_SECRET (openssl rand -base64 32)
# Run database migrations
npm run db:migrate
# Start dev server
npm run dev
See .env.example for the full list. Summary:
| Target | Stripe keys | Notes |
|---|---|---|
| Local / Preview | sk_test_ / pk_test_ | Safe for development and PR previews |
| Production | sk_live_ / pk_live_ | Live billing active (see GO_LIVE.md); keep SES_LIVE=false |
| Preview | sk_test_ / pk_test_ | Safe for PR previews and QA |
| Variable | Required | Description |
|---|---|---|
DATABASE_URL | Yes | SQLite path (file:./dev.db) or Turso/libsql URL |
AUTH_SECRET | Yes | Auth.js session secret |
AUTH_GOOGLE_ID | Optional | Shared Glint Google OAuth client ID (enables Google sign-in when paired with secret) |
AUTH_GOOGLE_SECRET | Optional | Google OAuth client secret |
EMAIL_FROM | For password reset | Sender address (e.g. Glint Host <[email protected]>) |
RESEND_API_KEY | For password reset | Resend API key (preferred mailer when set) |
SMTP_HOST | For password reset | SMTP host when not using Resend |
SMTP_PORT | Optional | SMTP port (default 465, TLS when 465) |
SMTP_USER / SMTP_PASS | Optional | SMTP credentials when required by your provider |
EMAIL_REPLY_TO | Optional | Reply-To header on transactional email |
DEMO_LOCKED_EMAILS | Optional | Comma-separated emails blocked from self-serve password reset |
NEXT_PUBLIC_APP_URL | Yes | Public app URL for Stripe redirects and reset links |
STRIPE_SECRET_KEY | For billing | Stripe secret key (test: sk_test_...) |
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY | For billing | Stripe publishable key |
STRIPE_PRICE_STARTER | For billing | Price ID for Starter plan (€19/mo) |
STRIPE_PRICE_PRO | For billing | Price ID for Pro plan (€49/mo) |
STRIPE_WEBHOOK_SECRET | For billing | Webhook signing secret |
CRON_SECRET | Production |
price_...) to STRIPE_PRICE_STARTER and STRIPE_PRICE_PRO.stripe listen --forward-to localhost:4311/api/stripe/webhook
Copy the webhook signing secret to STRIPE_WEBHOOK_SECRET.| Command | Description |
|---|---|
npm run dev | Dev server on port 4311 |
npm run build | Production build |
npm run start | Production server |
npm run db:migrate | Run Prisma migrations |
npm run db:studio | Open Prisma Studio |
npm run test | Run unit tests (SES, Spain/Italy/Portugal/Greece/Croatia routing, export validation, guest-reporting router, encryption) |
npm run verify-playbook-urls | HTTP 200 check for verified playbook official URLs |
npm run test:ses | Run SES integration unit tests only |
.env.example (Preview: test Stripe; Production: see GO_LIVE.md).DATABASE_URL="libsql://your-db.turso.io" + TURSO_AUTH_TOKENnpx prisma migrate deployhttps://your-domain.com/api/stripe/webhookNEXT_PUBLIC_APP_URL to your production URL.CRON_SECRET and SECRETS_ENCRYPTION_KEY on Production — crons in vercel.json: iCal sync (04:00 UTC daily), SES due (08:00 UTC daily).src/
app/
[locale]/ # i18n routes (en, fr)
page.tsx # Marketing landing
login/ signup/ # Auth pages
app/ # Protected dashboard
legal/ # Privacy, Terms, Mentions
export/[id]/ # Printable compliance summary
api/ # API routes
components/ # UI components
lib/ # Auth, Prisma, Stripe, compliance logic
i18n/ # next-intl config
messages/ # en.json, fr.json
prisma/ # Schema + migrations
See PRODUCT.md for product documentation.
Glint Host Registry ships with production-ready technical SEO:
icon, apple-icon, and opengraph-image (not Next.js defaults)hreflang alternates on marketing pagesOrganization, WebSite, SoftwareApplication, FAQPage) on the landing page/robots.txt and /sitemap.xml; /app/*, check-in tokens, exports, and print views are noindex/[locale]/guides/... pages linked from the footerhttps://glint-host-registry.vercel.app.https://glint-host-registry.vercel.app/sitemap.xml/fr, /en, guide pages) to confirm indexing and hreflang.Set NEXT_PUBLIC_APP_URL to the production URL so canonical and OG URLs resolve correctly.
Protects cron routes: iCal sync + SES due notifications (vercel.json) |
SECRETS_ENCRYPTION_KEY | For Spain SES | 32-byte base64 key for encrypting SOAP credentials at rest (openssl rand -base64 32) |
SES_LIVE | For Spain SES | Set to true only when ready for live SOAP submissions (default: false / dry-run). Mossos/Ertzaintza have no live API — export-only. |
ALLOCGIATI_LIVE | For Italy | Reserved — must stay false unless official Alloggiati Web API docs are verified. Default: manual export + portal only. |