Islandr
master
master
v
0.0.0
Islandr
Self-hosted WireGuard management platform. Peer lifecycle, RBAC access control, nftables enforcement.
Info
Context views
Container views
Component views
Deployment views
Dependencies
Decisions
Islandr
[Software System]
Self-Service
Portal
[Container:
Vue.js
(ESM,
no
npm)]
Guided
SPA
for
end
users:
enroll
devices,
view
access
list
in
plain
language.
German
UI,
informal
Du.
Islandr
Backend
[Container:
Quarkus
3
/
Java
21
(native
binary)]
REST
API,
domain
logic,
WireGuard
and
nftables
adapters,
OIDC
token
verification,
activity
polling,
audit
logging.
Database
[Container:
SQLite
(default)
or
PostgreSQL]
Persists
peers,
users,
roles,
resources,
ACLs,
audit
log,
activity
samples,
and
runtime
settings.
Admin
Console
[Container:
Vue.js
(ESM,
no
npm)]
Data-dense
SPA
for
admins:
peers,
ACL
matrix,
users,
roles,
audit
log,
dashboard,
settings.
Admin
[Person]
Manages
peers,
users,
roles,
resources,
and
ACLs
(Felix).
End
User
[Person]
Manages
own
devices
and
views
access
list
in
plain
language
(Lena).
OIDC
Provider
[Software
System]
Authenticates
users.
Microsoft
365
or
Google
Workspace.
WireGuard
[Software
System]
Linux
kernel
VPN
module.
Managed
via
wg
CLI.
nftables
[Software
System]
Linux
kernel
packet
filter.
Enforces
ACL
rules
generated
by
Islandr.
Cloudflare
/
Reverse
Proxy
[Software
System]
Fully
optional
edge
layer
—
Cloudflare,
or
a
self-hosted
reverse
proxy
(Caddy,
nginx,
Traefik).
Islandr
terminates
TLS
itself
(dummy
cert
until
an
admin
uploads
one,
hot-swapped
at
runtime)
and
can
be
reached
directly
with
no
proxy
of
any
kind
in
front
of
it
(ADR-0015).
Resource
Host
[Software
System]
A
machine
behind
the
VPN
inside
a
site
(e.g.
an
RDP
server).
For
browser-based
RDP
the
hub
connects
to
it
directly
over
TLS
and
relays
to
the
browser.
Uses (optional path)
[HTTPS]
Uses (optional path)
[HTTPS]
Uses directly (built-in TLS)
[HTTPS]
Uses (optional path)
[HTTPS via proxy]
Uses directly (built-in TLS)
[HTTPS]
Uses (optional path)
[HTTPS via proxy]
Serves directly
[HTTP/HTTPS (static files)]
REST JSON
[fetch /api/v1]
Serves directly
[HTTP/HTTPS (static files)]
REST JSON
[fetch /api/v1]
Browser-RDP session (RDCleanPath)
[WebSocket]
Serves (optional layer)
[HTTP (static files)]
Serves (optional layer)
[HTTP (static files)]
Proxies API (optional layer)
[HTTP /api/v1]
Read/Write
[JDBC / Hibernate ORM Panache]
Fetches JWKS, verifies ID tokens
[HTTPS]
wg set / wg show
[ProcessBuilder]
nft -c -f / nft -f
[ProcessBuilder]
Browser-RDP: TCP connect + TLS relay
[TCP/TLS]
Container View: Islandr
C4 Level 2 — Container View
Show legend
Container,
Backend
Container,
Database
Container,
SPA
Person,
Admin
Person,
User
Software
System,
External
Relationship
Islandr
[Software System]
Self-Service
Portal
[Container:
Vue.js
(ESM,
no
npm)]
Guided
SPA
for
end
users:
enroll
devices,
view
access
list
in
plain
language.
German
UI,
informal
Du.
Islandr
Backend
[Container:
Quarkus
3
/
Java
21
(native
binary)]
REST
API,
domain
logic,
WireGuard
and
nftables
adapters,
OIDC
token
verification,
activity
polling,
audit
logging.
Database
[Container:
SQLite
(default)
or
PostgreSQL]
Persists
peers,
users,
roles,
resources,
ACLs,
audit
log,
activity
samples,
and
runtime
settings.
Admin
Console
[Container:
Vue.js
(ESM,
no
npm)]
Data-dense
SPA
for
admins:
peers,
ACL
matrix,
users,
roles,
audit
log,
dashboard,
settings.
Admin
[Person]
Manages
peers,
users,
roles,
resources,
and
ACLs
(Felix).
End
User
[Person]
Manages
own
devices
and
views
access
list
in
plain
language
(Lena).
OIDC
Provider
[Software
System]
Authenticates
users.
Microsoft
365
or
Google
Workspace.
WireGuard
[Software
System]
Linux
kernel
VPN
module.
Managed
via
wg
CLI.
nftables
[Software
System]
Linux
kernel
packet
filter.
Enforces
ACL
rules
generated
by
Islandr.
Cloudflare
/
Reverse
Proxy
[Software
System]
Fully
optional
edge
layer
—
Cloudflare,
or
a
self-hosted
reverse
proxy
(Caddy,
nginx,
Traefik).
Islandr
terminates
TLS
itself
(dummy
cert
until
an
admin
uploads
one,
hot-swapped
at
runtime)
and
can
be
reached
directly
with
no
proxy
of
any
kind
in
front
of
it
(ADR-0015).
Resource
Host
[Software
System]
A
machine
behind
the
VPN
inside
a
site
(e.g.
an
RDP
server).
For
browser-based
RDP
the
hub
connects
to
it
directly
over
TLS
and
relays
to
the
browser.
Uses (optional path)
[HTTPS]
Uses (optional path)
[HTTPS]
Uses directly (built-in TLS)
[HTTPS]
Uses (optional path)
[HTTPS via proxy]
Uses directly (built-in TLS)
[HTTPS]
Uses (optional path)
[HTTPS via proxy]
Serves directly
[HTTP/HTTPS (static files)]
REST JSON
[fetch /api/v1]
Serves directly
[HTTP/HTTPS (static files)]
REST JSON
[fetch /api/v1]
Browser-RDP session (RDCleanPath)
[WebSocket]
Serves (optional layer)
[HTTP (static files)]
Serves (optional layer)
[HTTP (static files)]
Proxies API (optional layer)
[HTTP /api/v1]
Read/Write
[JDBC / Hibernate ORM Panache]
Fetches JWKS, verifies ID tokens
[HTTPS]
wg set / wg show
[ProcessBuilder]
nft -c -f / nft -f
[ProcessBuilder]
Browser-RDP: TCP connect + TLS relay
[TCP/TLS]
Container,
Backend
Container,
Database
Container,
SPA
Person,
Admin
Person,
User
Software
System,
External
Relationship
Container View: Islandr [
svg
|
png
|
puml
] [legend:
svg
|
png
|
puml
]