{% extends "base.html" %} {% block title %}Admin — psyc{% endblock %} {% block content %}

Admin Control Center

{{ members|length }} member{{ '' if members|length == 1 else 's' }} enrolled

The secured zone — TOTP-gated, hidden from the nav. Manage who can get in here, and (next) watch the live infrastructure.

✓ Admin session active — expires after 60 min idle.

Access Control

{{ members|length }} enrolled

Every member enrolls their own authenticator — no shared secret. To offboard someone, revoke their slot; everyone else keeps working, no re-enrollment.

{% if new_qr %}
enrollment QR

Enroll “{{ new_label or 'member' }}”

Have them scan this once with Google Authenticator / Authy. It won't be shown again — reload to hide it.

{% endif %} {% for m in members %} {% endfor %}
MemberEnrolledLast used
{{ m.label }} {{ (m.created_at or '')[:16] | replace('T', ' ') }} {{ ((m.last_used or '')[:16] | replace('T', ' ')) or '—' }}

Infrastructure

open topology →

Docker topology

Live container roster + network map, read-only via socket-proxy. Click to open.

{% endblock %}