# Dockerized OpenConnect-SSO with noVNC and Cloudflared

## Setup
1) Copy `.env.example` to `.env` and fill values (URLs, servercert pins, VNC passwords, cloudflared tokens).

2) First-time SSO: leave `OC_SSO_ARGS_*=--browser-display-mode visible`.

3) Build and start:
   docker compose build
   docker compose up -d vpn_a
   # Open http://localhost:6901, complete SSO.
   # After success, attach app containers or start cloudflared_a.

4) Optional: switch to headless after first login:
   Set `OC_SSO_ARGS_*=--browser-display-mode hidden` (or `headless`) and restart the vpn service.

## Notes
- Each VPN runs in its own net namespace; routes from one cannot affect the other or the host.
- DNS from the VPN applies within its container namespace and attached services only.
- Persisted state lives in the named volumes mounted at `/root` (Playwright cache, configs).
