selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
unifi-voucher-site logo

Self-host unifi-voucher-site

8.13.2

Web-based UniFi guest voucher generator and manager

ReleaseOpen SourceMIT
Updated9 hours ago
LanguageEJS
Setup difficultyModerate
MobileResponsive
ThemeDark mode
Stars
311
Port
3000 (HTTP web UI and API)
Requires
UniFi OS Console
Docker
glenndehaan/unifi-voucher-site
Install with Docker Compose
Login screen on desktopVouchers overview on desktopCreate voucher screen on desktopVoucher details on desktopLogin screen on mobileVouchers overview on mobileCreate voucher screen on mobileVoucher details on mobileKiosk mode self-service interfacePDF voucher print example

What is unifi-voucher-site?

UniFi Voucher Site is a self-hosted web application for generating and managing guest vouchers on UniFi networks. It provides a web interface and REST API to create vouchers with custom expiration times, data caps, and bandwidth limits. Users can authenticate via OpenID Connect for single sign-on, a built-in password, or run without any login. The software includes a self-service kiosk for guest voucher creation, thermal receipt printing through PDF or ESC/POS network printers, email delivery using SMTP, QR codes for easy device connection, and support for multiple languages. The Node.js and Express application runs in Docker and is configured through environment variables or a JSON file. It requires a UniFi OS Console such as a Cloud Gateway, Cloud Key, or UniFi OS Server with an authentication token from the Integrations tab or a Site Manager credential.

Should you self-host unifi-voucher-site?

unifi-voucher-site scores 52/100 on selfhost.directory (how scoring works) and ranks #18 of 34 in Network Management. It has 311 GitHub stars.

It shipped 15 stable releases in the past year. The latest, 8.13.2, came out on 18 October 2026. New versions land roughly every 3 weeks.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in EJS.

Its closest alternative on selfhost.directory is 3x-ui (84/100, 48 764 stars). It scores higher overall, so compare the two before you pick. See unifi-voucher-site vs 3x-ui side by side.

Features

  • Automated Voucher Cleanup
  • Bulk Printing
  • Config file support
  • Custom Branding
  • Email delivery
  • Home Assistant Integration
  • Multi-language Support
  • Multiple Voucher Types
  • OIDC Authentication
  • QR Code Generation
  • REST API
  • Self-Service Kiosk Mode
  • Thermal Receipt Printing
  • Voucher Management

unifi-voucher-site README

How to install unifi-voucher-site

Install unifi-voucher-site with Docker Compose

services: unifi-voucher-site: image: glenndehaan/unifi-voucher-site:latest ports: - "3000:3000" environment: UNIFI_IP: '192.168.1.1' UNIFI_PORT: 443 UNIFI_TOKEN: '' UNIFI_SITE_ID: 'default' AUTH_INTERNAL_PASSWORD: '0000' volumes: - ./branding:/kiosk - ./options.json:/data/options.json

Full configuration via environment variables or options.json; volumes for custom branding

How to configure unifi-voucher-site

  • AUTH_DISABLEfalseDisables the login/authentication for the portal and API

    Disables the login/authentication for the portal and API

    values: true,false

  • AUTH_INTERNAL_BEARER_TOKEN00000000-0000-0000-0000-000000000000The Bearer token used for the API

    The Bearer token used for the API

  • AUTH_INTERNAL_ENABLEDtrueToggle to enable/disable internal authentication

    Toggle to enable/disable internal authentication

    values: true,false

  • AUTH_INTERNAL_PASSWORD0000The password used to log in to the voucher portal Web UI

    The password used to log in to the voucher portal Web UI

  • AUTH_OIDC_APP_BASE_URLOIDC UniFi Voucher base url (This application)

    OIDC UniFi Voucher base url (This application)

  • AUTH_OIDC_CLIENT_IDOIDC client id provided by oauth provider

    OIDC client id provided by oauth provider

  • AUTH_OIDC_CLIENT_SECRETOIDC client secret provided by oauth provider

    OIDC client secret provided by oauth provider

  • AUTH_OIDC_ENABLEDfalseToggle to enable/disable OIDC authentication

    Toggle to enable/disable OIDC authentication

    values: true,false

  • AUTH_OIDC_ISSUER_BASE_URLOIDC issuer base url provided by oauth provider

    OIDC issuer base url provided by oauth provider

  • AUTH_OIDC_REDIRECT_LOGINfalseSkips the internal login page, and redirects to the OIDC auth flow

    Skips the internal login page, and redirects to the OIDC auth flow

    values: true,false

  • AUTH_OIDC_RESTRICT_VISIBILITYfalseRestricts user access to only vouchers created within their own organization

    Restricts user access to only vouchers created within their own organization

    values: true,false

  • BIND_ADDRESS0.0.0.0Specifies the IP address to bind to

    Specifies the IP address to bind to

  • KIOSK_EMAILfalseEnable/disable the email voucher button

    Enable/disable the email voucher button

    values: true,false

  • KIOSK_ENABLEDfalseEnable/disable the kiosk page on /kiosk

    Enable/disable the kiosk page on /kiosk

    values: true,false

  • KIOSK_HOMEPAGEfalseEnable/disable an override to redirect to the Kiosk on the / url

    Enable/disable an override to redirect to the Kiosk on the / url

    values: true,false

  • KIOSK_NAME_REQUIREDfalseEnable/disable the requirement for a guest to enter their name

    Enable/disable the requirement for a guest to enter their name

    values: true,false

  • KIOSK_PRINTEREnable/disable a printer for Kiosk Vouchers (escpos ip)

    Enable/disable a printer for Kiosk Vouchers (escpos ip)

  • KIOSK_TIMEOUT60Sets the Kiosk timeout in seconds

    Sets the Kiosk timeout in seconds

  • KIOSK_VOUCHER_TYPES480,1,,,;Kiosk Voucher Types format: expiration,usage,upload,download,data

    Kiosk Voucher Types format: expiration,usage,upload,download,data

  • LOG_LEVELinfoSets the application Log Level

    Sets the application Log Level

    values: error,warn,info,debug,trace

  • PRINTERSEnable/disable the printers and setup available printers (pdf,escpos ip)

    Enable/disable the printers and setup available printers (pdf,escpos ip)

  • PRINTERS_LAYOUTfullSet the layout to print (full, slim_qr, slim)

    Set the layout to print (full, slim_qr, slim)

    values: full,slim_qr,slim

  • SERVICE_APIfalseEnable/disable the API

    Enable/disable the API

    values: true,false

  • SERVICE_WEBtrueEnable/disable the Web UI

    Enable/disable the Web UI

    values: true,false

  • SMTP_FROMSMTP Mail from email address

    SMTP Mail from email address

  • SMTP_HOSTSMTP Mail server hostname/ip

    SMTP Mail server hostname/ip

  • SMTP_PASSWORDSMTP Mail password

    SMTP Mail password

  • SMTP_PORTSMTP Mail server port

    SMTP Mail server port

  • SMTP_SECUREfalseSMTP Mail use TLS?

    SMTP Mail use TLS?

    values: true,false

  • SMTP_USERNAMESMTP Mail username

    SMTP Mail username

  • TASK_CLEANUP_EXPIREDfalseEnables/disables an automated task to clean up expired vouchers from UniFi

    Enables/disables an automated task to clean up expired vouchers from UniFi

    values: true,false

  • TASK_CLEANUP_UNUSEDfalseEnables/disables an automated task to clean up unused vouchers from UniFi

    Enables/disables an automated task to clean up unused vouchers from UniFi

    values: true,false

  • TASK_CLEANUP_UNUSED_DAYS1Specifies the amount of days to wait before removing the unused vouchers

    Specifies the amount of days to wait before removing the unused vouchers

  • TRANSLATION_DEBUGfalseEnables/disables translation debugging

    Enables/disables translation debugging

    values: true,false

  • TRANSLATION_DEFAULTenSets the default translation for dropdowns

    Sets the default translation for dropdowns

  • TRANSLATION_HIDDEN_LANGUAGESHides languages from the UI

    Hides languages from the UI

  • UNIFI_IPThe IP address to your UniFi OS Console

    The IP address to your UniFi OS Console

  • UNIFI_PORT443The port of your UniFi OS Console (443 or 8443)

    The port of your UniFi OS Console (443 or 8443)

  • UNIFI_SITE_IDdefaultThe UniFi Site ID

    The UniFi Site ID

  • UNIFI_SITE_MANAGERfalseSet to true if using UniFi's Site Manager instead of local IP

    Set to true if using UniFi's Site Manager instead of local IP

    values: true,false

  • UNIFI_SITE_MANAGER_CONSOLE_IDThe console id of the site if using UniFi's Site Manager

    The console id of the site if using UniFi's Site Manager

  • UNIFI_SSIDThe UniFi SSID where guests need to connect to

    The UniFi SSID where guests need to connect to

  • UNIFI_SSID_PASSWORDThe UniFi SSID WPA/WPA2/WPA3 Password

    The UniFi SSID WPA/WPA2/WPA3 Password

  • UNIFI_TOKENThe API Key created on the integrations tab within UniFi OS

    The API Key created on the integrations tab within UniFi OS

  • VOUCHER_CUSTOMtrueAllow users to create custom vouchers types within the UI

    Allow users to create custom vouchers types within the UI

    values: true,false

  • VOUCHER_NOTE_REQUIREDfalseForce users to provide a note within the UI

    Force users to provide a note within the UI

    values: true,false

  • VOUCHER_TYPES480,1,,,;Voucher Types format: expiration,usage,upload,download,data

    Voucher Types format: expiration,usage,upload,download,data

unifi-voucher-site releases & version history

More in Network Utilities

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…