Releases: etiennecollin/unifi-voucher-manager
Releases · etiennecollin/unifi-voucher-manager
1.4.0
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
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
What's changed?
Features
- Added voucher Print flow: new print page & styles with
list
andgrid
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
withVoucherCode
; theme & Wi-Fi logic moved intoGlobalContext
. - Vouchers tab: improved filtering, selection state, batch delete, and added print actions.
SuccessModal
now takes{ voucher: Voucher }
(not a raw code string).ThemeSwitcher
usesuseGlobal
theme.
Other
- Bumped frontend dependencies
Full Changelog: 1.2.2...1.3.0
1.2.2
What's Changed
Fixes
- Fixed the issue from #3 where UniFi controllers accessed over HTTP returned the vouchers list under the
data
field (instead ofvouchers
, as they do when using HTTPS).
Full Changelog: 1.2.1...1.2.2
1.2.1
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
What's Changed
Features
- Added WiFi QR code feature
- Accept
hidden
boolean astrue/false
or1/0
and default tofalse
- 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
What's Changed
Breaking Changes
- Renamed variable to control backend log level from
RUST_LOG
toBACKEND_LOG_LEVEL
.
Full Changelog: 1.0.1...1.1.0
1.0.1
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