From 2ad2bb1e09a30f01fa25bc953791b8a93d2f8010 Mon Sep 17 00:00:00 2001 From: Linus Rath <139418639+rathlinus@users.noreply.github.com> Date: Mon, 11 May 2026 20:00:55 +0200 Subject: [PATCH] chore: update version to 1.6.4 --- CHANGELOG.md | 38 ++++++++++++++++++++++++++++++++++++++ README.md | 25 ++++++++++++++++++++++++- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 65 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d954cd75..0926adcc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,43 @@ # Changelog +## 1.6.4 (2026-05-11) + +### Web Setup Wizard + +First-launch web setup wizard. New installs no longer need to hand-edit `.env.local` - point a browser at the container and the wizard probes the JMAP server(s), configures OAuth/OIDC, generates the session secret, accepts branding uploads, and provisions the initial admin password. Admin storage is now split into `ADMIN_CONFIG_DIR` (operator-authored, mountable read-only after setup) and `ADMIN_STATE_DIR` (runtime audit log and login timestamps); the legacy `ADMIN_DATA_DIR` keeps working for existing installs. + +### Features + +- **Setup**: Web setup wizard with multi-step flow: Server, Auth, Security, Logging, Branding, Review, Admin +- **Setup**: Admin config/state directory split with optional `ADMIN_CONFIG_READONLY` for immutable deployments (#226) +- **Setup**: File uploads on the wizard branding step +- **Setup**: Redesigned review step with grouped summary and an advanced toggle for the full config +- **Setup**: Require explicit confirmation when JMAP probe finds no session +- **Mail**: Drag attachments out of the viewer to the local file system (#267) +- **Mail**: Reading Pane at Bottom mail layout (#262) +- **Mail**: Configurable signature position - above or below quoted text (#266) +- **Mail**: Signature position is now searchable from the email behavior settings +- **Mail**: Show avatar in Focused list for compact density and above +- **Mail**: Align Focused list preview with other layout previews +- **Compose**: From-header override in the composer with catch-all auto-reply, replies to an alias on a domain you own pre-fill the alias as the sender even when it isn't a configured identity (#246) + +### Performance + +- **Mail**: Prefetch initial email data on login +- **Auth**: Parallelize login round-trips and drop redundant JMAP re-verify + +### Fixes + +- **Auth**: Skip upstream JMAP reverify for trusted URLs (#237) +- **Auth**: Show account identity in the switcher header instead of the sending alias +- **Compose**: Fall back to the primary identity signature on reply +- **Setup**: Drop redundant first-login banner about removing `ADMIN_PASSWORD` (#222) +- **UI**: Consistent notice cards for server probe results + +### i18n + +- Add missing translation keys across 15 locales + ## 1.6.3 (2026-05-08) ### Features diff --git a/README.md b/README.md index e8851626..5d8ae6eb 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ A modern, self-hosted webmail client for [Stalwart Mail Server](https://stalw.ar [![License: AGPL v3](https://img.shields.io/badge/license-AGPL%20v3-blue.svg?logo=gnu&logoColor=white)](LICENSE) [![Discord](https://img.shields.io/discord/1482128142939455674?color=7289da&label=discord&logo=discord&logoColor=white)](https://discord.gg/tYCujymGrT) -[![Version](https://img.shields.io/badge/version-1.6.3-green.svg?logo=git&logoColor=white)](CHANGELOG.md) +[![Version](https://img.shields.io/badge/version-1.6.4-green.svg?logo=git&logoColor=white)](CHANGELOG.md) [![Docker](https://img.shields.io/badge/docker-ghcr.io%2Fbulwarkmail%2Fwebmail-blue?logo=docker&logoColor=white)](https://ghcr.io/bulwarkmail/webmail) [![Grafana](https://img.shields.io/badge/grafana-dashboard-orange?logo=grafana&logoColor=white)](https://grafana.external.bulwarkmail.org/) @@ -20,6 +20,29 @@ A modern, self-hosted webmail client for [Stalwart Mail Server](https://stalw.ar --- +## Installer + +New in **1.6.4**: a web-based setup wizard runs on first launch – no `.env.local` editing, no shelling into the container. + + + + Setup wizard + + +Point a browser at the running container and the wizard guides you through: + +- **Server** – probe one or more JMAP endpoints, optional auto-pick by email domain, Stalwart feature toggle +- **Auth** – OAuth2 / OIDC discovery and validation, or basic-auth fallback +- **Security** – generate or paste a `SESSION_SECRET`, opt into settings sync +- **Logging** – text or JSON, level +- **Branding** – upload favicon, app logos, login logos, and company / legal URLs +- **Review** – grouped summary with an advanced toggle for the full config +- **Admin** – set the initial admin password and optionally drop a `.config-locked` marker so the config volume can be remounted read-only + +The wizard writes to `ADMIN_CONFIG_DIR` (`./data/admin` by default). Setting `JMAP_SERVER_URL` in the environment skips the wizard and uses env-managed configuration instead. + +--- + ## Screenshots diff --git a/package-lock.json b/package-lock.json index af394484..4401e23d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bulwark-webmail", - "version": "1.6.3", + "version": "1.6.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "bulwark-webmail", - "version": "1.6.3", + "version": "1.6.4", "license": "AGPL-3.0-only", "dependencies": { "@tanstack/react-virtual": "^3.13.24", diff --git a/package.json b/package.json index c13ab0e8..05e42ba4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bulwark-webmail", - "version": "1.6.3", + "version": "1.6.4", "description": "Bulwark Webmail - a modern webmail client built for Stalwart Mail Server", "author": "Bulwark Webmail ", "license": "AGPL-3.0-only",