Admin guide

Admin guide

A short tour of the Family Admin surface — the stuff under /admin in the web UI. Everything here is reachable by any user with the Family Admin or Super Admin role on the family.

Users

Admin > Users — member list with role badges and avatar uploads.

Admin > Users — list, create, update, and delete family members.

  • Add a member — username + temporary password + role. No email step, no invite link: you hand the credentials to the family member directly.
  • Rename — change username or display name.
  • Change a member's role — promote a regular User to Family Admin, or demote.
  • Reset a member's password — admins can set a new password for any other member of the family; the member should change it on next login (via Profile > Change password).
  • Delete — removes the account. Assigned tasks stay (unassigned), calendar events stay, shopping items they added stay. Nothing is cascaded.
  • Profile pictures — each member uploads their own, or an admin uploads on their behalf. They show up on the dashboard, in task-assignee pills, and next to each shopping item in the history.

Family preferences

Admin > Settings — family-wide language, dashboard style, and task-history knobs.

Admin > Settings — family-wide defaults that apply to every member:

  • Language — Dutch or English. Switches the UI, the AI prompt templates, the STT language code, and email language in one go. See Multilingual support.
  • Dashboard style — Classic (interactive, list-based) or Ambient (glanceable, clock + agenda). Applies to the home screen. See Hub display.
  • Task history limit — how many completed task instances to keep on the history view (default 10).
  • Shopping auto-categorise interval — how often the background job re-categorises items sitting in Overig; default every hour.

Service configuration

Admin > Services — four integration cards (AI, Speech-to-Text, CalDAV, Slideshow) with health indicators.

Admin > Services — wire up the integrations. Each service has a form, a Test button, and a health indicator.

ServiceWhat it's forFields
AIVoice + text assistant, recipe import, shopping auto-categoriseProvider (Anthropic / OpenAI), API key, optional custom base URL
Speech-to-TextVoice input transcriptionWhisper-compatible URL + API key
CalDAVShared calendar (Radicale)URL + username + password (per-family credentials are auto-provisioned on self-hosted)
SlideshowIdle animation on the hub displayProvider (Google Photos public album URL / Immich base URL + API key + album ID)

Credentials are encrypted at rest with the deployment's ENCRYPTION_KEY. Non-admin members never see them; they just use the configured service transparently.

CalDAV credentials (self-hosted)

When CalDAV is managed by FamilyHub (i.e. your deployment has CALDAV_HTPASSWD_PATH set to a shared writable path), each family gets its own family-<uuid> Radicale account automatically. Two admin actions are available:

  • Reveal — fetch the family's current CalDAV password (shown once, don't paste into chat)
  • Regenerate — rotate to a new password; any device currently syncing needs to be re-authed. Old password stops working immediately.

ICS subscription tokens

For read-only consumers (Proton Calendar, Google Calendar), the CalDAV feed is exposed as a signed ICS URL. The URL contains a token in its path because Proton/Google can't send custom auth headers. If the token is leaked, regenerate it from Admin > Services > CalDAV — old URLs stop working immediately. The new URL needs to be re-added in each external calendar.

Shopping suggestions

Two admin-only knobs:

  • Trigger now — runs the shopping-suggestion AI pipeline once, out of band. Useful after a big list-refactor or when you change providers.
  • Suppressions — a list of items that users have dismissed from suggestions enough times to ban. You can clear individual entries so the suggester picks them up again.

Data export & import

Admin > Data > Export — downloads a single JSON bundle containing users, shopping lists + items, tasks + recurrence + history, calendar events, recipes, preferences, and service configs (encrypted).

Admin > Data > Import — upload a bundle produced by Export. The import is additive by default: existing records are preserved, new ones appended. Use this to move between hosted and self-hosted, or to spin up a fresh dev copy from a real family.

Exports include the family's ICS subscription token but not user passwords.

AI usage panel

If the payment module is active (SaaS mode), Admin > Services > AI shows this month's request count against the plan cap (e.g. "842 / 3000 requests"). On the FREE plan no AI is allowed; the panel shows a "upgrade to unlock" CTA.

On self-hosted deployments with the payment module off, the same panel shows current-month usage but without a cap — it's purely informational.

Super admin

Super admins see one extra nav entry, Super admin, with a cross-family view:

  • List every family on the deployment with trial / subscription status and latest activity
  • Inspect any family's AI usage and service health
  • Extend or terminate trials (SaaS mode only)
  • Convert a trial to paid without going through Stripe Checkout (for comped accounts)

Super admin does not grant access to individual family data (shopping lists, events, etc.). That's by design — you manage families, not their content.