Atrium is an admin panel for running guest WiFi captive portals across multiple tenants and sites on a UniFi network. It manages the portal-facing side of the experience (branded login pages, guest sessions, vouchers) and the operational side (controllers, sites, users, auditing) from one place.
- Multi-tenant: separate tenants, sites, and portals under one install
- Portal builder with per-portal branding, customization, and a post-connect page
- Guest session management: active devices, manual authorize/reconnect/deauthorize, vouchers
- Guest analytics per portal
- Role-based access control with two-factor authentication
- Full audit log of admin actions
- Light/dark mode
- Encrypted full-site backup and restore (settings, content, and uploads)
Requires Docker and Docker Compose.
-
Clone the repo:
git clone https://github.com/agent-squirrel/Atrium.git cd Atrium -
Create your environment file and fill in the required values:
cp backend/.env.example backend/.env
backend/.envneeds, at minimum, aSECRET_KEY,JWT_SECRET_KEY,POSTGRES_PASSWORD, andENCRYPTION_KEY- the file has generation commands for each right above the line to fill in. If Atrium will sit behind another reverse proxy (Caddy, Traefik, a cloud load balancer) rather than facing the internet directly, also setTRUSTED_PROXY_CIDRto that proxy's address so guest IPs are logged correctly. -
Start the stack using the published images:
docker compose up -d
-
Open
http://localhost/admin/and follow the first-run setup wizard to create your superadmin account (or restore from an existing Atrium backup, if you have one).
Building on Atrium or working from source instead of the published images? See DEVELOPMENT.md.
Atrium's code, documentation, and companion site were developed with substantial assistance from Claude (Anthropic), primarily Claude Sonnet 5. Every feature was specified, reviewed, and tested by a human maintainer.