148 Commits

Author SHA1 Message Date
phundrak e08210e52d docs: clarify documentation
Publish Docker Images / coverage-and-sonar (push) Successful in 10m21s
Publish Docker Images / build-docker (push) Successful in 7m37s
Publish Docker Images / push-docker (push) Successful in 21s
2026-06-06 16:10:58 +02:00
phundrak 3679c7e8cd feat(starttls): remove opportunistic value
This commit removes the `Opportunistic` value from the struct `StartTls`.
This value was strictly equivalent to `Always` and could potentially
cause confusion.
2026-06-06 16:10:58 +02:00
phundrak b5a83f100d chore(ci): add linting, formatting check, and auditing 2026-06-06 16:10:58 +02:00
phundrak 3c86e9eb36 fix(server): fix TOCTOU race condition in tests 2026-06-06 15:49:19 +02:00
phundrak c700d65b34 style: format code
Publish Docker Images / push-docker (push) Has been cancelled
Publish Docker Images / build-docker (push) Has been cancelled
Publish Docker Images / coverage-and-sonar (push) Has been cancelled
2026-06-06 15:49:19 +02:00
phundrak 8bf2917eb7 chore(audit): deny wildcard versions in Cargo.toml 2026-06-06 15:49:19 +02:00
phundrak fc8dc805a9 feat(RateLimit): add Retry-After header for 429 errors 2026-06-06 15:49:19 +02:00
phundrak 5b6dd0c4f7 fix(health): move test to dedicated test mod 2026-06-06 15:49:19 +02:00
phundrak b29a095a38 refactor(RateLimitConfig): replace magic values with struct method 2026-06-06 15:49:19 +02:00
phundrak 85621d9364 feat(contact): sanitize user-submitted data 2026-06-06 15:49:19 +02:00
phundrak 5baa73d272 fix: typo 2026-06-06 15:33:45 +02:00
phundrak ff6aa10d91 feat(logs): only activate json or pretty logs one at a time 2026-06-06 15:33:45 +02:00
phundrak 598af596c7 refactor: simplify code 2026-06-06 15:33:45 +02:00
phundrak 9f576d7509 fix(contact): sanatize user-supplied data in logs 2026-06-06 15:33:45 +02:00
phundrak 2216d7da58 fix(logs): make tracing target consistent 2026-06-06 15:33:45 +02:00
phundrak d4fdc2f468 refactor: better value cloning 2026-06-06 15:33:33 +02:00
phundrak dcb3dc60a4 fix(RateLimit): apply rate limiting based on client IP 2026-06-06 15:33:33 +02:00
phundrak b38e6110d2 feat(settings): proper CORS in production
If the backend starts in production mode with no `frontend_url` is set,
immediately panic and stop.
2026-06-06 15:33:33 +02:00
phundrak afd399b84f feat(SMTP): disallow unencrypted SMTP with credentials 2026-06-02 01:50:31 +02:00
phundrak b923f3bdb0 feat(OpenAPI): disable Swagger and OpenAPI specs in prod 2026-06-02 01:50:31 +02:00
phundrak ad4133cf3d chore(deps): update dependencies 2026-06-01 23:15:39 +02:00
phundrak 17c916445e fix(nix): update outdated substituter 2026-06-01 22:53:14 +02:00
phundrak e72b6330c2 chore: better action workflow
Publish Docker Images / build-docker (push) Successful in 11m9s
Publish Docker Images / coverage-and-sonar (push) Successful in 11m47s
Publish Docker Images / push-docker (push) Successful in 30s
2026-02-04 21:50:32 +01:00
phundrak 7742f2db08 fix(README): update badges on README 2026-02-04 20:53:18 +01:00
phundrak 67b2e64b32 fix(contact): ignore empty honeypot values even if String exists 2026-02-04 20:53:18 +01:00
phundrak cffdab1be6 fix(nix): remove unused self value 2026-02-04 20:53:18 +01:00
phundrak ce28426075 chore: rename project to bakit
Publish Docker Images / build-and-publish (push) Successful in 13m40s
2025-11-20 11:01:55 +01:00
phundrak c46ab8397c style: fix some clippy errors
Publish Docker Images / build-and-publish (push) Has been cancelled
2025-11-20 10:51:48 +01:00
phundrak daa92328c5 docs(README): open links in new tabs 2025-11-20 10:51:48 +01:00
phundrak 2f0ebc8144 chore: add Sonar analysis 2025-11-16 02:12:21 +01:00
phundrak 797ab461ab feat: send confirmation email to sender
When users submit a contact form, they now receive a confirmation
email acknowlledging receipt of their message. The backend also
continues to send a notification email to the configured recipient.

If the backend fails to send the acknowledgement email to the sender,
it will assume the email is not valid and will therefore not transmit
the contact request to the configured recipient.

Changes:
- Refactor `send_email()` to `send_emails()` that sends two emails:
  - Confirmation email from the submitter
  - Notification email to the configured recipient
- Add `From<T>` implementations of various errors for new error type
  `ContactError`.
- Errors now return a translation identifier for the frontend.
2025-11-16 02:12:21 +01:00
phundrak 71c4cf1061 chore: separate backend from frontend
Publish Docker Images / build-and-publish (push) Failing after 9m29s
2025-11-15 14:07:12 +01:00
phundrak 9f1d4db0de feat: fill pages 2025-11-13 22:13:40 +01:00
phundrak 3f828a754b feat(frontend): main page 2025-11-11 19:12:03 +01:00
phundrak 89c7588883 feat(backend): build backend with Nix and add CI 2025-11-06 09:27:39 +01:00
phundrak e2b975fa12 feat(backend): redact email password in logs 2025-11-06 09:27:39 +01:00
phundrak def25632d1 feat(backend): add rate limiting to the backend’s API 2025-11-06 09:27:39 +01:00
phundrak d0642d031b feat(backend): relay contact requests to SMTP server 2025-11-06 09:27:39 +01:00
phundrak 007c3d1c18 feat: initialization migration to Nuxt + Backend
This commit initializes both the Nuxt frontend and the Rust backend of
the new version of phundrak.com
2025-11-06 09:27:39 +01:00
phundrak cc62d0bb95 chore: deploy to Cloudflare Pages 2025-02-09 12:11:44 +01:00
phundrak 727ec58600 chore: update vuepress and plugins 2025-02-09 11:57:54 +01:00
phundrak 333b7a7562 docs: update mastodon link 2024-11-17 14:29:45 +01:00
phundrak baf999ea1c docs: update resume 2024-10-01 23:20:02 +02:00
phundrak 9a92f57986 chore: update metadata 2024-07-09 20:45:36 +02:00
phundrak c8ce7ca6da chore(package.json): remove unused packages 2024-06-20 09:33:58 +02:00
phundrak d54aabd621 refactor: rework API loader and caching
This commit removes dependency on rxjs.

It also implements better composables to handle data fetching from
remote APIs and caching these values more transparently.

This commit also switches from yarn to npm

It also switches to the official Umami plugin
2024-06-20 09:27:59 +02:00
phundrak 24d558e0f5 test 2024-02-26 07:38:38 +01:00
phundrak bc36bdec90 feat(umami): switch to dedicated Vuepress plugin 2024-02-26 06:51:54 +01:00
phundrak 1b54860f93 docs(find-me): Update Discord handle
Update content/en/find-me.org
Update content/find-me.org
Update content/lfn/find-me.org
2024-02-26 06:51:27 +01:00
phundrak 37f9b36b2f feat,docs: add Umami to website, update privacy pages 2024-01-27 18:25:44 +01:00