commit ce5794e477905922e3c3ff438610ab307c0f0e67
Author: Coder Agent <coder@agents.omni>
Date: Mon Feb 16 18:51:09 2026
Unify beryllium ingress via Caddy and funnel
Route /news and /files through Caddy.
Proxy all other paths to Ava web on 8079.
Update funnel guidance to port 80.
Task-Id: t-612
diff --git a/Omni/Dev/Beryllium/Ava.nix b/Omni/Dev/Beryllium/Ava.nix
index 7b9b86d6..4519e981 100644
--- a/Omni/Dev/Beryllium/Ava.nix
+++ b/Omni/Dev/Beryllium/Ava.nix
@@ -51,8 +51,9 @@
}
];
- # Note: Tailscale Funnel for Ava web server is configured via:
- # tailscale funnel --bg 8079
+ # Note: Tailscale Funnel for beryllium ingress is configured via:
+ # tailscale funnel --bg 80
+ # Caddy then routes /files, /news, and /tasks (via ava on 8079).
# This persists in tailscaled config and doesn't need a systemd service.
# URL: https://beryllium.oryx-ide.ts.net/
}
diff --git a/Omni/Dev/Beryllium/Caddy.nix b/Omni/Dev/Beryllium/Caddy.nix
index 671b5928..41f7bd7c 100644
--- a/Omni/Dev/Beryllium/Caddy.nix
+++ b/Omni/Dev/Beryllium/Caddy.nix
@@ -1,11 +1,12 @@
-# Path-based reverse proxy for beryllium services.
+# Unified ingress for beryllium services.
#
# Caddy listens on port 80 and routes by path prefix:
# /news/ → newsreader (8071)
# /files/ → serve (8070)
+# all else (including /tasks) → ava web (8079)
#
-# Each service runs with --base-path so generated HTML links
-# include the prefix. Caddy strips the prefix before proxying.
+# /news and /files run with --base-path so generated HTML links
+# include their prefixes. Caddy strips those prefixes before proxying.
{...}: {
services.caddy = {
enable = true;
@@ -26,39 +27,7 @@
reverse_proxy localhost:8070
}
handle {
- header Content-Type "text/html; charset=utf-8"
- respond <<HTML
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>beryllium</title>
- <style>
- :root { --bg: #fff; --fg: #222; --muted: #666; --link: #0366d6; --border: #e0e0e0; }
- @media (prefers-color-scheme: dark) {
- :root { --bg: #1a1a1a; --fg: #d4d4d4; --muted: #888; --link: #58a6ff; --border: #333; }
- }
- body { font: 16px/1.8 -apple-system, system-ui, sans-serif;
- max-width: 480px; margin: 4rem auto; padding: 1rem;
- background: var(--bg); color: var(--fg); }
- a { color: var(--link); text-decoration: none; font-size: 1.1rem; }
- a:hover { text-decoration: underline; }
- h1 { font-size: 1.3rem; margin-bottom: 1.5rem; }
- ul { list-style: none; padding: 0; }
- li { padding: 0.4rem 0; }
- .desc { font-size: 0.85rem; color: var(--muted); }
- </style>
- </head>
- <body>
- <h1>beryllium</h1>
- <ul>
- <li><a href="/news/">news</a> <span class="desc">— rss reader</span></li>
- <li><a href="/files/">files</a> <span class="desc">— research notes</span></li>
- </ul>
- </body>
- </html>
- HTML
+ reverse_proxy localhost:8079
}
'';
};