Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d69ff1a997 | ||
|
|
54a0dc329b | ||
|
|
66a6de631e | ||
|
|
d9f017d448 | ||
|
|
5b6eb16662 |
@@ -0,0 +1,2 @@
|
||||
VITE_CONTACT_API_URL=/api/contact
|
||||
VITE_TURNSTILE_SITE_KEY=0x4AAAAAACfQya1R13nGeuOy
|
||||
+28
-19
@@ -1,33 +1,42 @@
|
||||
# Dependencies
|
||||
node_modules/
|
||||
contact-api/node_modules/
|
||||
|
||||
# Build artifacts
|
||||
dist/
|
||||
build/
|
||||
contact-api/dist/
|
||||
coverage/
|
||||
*.tsbuildinfo
|
||||
.vite/
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
# Build output
|
||||
dist/
|
||||
build/
|
||||
contact-api/dist/
|
||||
# Environment files (keep examples)
|
||||
|
||||
# Vite cache
|
||||
.vite/
|
||||
|
||||
# VSCode settings
|
||||
# Archives and local release bundles
|
||||
*.tgz
|
||||
*.tar
|
||||
*.tar.gz
|
||||
|
||||
# Tool caches
|
||||
.eslintcache
|
||||
.nyc_output/
|
||||
|
||||
# Editor / IDE
|
||||
.vscode/
|
||||
|
||||
# Log files
|
||||
*.log
|
||||
|
||||
# Environment variables
|
||||
|
||||
.idea/
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
# OS generated
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Optional: lock files (if you use one package manager)
|
||||
# Uncomment the ones you're not using
|
||||
# yarn.lock
|
||||
# package-lock.json
|
||||
# pnpm-lock.yamlw
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Jody Holt
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -84,6 +84,11 @@ Create `contact-api/.env` from `contact-api/.env.example` and set your real Turn
|
||||
- systemd unit template: `ops/jody-contact-api.service`
|
||||
- Nginx reverse proxy snippet: `ops/nginx-contact-api.conf`
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License.
|
||||
See `LICENSE` for full text.
|
||||
|
||||
## Author
|
||||
|
||||
### Jody Holt
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
NODE_ENV=production
|
||||
PORT=8787
|
||||
CONTACT_ALLOWED_ORIGIN=https://jodyholt.com,https://www.jodyholt.com
|
||||
TURNSTILE_EXPECTED_HOSTNAME=jodyholt.com,www.jodyholt.com
|
||||
TURNSTILE_SECRET_KEY=0x4AAAAAACfQyRwRzwsEMIfVtCSkjz7__Yc
|
||||
TURNSTILE_EXPECTED_ACTION=contact_form
|
||||
SMTP_HOST=mail.jodyholt.com
|
||||
SMTP_PORT=587
|
||||
SMTP_SECURE=false
|
||||
SMTP_REQUIRE_TLS=true
|
||||
SMTP_USER=portfolio-smtp
|
||||
SMTP_PASS=portfolio124521!
|
||||
MAIL_FROM_NAME=Portfolio Contact
|
||||
MAIL_FROM_ADDRESS=contact@jodyholt.com
|
||||
MAIL_TO_ADDRESS=you@jodyholt.com
|
||||
MAIL_SUBJECT_PREFIX=[Portfolio Contact]
|
||||
RATE_LIMIT_WINDOW_MS=600000
|
||||
RATE_LIMIT_MAX=5
|
||||
HONEYPOT_FIELD=website
|
||||
MIN_SUBMIT_TIME_MS=3000
|
||||
Reference in New Issue
Block a user