Skip to content

csiber/cf-magyar-form-handler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cf-magyar-form-handler

License: MIT Cloudflare Workers Gemini Spam Filter

Cloudflare Worker form-handler AI-spam-szűrővel — magyar SMB-piacra. Honeypot + rate-limit + Gemini-classifier + Resend-email + webhook. Self-hostolható alternatíva a Formspree / GetForm / Web3Forms helyett.

A Formspree havi 2 500 Ft-tól indul, a custom-domain elküldéshez 6 000 Ft-tól. Ez a Worker ugyanazt csinálja, ingyen (Cloudflare Free Tier + Resend Free 100 email/nap + Gemini Free 1500 RPD).

Mit ad

  • Honeypot spam-szűrés (_gotcha mező — bot kitölti → drop)
  • Rate-limit (30 / óra / IP / token, KV-tárolt)
  • AI-spam-osztályozás Gemini-vel — opt-in (csak ha GEMINI_API_KEY van)
    • kategorizál: inquiry / complaint / spam / other
    • magas-confidence spam → csendes drop
    • inquiry/complaint → email-subject prefix (★ ÉRDEKLŐDÉS — vagy ⚠ PANASZ — )
  • Email-küldés (Resend API)
  • Webhook-forward (POST a saját URL-edre)
  • CORS (allowed-origins per-form)
  • JSON + form-encoded body
  • Redirect-flow (HTML-form action-höz) VAGY JSON ok (XHR-flow)

Használat

1. Klónozd + telepítsd

git clone https://github.com/csiber/cf-magyar-form-handler
cd cf-magyar-form-handler
npm install

2. KV-namespace-eket csinálj

npx wrangler kv:namespace create FORMS
npx wrangler kv:namespace create RATE_LIMIT

A két id-t másold be a wrangler.toml-ba (REPLACE_WITH_KV_ID_...).

3. Adj hozzá form-konfigokat

# Egy új endpoint pl. tokenwith my-contact-form-2026
npx wrangler kv:key put --binding=FORMS \
  "form:my-contact-form-2026" \
  '{"name":"Kapcsolat","notifyEmail":"info@cégem.hu","allowedOrigins":["https://cégem.hu"],"redirectUrl":"https://cégem.hu/koszi.html"}'

A token egy 8-40 karakteres URL-safe string — te találod ki (vagy crypto.randomUUID()-vel).

4. Add hozzá a secret-eket

npx wrangler secret put RESEND_API_KEY
npx wrangler secret put GEMINI_API_KEY     # opcionális — AI-filter

5. Deploy

npx wrangler deploy

A worker URL-je pl.: https://magyar-form-handler.<your-account>.workers.dev.

6. HTML-form

<form action="https://magyar-form-handler.<your-account>.workers.dev/submit/my-contact-form-2026"
      method="POST">
  <!-- Honeypot — CSS-szel rejtve -->
  <input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">

  <input type="text" name="name" placeholder="Neved" required>
  <input type="email" name="email" placeholder="Emailed" required>
  <textarea name="message" placeholder="Üzenet" required></textarea>
  <button type="submit">Küldés</button>
</form>

Vagy XHR-rel (JSON):

const r = await fetch('https://.../submit/my-contact-form-2026', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: 'X', email: 'a@b.c', message: 'hello' }),
});
const j = await r.json(); // { ok: true }

Form-konfig séma

interface FormConfig {
  /** A form (subject-prefixbe + admin-felületre) */
  name: string;
  /** Cím ahova az új küldést küldjük */
  notifyEmail: string;
  /** Engedélyezett origin-ok — ha üres, mind */
  allowedOrigins: string[];
  /** Webhook-URL (opt) — POST-tal továbbküldjük (Slack-bot, Discord, custom) */
  webhookUrl?: string;
  /** Sikeres-redirect URL HTML-form-flowhoz */
  redirectUrl?: string;
}

Költség

Cloudflare Workers Free: 100k request/nap. KV: 100k read + 1k write/nap. Resend Free: 100 email/nap. Gemini Free: 1500 request/nap.

Egy átlag SMB-form (max 50 küldés/nap) MINDEN szolgáltatásnál a Free-tier-en marad. 0 Ft.

Licenc

MIT


Karbantartó: PromNET — magyar Cloudflare-hosting + AI Site Builder + integrált form-handler. Ha self-hostolás helyett managed-csomagot szeretnél (UI-felület + form-buildert + GDPR-compliant tárolás): a PromNET Form-handler csomagja minden tárhely-csomag mellé jár.

About

Cloudflare Worker form-handler with Gemini AI spam-classifier, honeypot, rate-limit, webhook + email notify — magyar SMB-knek

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors