Skip to content

Releases: etiennecollin/unifi-voucher-manager

1.4.0

07 Sep 22:53
1.4.0
ef1e7a7
Compare
Choose a tag to compare

What's changed

Introducing automated guest voucher management with kiosk display and real-time cross-client updates!

Perfect for: Hotels, cafes, offices, co-working spaces, or anywhere you need automated guest WiFi access with minimal management overhead.

Features

Kiosk Mode

  • Dedicated Kiosk Page (/kiosk): Perfect for reception areas and unattended guest access
  • QR Code Integration: Guests can scan to connect directly to your WiFi network
  • Auto-Generated Vouchers: Rolling vouchers are created automatically when needed
  • Real-Time Display: Kiosk updates instantly when new vouchers are generated

Rolling Voucher System

  • Dedicated Welcome Page (/welcome): When a guest uses a voucher on the captive portal and is redirected to /welcome, a new one is automatically created for the next user
  • Smart Deduplication: IP-based voucher naming prevents abuse from page reloads
  • Daily Cleanup: Expired rolling vouchers are automatically purged at midnight (timezone-aware)
  • UniFi Integration: Works seamlessly with UniFi Controller hotspot redirects

Real-Time Updates Across All Clients

  • Server-Sent Events (SSE): All open browser tabs and windows update automatically
  • Cross-User Synchronization: Multiple users see changes instantly
  • Reliable Connection Management: Automatic reconnection handling for stable updates

Security in Mind

  • Network Isolation: Users on the guest subnetwork are restricted to the /welcome page using robust CIDR subnet filtering

Fixes and Refactors

Backend Enhancements

  • Implemented server actions for broadcasting voucher updates
  • Enhanced API error handling and URL encoding
  • Backend cleanup and refactoring for better maintainability

Frontend Polish

  • Modular WiFi QR code component for reusability
  • Improved welcome page design and functionality
  • Better responsive design for small screens
  • Enhanced voucher cards and status displays
  • Proper semantic HTML structure (<main> tags)

Bug Fixes & Stability

  • Fixed SSE reconnection issues during page reloads
  • Resolved crypto.randomUUID() compatibility for some devices
  • Fixed modal button sizing and positioning
  • Better UI for unavailable QR codes

Setup Requirements

To use the new rolling voucher system, read Rolling Vouchers and Kiosk Page from the README.


Full Changelog: 1.3.1...1.4.0

1.3.1

22 Aug 17:35
1.3.1
1f534b4
Compare
Choose a tag to compare

What's changed?

Fixes

  • If the backend fails to connect to the UniFi controller when fetching the controller ID, it now waits and retries. This resolves issues that occurred after a system reboot, where all services restart simultaneously and the controller (e.g., behind a reverse proxy) may not yet be fully available.

Full Changelog: 1.3.0...1.3.1

1.3.0

20 Aug 00:47
1.3.0
ad42110
Compare
Choose a tag to compare

What's changed?

Features

  • Added voucher Print flow: new print page & styles with list and grid modes and UI print buttons.
  • Global app context: GlobalProvider / useGlobal for theme + Wi-Fi QR.
  • Added formatMaxGuests() utility.

Fixes

  • Centralized Wi-Fi QR generation to avoid duplication.
  • Corrected voucher click/selection behavior.

Refactors

  • Replaced CopyCode with VoucherCode; theme & Wi-Fi logic moved into GlobalContext.
  • Vouchers tab: improved filtering, selection state, batch delete, and added print actions.
  • SuccessModal now takes { voucher: Voucher } (not a raw code string).
  • ThemeSwitcher uses useGlobal theme.

Other

  • Bumped frontend dependencies

Full Changelog: 1.2.2...1.3.0

1.2.2

17 Aug 02:29
1.2.2
ca94b4c
Compare
Choose a tag to compare

What's Changed

Fixes

  • Fixed the issue from #3 where UniFi controllers accessed over HTTP returned the vouchers list under the data field (instead of vouchers, as they do when using HTTPS).

Full Changelog: 1.2.1...1.2.2

1.2.1

17 Aug 02:11
1.2.1
0f0a0cc
Compare
Choose a tag to compare

What's Changed

Features

  • Introduced a UNIFI_HAS_VALID_CERT option, which can be set to false for users connecting directly to their UniFi consoles via IP on port 443 without a reverse proxy (in this case, the certificate is self-signed). This closes #3.
  • Improved requests error logging.
  • Added runtime checks for protocol (http:///https://) in the UNIFI_CONTROLLER_URL.
  • Improved default compose.yaml file.

Full Changelog: 1.2.0...1.2.1

1.2.0

14 Aug 18:05
1.2.0
0c898b3
Compare
Choose a tag to compare

What's Changed

Features

  • Added WiFi QR code feature
  • Accept hidden boolean as true/false or 1/0 and default to false
  • Improved test tab
  • Added ability to get the ref of a modal container
  • Added warning notification variant

Fixes

  • Removed date formatting as it is handled in the backend
  • Tabs offset from top now follows header height
  • Dockerignore now correctly used
  • Duplicate computations and renderings fixed
  • Hydration issues with wifiConfig fixed
  • Voucher cards now allow omitting onClick
  • Button utility styling fixed

Refactors

  • Do not hardcode valid wifi types
  • Cleanup of globals.css

Documentation

  • Updated README with new WIFI_* variables

Full Changelog: 1.1.0...1.2.0

1.1.0

09 Aug 21:16
1.1.0
0cf4147
Compare
Choose a tag to compare

What's Changed

Breaking Changes

  • Renamed variable to control backend log level from RUST_LOG to BACKEND_LOG_LEVEL.

Full Changelog: 1.0.1...1.1.0

1.0.1

09 Aug 20:49
1.0.1
3e7fe4b
Compare
Choose a tag to compare

What's Changed

Features

Repository

  • Added CI for docker build/push actions.

Backend

  • Added support for loading .env files to improve environment configuration flexibility.

Fixes

Frontend (Safari/iOS)

  • Fixed a timeout delay issue before re-enabling transitions in Safari.
  • Addressed scrolling and safe area issues on iOS devices.
  • Removed debug logging related to Safari transitions.

Environment Handling

  • Prevented the frontend from accessing sensitive UniFi environment variables by overriding them. I am not sure if that was truly a bug, but this should prevent a future vulnerability (?).

Style

  • Fixed Docker Compose image quoting to align with style standards.

Full Changelog: 1.0.0...1.0.1

1.0.0

09 Aug 20:47
1.0.0
4ffa831
Compare
Choose a tag to compare