Commit Graph
114 Commits
Author SHA1 Message Date
Linus Rath 4396bc9943 Merge branch 'main' of https://github.com/bulwarkmail/webmail 2026-03-13 19:48:07 +01:00
Linus Rath 2fe1b01d4d feat: add configurable logo to login page with light/dark mode support
- Display Bulwark logo on the login page, with theme-aware switching
  between light and dark variants based on the resolved theme
- Add LOGIN_LOGO_LIGHT_URL and LOGIN_LOGO_DARK_URL env variables to
  allow custom logo overrides (defaults to bundled Bulwark branding)
- Expose logo config through /api/config endpoint and useConfig hook
- Add logo URL prompts to the setup.sh installer branding step
- Rename branding assets to use underscores instead of spaces
2026-03-13 19:45:09 +01:00
Linus Rath d49dcb52e6 feat: add .env.dev.example for development configuration 2026-03-13 19:20:28 +01:00
Linus Rath 81c0a8a971 chore: include .env.dev.example in .dockerignore 2026-03-13 19:18:55 +01:00
Linus Rath 56f4195ab5 chore: update dependencies in changelog for version 1.2.3 2026-03-13 15:05:13 +01:00
Linus Rath 099434a125 chore: release v1.2.3
Bump version to 1.2.3 across package.json, VERSION, README badge,
and login page. Add changelog entry for features and fixes since v1.1.2.
2026-03-13 14:48:32 +01:00
Linus Rath 0cd928d1fe URL-encode spaces in logo srcset paths for GitHub compatibility 2026-03-13 14:36:02 +01:00
Linus Rath 04e8b023de Fix logo dark/light mode: white text for dark bg, dark text for light bg 2026-03-13 14:34:22 +01:00
Linus Rath ecfb197c82 Swap dark/light mode logo sources to match actual file contents 2026-03-13 14:33:00 +01:00
Linus Rath 9438cf75ab Update logos to use lettering variants with light/dark mode support 2026-03-13 14:30:39 +01:00
Linus Rath 091c10d828 Add branding assets, update logos in README/CONTRIBUTING/ROADMAP, replace favicon with SVG icon 2026-03-13 14:27:35 +01:00
Linus Rath 02808fa4c3 docs: update contributing guidelines and enhance README formatting 2026-03-13 14:12:20 +01:00
Linus Rath 82a790de0f docs: rework README with logo, improved layout, and updated features 2026-03-13 13:17:43 +01:00
Linus Rath e85d0b946e chore: rename JMAP Webmail to Bulwark Webmail and update all URLs 2026-03-13 13:14:08 +01:00
Linus Rath 02344d169c feat: expand addon system documentation with rebuild requirements and runtime loading strategy 2026-03-13 03:16:07 +01:00
Linus Rath 1267efa307 docs: add RFC specifications (txt + pdf) organized by category (core, mail, contacts, calendar, sieve, quotas, auth) 2026-03-13 02:51:07 +01:00
Linus Rath 5a679275ca feat: enhance JMAP server verification with multiple endpoint checks and improved response handling 2026-03-13 01:19:16 +01:00
Linus Rath 25f0088957 feat: add JMAP server URL validation and improve user prompts in setup script 2026-03-13 01:14:56 +01:00
Linus Rath 18485951c7 refactor: rework setup.sh for better UX and terminal compatibility
- Replace all Unicode symbols (─, █, ░, ●, ✓, ✗, ➜, braille spinners)
  with ASCII-safe equivalents that render correctly when piped via
  curl | bash
- Add contextual TIP/NOTE hints to every input field explaining what
  each setting does and showing examples
- Redesign progress bar to show labeled step names
  (Server > Auth > Security > Logging > Branding > Deploy > Confirm)
  with color-coded completion state
- Replace BG_BLUE block header with ASCII box() function
- Add section headers with subtitles to each step
- Add deployment method recommendations and requirement notes
- Add "Next steps" checklist to completion screen
- Show existing .env.local detection notice on welcome screen
- Use dotted-line separators in summary for cleaner alignment
- Fix shell injection vulnerability: replace eval with printf -v
  in prompt_value and prompt_yesno helpers
2026-03-13 01:08:47 +01:00
Linus Rath 5e2329b55f fix: handle non-interactive terminal scenarios in setup script 2026-03-13 00:58:06 +01:00
Linus Rath 46a80f3773 fix: reopen stdin from terminal when script is piped 2026-03-13 00:48:19 +01:00
Linus Rath 21e6fd9078 feat: reopen stdin from terminal when script is piped 2026-03-13 00:45:01 +01:00
Linus Rath 2a48740ebd fix: ensure SCRIPT_DIR assignment is not affected by unset variables 2026-03-13 00:43:53 +01:00
Linus Rath 8509550812 refactor: simplify SCRIPT_DIR assignment in setup script 2026-03-13 00:42:42 +01:00
Linus Rath 60a6ede063 fix: ensure SCRIPT_DIR is set correctly in setup script 2026-03-13 00:40:06 +01:00
Linus Rath eb6e73191f feat: add dry-run option to setup script for safer configuration testing 2026-03-13 00:36:51 +01:00
Linus Rath af64c96b9f feat: add interactive setup script for JMAP Webmail configuration 2026-03-13 00:36:22 +01:00
Linus Rath b090bf6d52 feat: add support for OAuth-only login mode and update configuration handling 2026-03-12 22:05:29 +01:00
Linus Rath ae29e64197 feat: implement hover functionality for calendar events and enhance email deletion confirmation 2026-03-12 19:53:08 +01:00
Linus Rath 260ea7088d Add localization updates for Dutch and Portuguese languages
- Enhanced error messages and connection prompts in Dutch and Portuguese.
- Added new UI text for password visibility, TOTP toggle, and remember me options.
- Improved sidebar and email composer hints for better user guidance.
- Introduced folder management features with relevant translations.
- Updated contact management fields and labels for clarity and completeness.
- General cleanup and reorganization of existing translations for consistency.
2026-03-12 16:24:03 +01:00
Linus Rath db8e827f68 feat: add tests for translations completeness across locales 2026-03-12 16:14:35 +01:00
Linus Rath 6f0d47cbd9 feat: improve email selection logic after deletion and archiving 2026-03-12 16:12:16 +01:00
Linus Rath 2a73adf588 feat: update layout height to use dynamic viewport height for better responsiveness 2026-03-12 16:05:40 +01:00
Linus Rath 7fedcb8e58 feat: enhance contact management and vCard support
- Added support for parsing and generating additional vCard properties including GENDER, LOGO, SOUND, LABEL, CALURI, CALADRURI, FBURL, and SOURCE.
- Extended ContactCard interface to include new fields such as gender, media, anniversaries, online services, and personal info.
- Implemented logic to handle multi-part TLDs for domain extraction in avatars.
- Improved avatar component to prioritize contact photos and handle inline images in emails.
- Updated localization files to include new fields and labels for contact details.
- Refactored contact store to expose a method for retrieving contact photos.
- Enhanced unit tests to cover new vCard properties and ensure correct parsing and generation.
2026-03-12 15:54:09 +01:00
Linus Rath 4737f2928b Remove Docker Hub, publish only to GHCR 2026-03-12 13:25:14 +01:00
Linus Rath d1d2a1dc53 Merge branch experimental into main 2026-03-12 13:16:13 +01:00
Linus Rath 3efb292c3b feat: implement negative caching for favicon requests to improve performance 2026-03-12 03:14:07 +01:00
Linus Rath bb40326809 feat: implement tagging functionality for emails with drag-and-drop support 2026-03-12 03:10:40 +01:00
Linus Rath d8b0f013e8 style: update background colors for selected and unread email items 2026-03-12 02:43:38 +01:00
Linus Rath f751274e41 fix: fix print functionality for email content 2026-03-12 02:37:23 +01:00
Linus Rath 2249741c61 feat: add login page customization options and corresponding translations 2026-03-12 02:31:56 +01:00
Linus Rath ab72fc06ff feat: add Stalwart account security management
- Add Stalwart API client library (lib/stalwart/client.ts)
- Add server-side proxy routes for auth, crypto, password, principal, probe
- Add account security Zustand store with full state management
- Add Security settings tab with password change, display name, TOTP 2FA,
  app passwords, and encryption-at-rest controls
- Add stalwartFeaturesEnabled config flag (opt-out via STALWART_FEATURES=false)
- Add i18n translations for all 8 locales (en, de, es, fr, it, ja, nl, pt)
- Add tests for Stalwart client (24 tests) and security store (29 tests)
2026-03-12 02:20:56 +01:00
Linus Rath 68d4a9a641 feat: add email selection functionality with toggle and update translations 2026-03-12 00:32:36 +01:00
Linus Rath 5598c436f2 feat: add connection loss handling and update auth store 2026-03-12 00:08:52 +01:00
Linus Rath 256ff7698d feat: enhance email selection with checkbox functionality and improve session handling 2026-03-11 23:57:06 +01:00
Linus Rath 7848c90625 feat: add error handling for sessionStorage in redirect logic across multiple pages 2026-03-11 23:35:27 +01:00
Linus Rath f996ab77b8 feat: implement redirect after login functionality across multiple pages 2026-03-11 23:35:00 +01:00
Linus Rath a88b4e4407 feat: enhance folder settings with subfolder creation and navigation improvements 2026-03-11 23:19:01 +01:00
Linus Rath cc8195209b feat: add toolbar position setting and update email viewer layout
- Introduced a new setting for toolbar position in appearance settings, allowing users to choose between 'top' and 'below-subject'.
- Updated the EmailViewer component to conditionally render the toolbar based on the selected position.
- Enhanced the UI for the toolbar with action buttons for replying, archiving, and deleting emails.
- Added translations for the new toolbar position setting in multiple languages.
2026-03-11 22:42:21 +01:00
Linus Rath 288205fbac feat: add recipient popover component for enhanced contact interaction 2026-03-11 21:23:57 +01:00