• v1.2.0 6fe98ed102

    v1.2.0
    All checks were successful
    CI / quality (pull_request) Successful in 1m41s
    CI / docker (pull_request) Successful in 1m17s
    CI / e2e (chromium) (pull_request) Successful in 2m15s
    CI / e2e (firefox) (pull_request) Successful in 3m15s
    CI / e2e (webkit) (pull_request) Successful in 4m17s
    CI / quality (push) Successful in 1m41s
    CI / docker (push) Successful in 30s
    CI / e2e (chromium) (push) Successful in 2m11s
    CI / e2e (firefox) (push) Successful in 3m3s
    CI / e2e (webkit) (push) Successful in 4m9s
    Release / quality (push) Successful in 1m35s
    Release / docker (push) Successful in 30s
    Release / e2e (chromium) (push) Successful in 2m10s
    Release / e2e (firefox) (push) Successful in 3m6s
    Release / e2e (webkit) (push) Successful in 4m7s
    Release / test (push) Successful in 0s
    Release / release (push) Successful in 2m36s
    Stable

    SebastienDenooz released this 2026-10-01 13:53:38 +00:00 | 0 commits to main since this release

    1.2.0 (2026-10-01)

    Features

    • deploy: Add a production Compose file for Coolify with every variable
    • smtp: Read the PROXY protocol version 2 as well as version 1

    Bug fixes

    • deploy: Take the public URL from SERVICE_URL_TRAPBOX, without the container port
    • connection: Give Laravel MAIL_SCHEME instead of MAIL_ENCRYPTION
    • sso: Accept Microsoft Entra ID's xms_edov claim as the email verification
    • deploy: Send the PROXY protocol version 1 from Traefik
    • local-mode: Keep sign-in on a data directory created with it

    Documentation

    • Document using, administering, configuring, deploying and operating Trapbox

    Other

    • deploy: Move the production Compose file next to the Docker Compose deployment
    Downloads
  • v1.1.0 ab21ee599a

    v1.1.0
    All checks were successful
    CI / quality (pull_request) Successful in 1m37s
    CI / docker (pull_request) Successful in 53s
    CI / e2e (chromium) (pull_request) Successful in 2m8s
    CI / e2e (firefox) (pull_request) Successful in 3m1s
    CI / e2e (webkit) (pull_request) Successful in 4m11s
    CI / quality (push) Successful in 1m36s
    CI / docker (push) Successful in 29s
    CI / e2e (chromium) (push) Successful in 2m11s
    CI / e2e (firefox) (push) Successful in 3m1s
    CI / e2e (webkit) (push) Successful in 4m9s
    Release / quality (push) Successful in 1m34s
    Release / docker (push) Successful in 28s
    Release / e2e (webkit) (push) Successful in 4m7s
    Release / test (push) Successful in 0s
    Release / e2e (chromium) (push) Successful in 2m3s
    Release / e2e (firefox) (push) Successful in 2m58s
    Release / release (push) Successful in 2m27s
    Stable

    SebastienDenooz released this 2026-09-28 13:18:11 +00:00 | 11 commits to main since this release

    1.1.0 (2026-09-28)

    Features

    • local-mode: Run as is, without sign-in or SMTP authentication, when no public URL is set
    Downloads
  • v1.0.0 43aa3221fc

    v1.0.0
    All checks were successful
    CI / quality (pull_request) Successful in 1m39s
    CI / docker (pull_request) Successful in 53s
    CI / e2e (chromium) (pull_request) Successful in 2m7s
    CI / quality (push) Successful in 1m38s
    CI / e2e (firefox) (push) Successful in 2m57s
    CI / e2e (firefox) (pull_request) Successful in 3m0s
    CI / e2e (webkit) (pull_request) Successful in 4m7s
    CI / docker (push) Successful in 28s
    CI / e2e (chromium) (push) Successful in 2m4s
    CI / e2e (webkit) (push) Successful in 4m6s
    Release / quality (push) Successful in 1m36s
    Release / docker (push) Successful in 28s
    Release / e2e (chromium) (push) Successful in 2m3s
    Release / e2e (firefox) (push) Successful in 3m4s
    Release / e2e (webkit) (push) Successful in 4m6s
    Release / test (push) Successful in 0s
    Release / release (push) Successful in 2m38s
    Stable

    SebastienDenooz released this 2026-09-28 10:00:34 +00:00 | 12 commits to main since this release

    1.0.0 (2026-09-28)

    Features

    • core: Load runtime configuration, prepare the data directory and log as JSON
    • db: Add the SQLite layer, locked migrations with pre-upgrade snapshots and instance settings
    • core: Model users, projects, environments and memberships with role-based permissions
    • audit: Record audit entries for user, project, environment and membership changes
    • credentials: Manage SMTP credentials with one-time secrets and constant-time authentication
    • smtp: Accept authenticated SMTP messages and store them durably per environment
    • smtp: Support STARTTLS and implicit TLS with hot-reloaded certificates and the PROXY protocol
    • core: Boot Trapbox with the web server and expose health and readiness endpoints
    • auth: Add password authentication and sessions
    • security: Harden the web application with strict headers, CSRF checks and proxy-aware client IPs
    • processing: Parse stored messages in worker threads and index them
    • processing: Apply attachment storage and size rules with stripped raw copies
    • quotas: Enforce environment quotas, size limits and the disk guard at intake
    • jobs: Run retention, expiry and housekeeping jobs in the background
    • smtp: Limit the sending rate per credential and block brute-force attempts
    • api: Establish the REST API conventions, guards and OpenAPI reference
    • app: Build the webmail shell with the environment selector and localized interface
    • messages: Show the message list with personal read status and live updates
    • messages: Add the message view with isolated HTML rendering
    • messages: Add attachment downloads, previews, .eml download and navigation
    • messages: Add read status, delete, bulk actions and delete all
    • tags: Add manual, bulk and automatic message tags with the tag filter
    • messages: Pin and unpin messages within the instance limit
    • search: Add full-text search and the message list filters
    • environments: Add the usage gauge, recent rejections and banners
    • environments: Add the connection panel and the test email
    • credentials: Let Managers create, edit and revoke SMTP credentials
    • settings: Add personal settings for the profile, password and language
    • api: Add personal API tokens with scopes and per-token rate limits
    • api: Add environment tokens bound to one environment
    • environments: Let Managers set, extend or clear the expiry date
    • api: Wait for a message matching criteria
    • api: Let pipelines provision, rotate and delete environments
    • core: Add the outbound request policy and its safe HTTP client
    • analysis: Check the links of a message from the message view
    • analysis: Check the HTML compatibility of a message
    • analysis: Show the spam score from the operator's SpamAssassin
    • feeds: Add personal RSS feeds per environment
    • webhooks: Deliver signed webhook notifications with retries
    • webhooks: Let Managers configure webhooks and follow their deliveries
    • failure-injection: Simulate SMTP failures and delays per environment
    • admin: Let administrators configure and rebrand the instance
    • admin: Manage user accounts and one-time setup links
    • projects: Administer projects and let Managers run their environments
    • admin: Administer environments, their quotas and their members
    • admin: Show the instance overview and its alerts
    • audit: Browse, filter and export the audit log
    • auth: Add OpenID Connect single sign-on
    • setup: Add the token-protected web setup wizard
    • api: Complete the REST API reference and check it route by route
    • mailpit: Add the Mailpit-compatible API under /mailpit
    • observability: Add Prometheus metrics and Sentry-compatible error reporting
    • cli: Add the trapbox command with version, check and reset-admin-password
    • backup: Add the trapbox backup and restore commands
    • ui: WCAG 2.1 AA accessibility pass and three-engine e2e suite
    • setup: Run locally without configuration and point at the first password

    Bug fixes

    • messages: Keep fast tag edits in order in the tag editor
    • config: Name TRAPBOX_DATA_DIR when the data directory cannot be created
    • tags: Show the stored tags after a failed save instead of the previous ones
    • home: Keep a navigation started before the redirect to the last environment
    • tags: Show a change in the stored order so that the answer moves no chip

    Documentation

    • deploy: Add tested deployment guides and manifests

    Other

    • Initial commit
    • Add docs, tasks and gitignore
    • Scaffold Nuxt 4 application with i18n, lint, typecheck and Vitest
    • Add Playwright e2e harness and GitLab, GitHub and Forgejo pipelines
    • docker: Add the production container image and its test suite
    • release: Publish signed multi-architecture images from version tags
    • perf: Add the performance validation suite of the §15 targets
    • tasks: Record the completion of the task queue
    • tasks: Record the completion check of the task queue
    • helpers: Start test instances again on new ports after a port conflict
    • tasks: Record the completion of the task queue
    • tasks: Record the completion check of the task queue
    • tasks: Record the completion check of the task queue
    • caniemail: Update caniemail
    • Merge pull request 'develop' (#1) from develop into main

    Reviewed-on: #1

    • unit: Give the disk-heavy tests time on slow CI disks
    • Run the image tests on the runner's Docker engine with a full client
    • setup: Measure the free-space check on a probe, not on this machine's disk
    • Merge pull request 'develop' (#2) from develop into main

    Reviewed-on: #2

    • release: Install the Docker client and Buildx in the Forgejo release job
    • e2e: Keep parallel tests apart from instance-wide changes and sign-in load
    • e2e: Wait for the navigation before reloading, and for the palette to filter before clicking
    • release: Use action refs that exist and replace the actions Forgejo cannot run
    • docker: Build the application once on the builder's platform for every image
    • release: Install envsubst for cosign-installer in the Forgejo release job
    Downloads