github jhaals/yopass 12.0.0

one day ago

I'm happy to announce Yopass 12.0.0, featuring a completely rewritten modern frontend and enhanced configurability!

๐ŸŽ‰ Major Features

โœจ Complete Frontend Rewrite

  • Modern Technology Stack: Complete rewrite of the frontend using Tailwind CSS and DaisyUI components for improved performance and maintainability
  • Enhanced User Experience: Cleaner, more intuitive interface with improved accessibility and responsive design
  • New frontend configuration system

๐ŸŒ Internationalization Support

  • Multi-language Support: Built-in internationalization using react-i18next
  • Language Switcher: Dynamic language switching in the UI (currently supports English and Swedish)
  • Browser Language Detection: Automatic language detection based on browser preferences
  • Extensible Translation System: Easy to add new languages via JSON translation files

๐ŸŽจ Dark Mode & Theming

  • Theme Toggle: Native dark/light mode support with persistent user preference
  • Modern Design System: Consistent design language using DaisyUI components
  • Improved Visual Design: Enhanced styling with better contrast and readability

๐Ÿงช Comprehensive Testing

  • Playwright Integration: Modern end-to-end testing framework replacing Cypress
  • Extensive Test Coverage: Comprehensive test suites for all major functionality
  • Cross-browser Testing: Tests run across Chrome, Firefox, and Safari
  • CI/CD Integration: Automated testing in GitHub Actions

๐Ÿ”ง New Configuration Options

Yopass 12.0.0 introduces a powerful dynamic configuration system that allows the frontend to adapt its behavior based on server-side settings. All configuration is now delivered via the /config API endpoint, enabling administrators to control frontend features without requiring frontend rebuilds.

--disable-upload / DISABLE_UPLOAD

  • Purpose: Completely disables file upload functionality
  • Server Impact: Removes all /file endpoints from the server
  • Frontend Impact: Hides upload buttons, routes, and related UI elements
  • Use Case: Ideal for deployments that only need text secret sharing
  • Default: false (uploads enabled)

--prefetch-secret / PREFETCH_SECRET

  • Purpose: Controls whether secrets are prefetched for one-time viewing optimization
  • Server Impact: Enables/disables /secret/{id}/status and /file/{id}/status endpoints
  • Frontend Impact:
    • When enabled: Shows prefetch information and one-time download warnings
    • When disabled: Secrets are fetched immediately without status checks
  • Use Case: Disable for improved privacy (no metadata requests) or simplified UX
  • Default: true (prefetching enabled)

--disable-features / DISABLE_FEATURES

  • Purpose: Hides the features section on the homepage
  • Server Impact: No server-side changes
  • Frontend Impact: Removes the features showcase section from the main page
  • Use Case: Clean, minimal interface for corporate deployments
  • Default: false (features section visible)

--no-language-switcher / NO_LANGUAGE_SWITCHER (New in 12.0.0)

  • Purpose: Hides the language switcher from the navigation bar
  • Server Impact: No server-side changes
  • Frontend Impact: Removes language selection dropdown from the UI
  • Use Case: Single-language deployments or custom language handling
  • Default: false (language switcher visible)

๐Ÿ”„ Dynamic Configuration Loading

The frontend automatically:

  • Fetches configuration on startup from /config endpoint
  • Adapts the UI based on server settings without requiring rebuilds
  • Caches configuration for improved performance
  • Gracefully degrades with default settings if config loading fails

๐ŸŒ Environment Variable Support

All configuration flags support environment variables with _ replacing -:

  • DISABLE_UPLOAD=true
  • PREFETCH_SECRET=false
  • DISABLE_FEATURES=true
  • NO_LANGUAGE_SWITCHER=true

๐Ÿ›  Technical Improvements

๐Ÿ“ Project Structure

The frontend has been completely reorganized:

  • website/: New modern frontend (Tailwind CSS + DaisyUI)
  • legacy-site/: Previous Material-UI frontend (will be removed in the future)

๐Ÿ”„ Migration Notes

  • The new frontend maintains full API compatibility with existing deployments
  • All existing configuration options continue to work

Don't miss a new yopass release

NewReleases is sending notifications on new releases.