-
My laptop, at home
From the home network I open the panels by their internal name.
-
My phone, away from home
From outside, you only get in with the VPN.
-
WireGuard VPN
Puts the phone inside the network as if it were home.
-
Home DNS
Internal names only exist here: outside home they don't resolve.
-
Internet
Where the internal panels can't be reached from.
-
Caddy
The internal proxy. It gets the request and, before touching the panel, asks Authelia for permission.
-
Internal TLS
Caddy signs its own certificates for internal names: everything is encrypted inside the house too.
-
Authorisation request
For every request, Caddy asks Authelia «can this session see this?». If not, it redirects to the login.
- Docker
- Linux / SSH hardening
-
Authelia
The single sign-on server: one login for every panel, with its access policy.
- Linux / SSH hardening
- Docker
-
First factor
Username and password, with attempt limiting.
-
Second factor
A one-time code from the phone. The default policy requires it for everything protected.
-
Session
Once in, a session cookie works for every panel for a while: no repeating the login on each one.
-
Container manager
The most powerful panel: it manages the Docker stacks. Two-factor and then its own login.
-
Library panels
The services that keep the media library tidy.
-
DNS panel
Home DNS administration, only behind this door.
-
Monitoring panels
Metrics and security, to check from anywhere with the VPN.
-
Ports on localhost only
Protected panels publish their port only inside their own container: the only way in is Caddy.
- Docker
- Linux / SSH hardening
-
Home network and VPN only
Internal names don't exist on the internet and the firewall doesn't let anyone in from outside.
-
Access policy
Two-factor by default. Exceptions are explicit and few.
-
Seamless reload
Configuration changes are validated and reloaded without dropping the proxy.