Commit Graph

62 Commits

Author SHA1 Message Date
root
f9783571a1 revert paperless.hubris.network to LXC 103 2026-06-21 23:18:08 +02:00
root
b3e7385754 add papers.hubris.network for paperless on zimaos 2026-06-21 21:58:57 +02:00
root
8d14ef80fa point paperless to zimaos (192.168.8.195:8000) 2026-06-21 21:14:40 +02:00
root
d49a844941 feat: gate sab.hubris.network with Authentik forward-auth 2026-06-13 11:15:04 +02:00
root
32575ce73f fix: sab.hubris.network reverse proxy port 8081 -> 8082
SABnzbd is configured with SABNZBD__PORT=8082 in docker compose.
Previous value 8081 was a dead port; 8080 would route to qBittorrent.
2026-06-06 14:13:42 +02:00
1b977aabfa photos: clean up routing for Mulimage 2.0, add prism subdomain
Update the photos.hubris.network block to match the current stack
(PhotoPrism API + Go sidecar + SvelteKit). Add prism.hubris.network
as a dedicated PhotoPrism vhost for the Prismatic mobile client.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-06 12:38:41 +02:00
root
408a11c856 fix: add internal HTTP proxy for forward-auth (avoids TLS routing issues) 2026-06-04 23:43:48 +02:00
root
fec102895f fmt: clean up sso.hubris.network block formatting 2026-06-04 22:51:58 +02:00
root
2962a6e485 cleanup: point authentik forward-auth and sso to VPS 2026-06-04 22:47:28 +02:00
root
f520afad60 fix: proxy auth.hubris.network to VPS (82.165.190.79), strip port from Host header 2026-06-04 22:37:45 +02:00
c906a5acc7 authentik: add sso.hubris.network site for LAN forward-auth outpost callback
Domain-level proxy providers (Paperless, qBit) need an external_host that
routes to the LAN outpost (192.168.8.6), not auth.hubris.network (now the VPS
core). New site sso.hubris.network -> reverse_proxy 192.168.8.6:9000.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 00:41:55 +02:00
6ea8e727d4 authentik: point forward-auth snippet at LAN outpost (192.168.8.6)
Forward-auth now validates against the VPS Authentik core via a dedicated
LAN outpost (auth-outpost LXC 106), not LXC 124's frozen embedded outpost.
Resolves the post-migration split-brain. 192.168.8.180:9000 -> 192.168.8.6:9000.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 00:31:08 +02:00
db7f8fbf4e photos: revert /library/login proxy — OIDC starts at /api/v1/oidc/login
Earlier commits (e535f93 + a52cf68) proxied /library/login through to
PhotoPrism to fix what I thought was the OIDC initiation path. Wrong:
the SvelteKit SPA initiates OIDC by navigating to /api/v1/oidc/login
(already routed via @pp). The /library/login URL is what PhotoPrism's
UI uses POST-OIDC for the localStorage handoff back to the SPA — it
MUST bounce to / via the caddy redir, otherwise the SPA never picks
up the session and the user lands in PhotoPrism's own UI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 01:08:10 +02:00
a52cf68d0f photos: wrap site block in route{} to force literal directive order
Without an explicit route{} block, caddy auto-hoists `redir` ahead of
`reverse_proxy`. That meant /library/* still redirected to / even
though I'd placed an @pp_login reverse_proxy above the redirs in the
file. Wrap the whole site in route{} so directives run in source order
and the more-specific /library/login matcher wins before the broader
/library/* redir.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 01:02:11 +02:00
e535f93dcc photos: stop caddy from eating /library/login (OIDC initiation)
The /library/* catch-all redir bounced /library/login (PhotoPrism's
OIDC login surface) back to / before the user could click "Sign in
with Authentik". Add a specific @pp_login matcher above the redir
so /library/login + /library/login/* reach PhotoPrism, while the
post-login /library/browse target still bounces back to the SvelteKit
SPA.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 01:01:21 +02:00
730334c3df photos: cut over to PhotoPrism stack on LXC 120, drop photos-new
Mulimage 2.0 merged the PhotoPrism + Go sidecar + SvelteKit architecture
into main and it now runs on LXC 120 (192.168.8.136). photos.hubris.network
moves from the legacy "reverse_proxy :3000" passthrough to the same
path-matchers pattern photos-new used: /api/v1/* + /static/* + /share/*
→ PhotoPrism (:2342), /api/sidecar/* → sidecar (:8000), catch-all →
nginx-served SvelteKit static bundle (:3000, was Vite dev in M0).

photos-new.hubris.network is removed entirely — LXC 127 is being
decommissioned in the same cutover.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 23:50:22 +02:00
root
708556fd1e Add mcp.hubris.network + secrets.hubris.network vhosts
Proxies to LXC 105:9810 (homelab-mcp SSE) and :9820 (secrets-issuance).
No SSO — both are agent-facing; auth happens at the service layer
(source-IP gating for issuance, mesh+LAN gating for both).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 17:12:51 +02:00
Claudio
a3d7e6a61c photos-new: bounce /library/* to / after OIDC 2026-05-17 22:03:35 +02:00
Claudio
e90f9078d8 Add photos-new.hubris.network -> LXC 127 (PhotoPrism M0 test) 2026-05-17 21:36:39 +02:00
Claudio
a219176c95 Add zimaos.hubris.network -> VM 100 (192.168.8.195)
Reverse-proxies the new ZimaOS VM through the standard pattern (TLS via
IONOS DNS-01, plain reverse_proxy to backend). Cert issued by Lets
Encrypt on first request.
2026-05-14 13:29:26 +02:00
claudio
ba935abbfb Add plato.hubris.network → LXC 126:8080 2026-05-13 01:14:44 +02:00
claudio
65507e68f7 Remove files.hubris.network (Seafile decommissioned) 2026-05-13 00:29:55 +02:00
Caddy on hubris
f0a8835d8c Route /thumbnail/* on files.hubris.network to Seafile Pro thumbnail-server (LXC 125:8081) 2026-05-12 18:57:57 +02:00
Caddy on hubris
c1c161d1b8 Strip IETF resumable-upload headers for Seafile iOS app (LXC 125)
iOS Seafile Pro 4.0.2 negotiates resumable uploads via Upload-Draft-Interop-Version: 6, but Seafile-fileserver does not understand the protocol and never returns the expected interim response; the iOS client then cancels the HTTP/2 stream after ~60s and the upload (or library-create POST) appears to fail. Strip the negotiation headers so the client falls back to normal multipart upload, and bump upstream timeouts for large transfers.
2026-05-12 18:10:40 +02:00
Caddy on hubris
139f889c23 Add files.hubris.network for Seafile (LXC 125) 2026-05-12 12:21:29 +02:00
claudio
7e856d85a6 Gate artifacto admin with Authentik + forward gateway header
Inject X-Artifacto-Gateway (shared secret in ARTIFACTO_GATEWAY_SECRET)
so the app can auto-login Authentik-authenticated users while
rejecting spoofed SSO headers from direct-connection peers.

Leaves /p/* (share URLs), /static/*, /healthz public.
2026-04-22 22:20:56 +02:00
root
a6b12a4e64 Revert photos.hubris.network forward-auth
mule-image commit e8e1adc wires native OIDC against Authentik
(/api/v1/auth/oidc/login). Users land on mulita login and click
Sign in with Authentik; outpost not involved.
2026-04-22 22:15:24 +02:00
root
8ed2631f6b Gate photos.hubris.network behind Authentik forward-auth
Bypass /api/* for JWT/mobile clients (mulita uses Bearer tokens;
SPA login POSTs /api/v1/auth/login). Browser UI goes through the
embedded outpost.
2026-04-22 22:13:06 +02:00
claudio
31eb41a05a Add artifacto.hubris.network → LXC 105:3100 2026-04-22 21:04:09 +02:00
claudio
8be7291059 Remove temp keys.hubris.network (bootstrap done) 2026-04-22 17:47:49 +02:00
claudio
55c7a8e8f2 TEMP: keys.hubris.network for netbird bootstrap 2026-04-22 16:24:11 +02:00
claudio
18343396aa blog: drop forward-auth, WriteFreely has native OIDC 2026-04-22 14:20:00 +02:00
claudio
c6a3707363 blog: gate only admin/login paths with Authentik; leave public reading open 2026-04-22 14:17:57 +02:00
claudio
2663401d26 Gate blog.hubris.network with Authentik forward-auth 2026-04-22 14:10:22 +02:00
claudio
9a002648cc Gate qbit.hubris.network with Authentik forward-auth, bypass /api/* for clients 2026-04-22 13:33:51 +02:00
claudio
8727399e84 Drop forward-auth on books.hubris.network — Booklore has native OIDC 2026-04-22 10:57:53 +02:00
claudio
2916449322 Gate books.hubris.network (Booklore) with Authentik forward-auth 2026-04-22 10:48:00 +02:00
claudio
f04a82f451 paperless: bypass Authentik forward-auth for /api/* so mobile apps (own token auth) can work 2026-04-22 10:12:53 +02:00
claudio
f2fd96e336 Forward-auth snippet final (dynamic X-Forwarded-Host, caddy fmt) 2026-04-22 01:05:31 +02:00
claudio
b2b6c86437 Explicitly set X-Forwarded-Host for forward_auth (Authentik needs it) 2026-04-22 01:02:35 +02:00
claudio
cb124a1cd2 Drop header_up Host from forward_auth so Authentik sees X-Forwarded-Host 2026-04-22 01:00:27 +02:00
claudio
a767cbf034 Gate paperless.hubris.network with Authentik forward-auth 2026-04-22 00:55:59 +02:00
claudio
ea4371089c Add (authentik) forward-auth snippet for domain-level SSO 2026-04-22 00:45:30 +02:00
claudio
d74053bbd4 Add auth.hubris.network → Authentik on LXC 124:9000 2026-04-21 22:53:51 +02:00
Claudio
877d025ceb Rename images.hubris.network → photos.hubris.network 2026-04-21 20:56:59 +02:00
Claudio
1b063b9cb4 Add images.hubris.network → mule-image frontend on mule-images:3000 2026-04-21 20:53:00 +02:00
dtoro
07a2d071d1 Add blog.hubris.network → WriteFreely on apps:8080 2026-04-21 16:16:55 +02:00
hubris-root
8ce7a82fd4 add jellyseerr, qbit, sab entries (arriman 192.168.8.132) 2026-04-21 13:17:25 +02:00
Claudio
c2a1ab464b Webhook service: allow writes to /etc/caddy
git pull inside the deploy needs to update .git/FETCH_HEAD, but
ProtectSystem=full makes /etc read-only. ReadWritePaths=/etc/caddy
opens just the repo directory.
2026-04-20 17:11:39 +02:00
Claudio
b6dec2a894 Add deploy.sh + webhook receiver
deploy.sh runs on LXC 121: git pull, caddy validate, systemctl reload.
webhook.py is a small HTTP receiver on :9797/deploy that verifies the
gitea HMAC-SHA256 signature and triggers deploy.sh.
install.sh provisions /etc/caddy-deploy/secret and the systemd unit.
2026-04-20 17:10:15 +02:00