// settings/Admin.jsx — Admin console screens. Gated by is_admin === true. // Utilitarian per brief: list-driven, not hero-driven. function AdminRoot({ dark = false }) { return (
Administration · portal.lukas.dev
Stats
Live counts from this server. Updated every 60 seconds.
{/* KPI grid */}
{[ { l: 'Users', v: '14', s: '+1 this week' }, { l: 'Feeds', v: '38', s: '23 subscribed · 15 manual' }, { l: 'Events', v: '24,612', s: 'Across 14 calendars' }, { l: 'DB size', v: '142 MB', s: 'Up 4 MB · 14 days' }, { l: 'Uptime', v: '38d', s: 'Last restart Feb 6' }, { l: 'Sessions', v: '21', s: '6 active right now' }, ].map(k => (
{k.l}
{k.v}
{k.s}
))}
{/* Live chart */}
Avg 7.7k/day
p95 184ms
Sections
); } window.AdminRoot = AdminRoot; function AdminUsers({ dark = false }) { const users = [ { i: 'L', n: 'Lukas Park', u: 'lukas', e: 'Active', r: 'Admin', c: '#5E5CE6', last: 'Now' }, { i: 'M', n: 'Maya Tan', u: 'maya', e: 'Active', r: 'User', c: '#FF2D55', last: '2h ago' }, { i: 'P', n: 'Priya N', u: 'priya', e: 'Active', r: 'User', c: '#34C759', last: 'Yesterday' }, { i: 'A', n: 'Anu Liu', u: 'anu', e: 'Active', r: 'User', c: '#AF52DE', last: '3 days' }, { i: 'D', n: 'David K', u: 'davidk', e: 'Disabled',r: 'User', c: '#FF9500', last: 'Feb 2' }, { i: 'S', n: 'Sam R', u: 'sam', e: 'Active', r: 'User', c: '#5AC8FA', last: '12h' }, ]; return (
Search users
14 users
{users.map((u, i) => (
{u.i}
{u.n}
{u.u} · {u.r}
{u.e === 'Disabled' ? Disabled : {u.last}}
))}
); } window.AdminUsers = AdminUsers; function AdminUserDetail({ dark = false }) { return ( {/* hero */}
M
Maya Tan
maya · since Sep 4, 2025
Active
{/* KPIs */}
Feeds
5
Events
1,872
Sessions
3
Profile
Access
Activity
); } window.AdminUserDetail = AdminUserDetail; function AdminSessions({ dark = false }) { const sess = [ { who: 'lukas', dev: 'iPhone 15 Pro', ip: '92.40.xxx.xxx', loc: 'London, UK', last: 'Now', mine: true }, { who: 'lukas', dev: 'MacBook Pro · Safari', ip: '92.40.xxx.xxx', loc: 'London, UK', last: '8 min', mine: false }, { who: 'maya', dev: 'iPhone 13', ip: '81.20.xxx.xxx', loc: 'Cambridge, UK', last: '2h ago', mine: false }, { who: 'priya', dev: 'Chrome · Linux', ip: '141.6.xxx.xxx', loc: 'Berlin, DE', last: 'Yesterday', mine: false }, { who: 'anu', dev: 'Safari · iOS', ip: '92.40.xxx.xxx', loc: 'London, UK', last: '3 days', mine: false }, { who: 'sam', dev: 'Outlook subscribe', ip: '51.6.xxx.xxx', loc: 'Manchester, UK', last: '12h', mine: false }, ]; return (
{sess.length} active sessions
{sess.map((s, i) => (
{s.who} · {s.dev}
{s.loc} · {s.ip} · {s.last}
{s.mine ? ( This device ) : ( Revoke )}
))}
); } window.AdminSessions = AdminSessions; function AdminLogs({ dark = false }) { const lines = [ { ts: '10:26:14', lv: 'info', msg: 'GET /api/events?start=2026-03-16 → 200 (44ms)' }, { ts: '10:26:13', lv: 'info', msg: 'sync feed:uni · 84 events fetched, 2 updated' }, { ts: '10:26:12', lv: 'debug', msg: 'rrule expand: 12 occurrences from rule:weekly' }, { ts: '10:26:08', lv: 'warn', msg: 'feed:society returned 304 Not Modified · skipping' }, { ts: '10:26:05', lv: 'info', msg: 'POST /api/health/sync · 142 samples accepted' }, { ts: '10:25:58', lv: 'err', msg: 'feed:gym fetch failed: ECONNRESET · will retry' }, { ts: '10:25:55', lv: 'info', msg: 'GET /api/health/sleep/last7 → 200 (12ms)' }, { ts: '10:25:42', lv: 'info', msg: 'auth: session for lukas refreshed (29d TTL)' }, { ts: '10:25:38', lv: 'debug', msg: 'cache hit: shared/aB7r2dHjK3pX9q' }, { ts: '10:25:30', lv: 'info', msg: 'GET /s/aB7r2… · 192.168.1.42 · 200' }, { ts: '10:25:14', lv: 'warn', msg: 'slow query 412ms · events range 12mo' }, { ts: '10:25:02', lv: 'info', msg: 'GET /api/calendars → 200 (8ms)' }, { ts: '10:24:48', lv: 'info', msg: 'cron: bedtime-generate · 1 user · 1 event written' }, { ts: '10:24:30', lv: 'info', msg: 'GET /api/auth/status → 200 (4ms)' }, ]; return (
filter:feed=uni Live
{lines.map((l, i) => (
{l.ts} {l.lv.toUpperCase()} {l.msg}
))}
); } window.AdminLogs = AdminLogs; function AdminDeploy({ dark = false }) { const releases = [ { v: 'v2.4.1', d: 'Feb 6 · 14:22', s: 'Live', sha: 'c1d7a8e' }, { v: 'v2.4.0', d: 'Feb 4 · 11:01', s: 'Stable', sha: '8b2c901' }, { v: 'v2.3.9', d: 'Jan 28 · 09:42', s: 'Stable', sha: '4d1ee72' }, { v: 'v2.3.8', d: 'Jan 22 · 17:08', s: 'Stable', sha: 'a09b314' }, { v: 'v2.3.7', d: 'Jan 12 · 12:15', s: 'Stable', sha: '0e7d420' }, ]; return (
portal.lukas.dev
Live · v2.4.1
Healthy · last restart Feb 6, 14:22
Release history
{releases.map((r, i) => (
{r.v} {r.sha}
{r.d}
{r.s}
))}
Configuration
); } window.AdminDeploy = AdminDeploy;