From 228240ec2d5988452b60cf0f2e89d027e05fe0ac Mon Sep 17 00:00:00 2001 From: Ricearoni1245 Date: Wed, 18 Feb 2026 21:50:11 -0600 Subject: [PATCH] added all for contact form, now test --- .env.example | 2 -- contact-api-release.tgz | Bin 0 -> 18413 bytes contact-api/.env.example | 24 ------------------------ 3 files changed, 26 deletions(-) delete mode 100644 .env.example create mode 100644 contact-api-release.tgz delete mode 100644 contact-api/.env.example diff --git a/.env.example b/.env.example deleted file mode 100644 index 0b911d7..0000000 --- a/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -VITE_CONTACT_API_URL=/api/contact -VITE_TURNSTILE_SITE_KEY=your_turnstile_site_key diff --git a/contact-api-release.tgz b/contact-api-release.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ed721b28e5ef2ef6dbc304ed1c2e9ea9c62433fd GIT binary patch literal 18413 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 U000000Qi620bvd0LI6Mk01@>46951J literal 0 HcmV?d00001 diff --git a/contact-api/.env.example b/contact-api/.env.example deleted file mode 100644 index 1ab7277..0000000 --- a/contact-api/.env.example +++ /dev/null @@ -1,24 +0,0 @@ -NODE_ENV=development -PORT=8787 -CONTACT_ALLOWED_ORIGIN=http://localhost:5173 - -TURNSTILE_SECRET_KEY=your_turnstile_secret_key -TURNSTILE_EXPECTED_HOSTNAME=localhost -TURNSTILE_EXPECTED_ACTION=contact_form - -SMTP_HOST=mail.yourdomain.com -SMTP_PORT=587 -SMTP_SECURE=false -SMTP_REQUIRE_TLS=true -SMTP_USER=contact@yourdomain.com -SMTP_PASS=replace_with_real_password - -MAIL_FROM_NAME=Portfolio Contact -MAIL_FROM_ADDRESS=contact@yourdomain.com -MAIL_TO_ADDRESS=you@yourdomain.com -MAIL_SUBJECT_PREFIX=[Portfolio Contact] - -RATE_LIMIT_WINDOW_MS=600000 -RATE_LIMIT_MAX=5 -HONEYPOT_FIELD=website -MIN_SUBMIT_TIME_MS=3000