Skip to content

Releases: CicerBro/postbox

Postbox v1.3.7

Choose a tag to compare

@CicerBro CicerBro released this 24 Oct 12:47

Postbox v1.3.7 makes campaign engagement easier to compare at a glance.

Campaign table

  • Show open and click percentages beside their locale-formatted counts, using smaller, muted text with one decimal place.
  • Calculate percentages from the sent total, falling back to the recipient count when needed.
  • Move the Sent column after Clicks, immediately before the action icons.

Install or upgrade

The Docker image supports Linux amd64 and arm64:

docker pull ghcr.io/cicerbro/postbox:1.3.7

For Compose deployments using latest:

docker compose pull
docker compose up -d

Retain your existing persistent volume and configuration. Linux amd64 and arm64 binaries and SHA-256 checksums are attached below.

Full changelog: v1.3.6...v1.3.7

Postbox v1.3.6

Choose a tag to compare

@CicerBro CicerBro released this 24 Oct 12:16

Postbox v1.3.6 adds status filters to subscriber CSV exports, making it easier to download the audience records you need.

Subscriber exports

  • Choose active delivery, subscribed, unsubscribed, unconfirmed, bounced, complained, or blocklisted under Subscribers & lists > Import / export.
  • Combine the status filter with an optional list.
  • Include brand-wide opt-outs and relevant list opt-outs in unsubscribed exports. Subscription filters exclude delivery-suppressed and brand-wide opted-out profiles.
  • Preserve delivery suppression and opt-outs in the CSV output.
  • Stream all matching rows and validate list, status, and brand scope.
  • Update the API reference and handbook with the export options.

Install or upgrade

The Docker image supports Linux amd64 and arm64:

docker pull ghcr.io/cicerbro/postbox:1.3.6

For Compose deployments using latest:

docker compose pull
docker compose up -d

Retain your existing persistent volume and configuration. Linux amd64 and arm64 binaries and SHA-256 checksums are attached below.

Full changelog: v1.3.5...v1.3.6

Postbox v1.3.5

Choose a tag to compare

@CicerBro CicerBro released this 15 Oct 14:51

Postbox v1.3.5 lets administrators customize or hide the message beneath the sign-in form.

Sign-in tagline

  • Add a Sign-in tagline panel under System Settings > Deployment.
  • Show or hide the tagline, or replace it with up to 500 characters of plain text.
  • Preserve custom text when the tagline is hidden. HTML and Markdown appear literally.
  • Save changes in the database and apply them without restarting Postbox. The original wording remains the default.
  • Document the administrator settings API and include the tagline in public sign-in configuration.

Install or upgrade

The Docker image supports Linux amd64 and arm64:

docker pull ghcr.io/cicerbro/postbox:1.3.5

For Compose deployments using latest:

docker compose pull
docker compose up -d

Retain your existing persistent volume and configuration. Linux amd64 and arm64 binaries and SHA-256 checksums are attached below.

Full changelog: v1.3.4...v1.3.5

Postbox v1.3.4

Choose a tag to compare

@CicerBro CicerBro released this 15 Oct 11:51

Postbox v1.3.4 improves browser caching and makes the email editor appear sooner when opened.

Browser caching

  • Give theme setup, favicons, and the Inter font content-hashed URLs so browsers can cache them for a year and fetch updated versions when their contents change.
  • Keep application HTML revalidating so new deployments load the current asset URLs.
  • Preserve theme setup before the first paint and update documentation favicon references.

Email editor

  • Remove the extra reveal delay when opening the lazy-loaded editor.
  • Continue loading editor code only when needed and reuse the loaded module on later openings.
  • Handle closing the editor while it loads and offer a reload if the editor download fails.

Install or upgrade

The Docker image supports Linux amd64 and arm64:

docker pull ghcr.io/cicerbro/postbox:1.3.4

For Compose deployments using latest:

docker compose pull
docker compose up -d

Retain your existing persistent volume and configuration. Linux amd64 and arm64 binaries and SHA-256 checksums are attached below.

Full changelog: v1.3.3...v1.3.4

Postbox v1.3.3

Choose a tag to compare

@CicerBro CicerBro released this 15 Oct 11:15

Postbox v1.3.3 improves page loading, makes campaign and audience controls respect brand permissions, and gives clearer feedback when data cannot be loaded.

Interface and performance

  • Load the email editor and its styles only when an editor is opened, keeping the rest of the page visible while it loads.
  • Make fields, feedback messages, table sorting, and status colours consistent across the application.
  • Show failed-query states clearly and improve empty table layouts.
  • Improve keyboard navigation between subscriber tabs.
  • Remove unused frontend code and obsolete styles.

Brand permissions

  • Apply brand permissions consistently to campaign, template, and segment controls.
  • Respect the same permissions when opening pages directly, including campaign editing and delivery settings.

Campaigns and deployment

  • Use native Postbox merge tags in starter campaign content.
  • Resolve tracking GeoIP addresses through configured trusted proxies, using the same client-IP handling as rate limits.
  • Cancel live campaign report requests during shutdown so open report tabs do not hold the server open for the shutdown timeout, while queued tracking events still flush.
  • Clarify nginx forwarding, Docker gateway trust, container recreation after environment changes, and shutdown timing in the deployment documentation.

Install or upgrade

The Docker image supports Linux amd64 and arm64:

docker pull ghcr.io/cicerbro/postbox:1.3.3

For Compose deployments using latest:

docker compose pull
docker compose up -d

Retain your existing persistent volume and configuration. When running behind a reverse proxy, configure POSTBOX_TRUSTED_PROXIES for the proxy addresses that connect to Postbox, as described in the deployment documentation. Recreate the container after changing environment settings.

Linux amd64 and arm64 binaries and SHA-256 checksums are attached below.

Full changelog: v1.3.2...v1.3.3

Postbox v1.3.2

Choose a tag to compare

@CicerBro CicerBro released this 14 Oct 17:44

Postbox v1.3.2 corrects the sent dates of imported Sendy campaigns and makes table actions consistent across the application.

Sendy campaign dates

  • Use the original Sendy sent timestamp when importing historical campaigns, so the campaign overview shows when a message was actually sent.
  • Fall back to the campaign creation date when no valid sent timestamp is available, instead of using the import time.

Interface improvements

  • Remove the redundant campaign overview heading and count above the table.
  • Match action icons in subscriber, segment, template, and user tables to the campaign table.
  • Rebuild bundled frontend assets with the updated controls.

Install or upgrade

The Docker image supports Linux amd64 and arm64:

docker pull ghcr.io/cicerbro/postbox:1.3.2

For Compose deployments using latest:

docker compose pull
docker compose up -d

Retain your existing persistent volume and configuration. The sent-date correction applies to future Sendy imports; existing imported dates are unchanged by this upgrade. Linux amd64 and arm64 binaries and SHA-256 checksums are attached below.

Full changelog: v1.3.1...v1.3.2

Postbox v1.3.1

Choose a tag to compare

@CicerBro CicerBro released this 14 Oct 17:30

Postbox v1.3.1 refreshes the campaign overview so you can review audience size and engagement without opening each report.

Campaign overview

  • Correct action-column striping and align the lone clone action to the right edge of campaign rows.
  • Show recipient counts, sent dates, unique opens, and unique clicks directly in the campaign table.
  • Keep live sending progress beneath the campaign title and show scheduled send times for queued campaigns.
  • Move campaign search into the table header, with a collapsible search field and clearer sorting controls.
  • Keep the previous results visible while campaign filters and pages refresh.
  • Simplify row actions with compact clone controls and remove the redundant report button. Campaign titles continue to open the appropriate editor or report.
  • Refine table spacing, status alignment, and campaign subtitles.

Deployment and development

  • Configure Compose to use a GeoIP country database at /var/lib/postbox/GeoLite2-Country.mmdb in the persistent data volume.
  • Add a local development run script.
  • Rebuild the bundled frontend assets with the updated campaign overview.

Install or upgrade

The Docker image supports Linux amd64 and arm64:

docker pull ghcr.io/cicerbro/postbox:1.3.1

For Compose deployments using the latest tag:

docker compose pull
docker compose up -d

Retain your existing persistent volume and configuration. Linux amd64 and arm64 binaries and SHA-256 checksums are attached below.

Full changelog: v1.3.0...v1.3.1

Postbox v1.3.0

Choose a tag to compare

@CicerBro CicerBro released this 14 Oct 14:22

Postbox v1.3.0 makes campaigns easier to reuse and monitor, improves subscriber search, and simplifies brand integrations.

Campaign workflows

  • Show scheduled campaigns after drafts, ordered by send date.
  • Duplicate sent and unsent campaigns to start a new draft from an existing message.
  • Return cancelled campaigns to draft when no messages have been sent.
  • Follow live sending progress directly in the campaign table and reports.
  • Simplify campaign reports and correct the send labels shown for imported campaigns.

Subscribers and reporting

  • Improve subscriber searches across email addresses and names.
  • Add subscribers without requiring the consent checkbox.
  • Correct overview chart date boundaries and labels for the selected timezone.

Settings and integrations

  • Simplify brand API key and webhook management, with clearer creation and editing dialogs.
  • Make confirmation dialogs consistent across campaign, subscriber, template, and settings actions, including feedback while an action is pending.
  • Remove duplicate administration headings and improve suppression form alignment.
  • Reduce excess padding in empty panels.

Maintenance and deployment

  • Automatically expire campaign message IDs and send-attempt records after 180 days.
  • Document the Cloudflare Browser Integrity Check skip rule for Postbox endpoints.
  • Refresh the bundled application and documentation assets.

Install or upgrade

The Docker image supports Linux amd64 and arm64:

docker pull ghcr.io/cicerbro/postbox:1.3.0

For Compose deployments, pull the image and recreate the service:

docker compose pull
docker compose up -d

Back up your database and secrets before upgrading, and retain your existing persistent volume. This release includes database migrations for send-history retention and timezone-aware chart history.

Linux amd64 and arm64 binaries are attached below, along with SHA-256 checksums.

Full changelog: v1.2.3...v1.3.0

Postbox v1.2.3

Choose a tag to compare

@CicerBro CicerBro released this 12 Oct 17:51

Postbox v1.2.3 brings account preferences, clearer campaign workflows, improved Sendy migration, and security and reliability fixes since v1.0.0.

Accounts and settings

  • Separate account, brand, and system settings with correctly scoped ownership and access.
  • Add user display names, sidebar account identity, account timezone preferences, and the ability to change your sign-in email.
  • Add optional Cloudflare Turnstile protection to sign-in, fix TOTP sign-in and session transitions, and clarify passkey registration requirements.
  • Fix direct navigation to settings pages and reduce unwanted password autofill in account security forms.

Campaigns and email editing

  • Improve the email editor toolbar, preview layouts, campaign preflight review, and test-send feedback.
  • Add template plain-text overrides and a name fallback merge tag, including support in sample previews.
  • Make campaign link checks advisory, preserve draft edits during initial saves, and reuse the campaign editor for collapsible message settings.
  • Fix browser-view and unsubscribe links in test emails, saved previews using opaque tokens, and blank previews caused by invalid merge tags.
  • Correct campaign country names and table sorting; improve campaign actions and handling of deleted or unavailable audiences.

Subscribers and subscription pages

  • Add suppression search and filters, subscriber last-activity sorting, and a created-at column.
  • Improve subscriber profile and segment dialogs, import forms, table styling, status badges, and dark-mode readability.
  • Refresh subscription and unsubscribe pages with sender branding, dark-mode support, and previews that match the live pages.
  • Default unsubscribe choices to the campaign's matching lists and simplify public unsubscribe pages.
  • Separate webhook activation from event selection and add configurable failed-job retention.

Sendy migration and reporting

  • Recover imported campaign outcome statistics and archive imported Sendy campaigns as finished.
  • Import blocked domains, handle SQL dumps containing executable comments, and remove the Sendy prefix from imported public IDs.
  • Suppress subscriber webhooks during CSV imports and make cancelled campaign reports accessible.
  • Add administrator brand and campaign deletion and expose list API IDs.
  • Add Amazon SES status and sending quota to the overview, persist the selected reporting date range, and simplify overview charts and the SES status footer.

Security and reliability

  • Bind tracking links and send receipts to immutable identities and support both known tracking migration histories through a forward migration.
  • Revalidate credentials during session creation, centralize HTML security policies, and protect public pages from proxy injection.
  • Fix SNS signing certificate verification when intermediates are missing, bound verifier caching, and improve callback and background failure diagnostics.
  • Improve lifecycle cleanup, batch audience and subscriber operations, move rendering preparation outside the SQLite writer, and index latest subscriber activity.
  • Strengthen backup recurrence coverage and Compose secret handling, with regression coverage for the security and reliability fixes.
  • Rebuild bundled frontend assets for v1.2.3, including the settings navigation and segment-dialog fixes.

Docker image

docker pull ghcr.io/cicerbro/postbox:1.2.3

Verified image digest: sha256:a6aada81af58c55a8dd95dda5d83d103005942ea167d6ee808fbb3b5abfa2c2b.

Upgrading from v1.0.0

Back up your database and secrets before upgrading, retain the existing persistent storage, and restart Postbox with the v1.2.3 image. This release includes database migrations for settings, templates, subscriber activity, and tracking identities.

Full changelog: v1.0.0...v1.2.3

Postbox v1.0.0

Choose a tag to compare

@CicerBro CicerBro released this 11 Oct 15:44

Initial production release of Postbox, a self-hosted newsletter service using Amazon SES and SQLite.

  • Multiple brands, subscribers, lists, segments, templates, and campaigns.
  • Scheduled sending, delivery reports, tracking, signed unsubscribe links, and consent handling.
  • Password/TOTP and passkey authentication, API credentials, and Sendy migration.
  • Embedded web application and documentation, durable jobs, and daily online backups.

Container: ghcr.io/cicerbro/postbox:1.0.0 (private, Linux amd64).
The v1.0.0 image tag refers to the same image. Authenticate to GHCR with package read access before pulling.

Production requires an HTTPS reverse proxy, persistent database and secret storage, and Amazon SES configuration. Sending is disabled on a fresh database.