the family router
Demo household, made-up data. Controls here do not change anything. This is the real Genkan dashboard running against a fake family, so nobody's network is behind it. About Genkan

Settings

What each filter level means, what a cut-off child can still reach, and the household switches. Every save here runs the same genkan command you could type, so it is gated, audited in the block log, and pushed to AdGuard and the firewall the same way.

Filter levels

What a young child, a standard child, a teen and a visitor may reach. A level applies to everyone on it: change the Young level and every young child's devices change with it, within a few seconds, through their AdGuard client. The level in the database wins: a client tuned by hand in the AdGuard UI is put back to its level on the next change.

The household blocklists (adult sites, malware, trackers) are global and are not part of a level. AdGuard applies a filter list to every device or to none, so a level cannot add or drop one.

Who is on which level
Nova child, 7
Rangi child, 11
Piper child, 14
Ari visiting child, 10

Moving somebody rebuilds their AdGuard client from the new level straight away. Their minutes change from tomorrow. Everything else about them is on the Family page.

Young

Age ~11: tight. Block adult/gambling/drugs/self-harm/dating/violence; SafeSearch + YouTube restricted forced; strict bedtime; time budget.

On this level: NovaRangi
On the DNS side, for every device on this level
12 services blocked: 4chan, 9gag, tiktok, instagram, snapchat, twitter, reddit, twitch and 4 more · change

AdGuard could not be asked for its full list just now, so only the services already on this level are shown. Reload when it is back.

Other

A blocked service is its whole list of domains, apps included. AdGuard keeps that list current.

General screen time a day, in minutes

Empty means no limit. The Family page edits the same two numbers. A change applies from each person's next day.

Standard

Age ~14: block genuinely harmful categories, keep social but monitored; SafeSearch on; later bedtime.

On this level: Piper
On the DNS side, for every device on this level
4 services blocked: 4chan, onlyfans, tinder, grindr · change

AdGuard could not be asked for its full list just now, so only the services already on this level are shown. Reload when it is back.

Other

A blocked service is its whole list of domains, apps included. AdGuard keeps that list current.

General screen time a day, in minutes

Empty means no limit. The Family page edits the same two numbers. A change applies from each person's next day.

Teen

Age ~16: light touch + transparency. Block the seriously harmful only; focus on time + safety alerts, not heavy filtering.

Nobody is on this level right now.
On the DNS side, for every device on this level
3 services blocked: onlyfans, tinder, grindr · change

AdGuard could not be asked for its full list just now, so only the services already on this level are shown. Reload when it is back.

Other

A blocked service is its whole list of domains, apps included. AdGuard keeps that list current.

General screen time a day, in minutes

Empty means no limit. The Family page edits the same two numbers. A change applies from each person's next day.

Guest

Visitors: malware and adult content only, no time limit, no logging of individuals.

On this level: DorothyAri
On the DNS side, for every device on this level
0 services blocked · change

AdGuard could not be asked for its full list just now, so only the services already on this level are shown. Reload when it is back.

A blocked service is its whole list of domains, apps included. AdGuard keeps that list current.

A visitor has no time budget, so there are no minutes to set.

Adult

Household adult: no filtering beyond the household blocklists, no SafeSearch, no time limit. Never caught by a kids' control.

On this level: MaramaCallum

A household adult has no AdGuard client of their own: they get whatever the household catch-all gives everyone, which is ads and malware blocked and nothing else. There is nothing to set here, and that is deliberate.

What a cut-off child can still reach

Three lists, three promises. All three survive a total cut: internet off, dinner, bedtime, out of time. The firewall allows them by address, and addresses are shared, so whatever else lives on the same servers is reachable by address too; the name layer (AdGuard) only answers for the names below. A promise about a name needs a rule that reads the name, and that is what the search list is.

The safety net (10): never narrowed

The youth help lines and schoolwork. Nothing removes these: not this page, not the command line, not the database's own superuser. A trigger refuses it. To add a help line, edit config/db/seed.sql; that is a decision for the repo, not a box.

1737.org.nzNZ Need to Talk counselling
kidsline.org.nzKidsline
sparklers.org.nzwellbeing
thelowdown.co.nzyouth mental health
youthline.co.nzYouthline
classroom.google.comschoolwork
docs.google.comschoolwork
drive.google.comschoolwork
education.govt.nzeducation
khanacademy.orgeducation
The reading list (41): subdomains included

Reference sites a child out of time can still read, so learn-to-earn is not a memory test. Reference and reading, not discussion, not video, nothing with a feed (docs/READING-LIST.md has the five tests). example.org covers www.example.org. Rows shipped with Genkan cannot be removed here, because a schema reload would only put them back; rows you add can.

history
aotearoahistories.education.govt.nzAotearoa New Zealand's Histories, the curriculum topic every school has had to teach since 2023, and a natural search target for the history bank.
archives.govThe US National Archives, for primary sources and historical records.
naa.gov.auThe National Archives of Australia, for primary sources and historical records.
nationalarchives.gov.ukThe National Archives: primary sources and historical records, the UK equivalent of naa.gov.au and archives.gov.
nzhistory.govt.nzNZ History, from the Ministry for Culture and Heritage: a calendar of events and a dictionary of biography, text and no feed.
maths
mathsisfun.comExplains the maths banks better than the explanations do.
nrich.maths.orgThe University of Cambridge's free maths problem sets, open to everyone with no account needed, a different style of explanation to mathsisfun.com and a genuinely good complement to it.
reference
australiancurriculum.edu.auThe Australian Curriculum itself, published by ACARA. The national syllabus every Australian school works from.
bl.ukThe British Library.
britannica.comEncyclopaedia.
collections.tepapa.govt.nzTe Papa's object database, on a different address to tepapa.govt.nz. Without this the collection pages load with the objects missing.
doc.govt.nzDepartment of Conservation: native species, which is half the natural-history questions.
drive.govt.nzPractice road code questions from the source.
educationstandards.nsw.edu.auNESA, the NSW curriculum and HSC syllabus authority, added as the representative state body. Other states run their own (VCAA in Victoria, QCAA in Queensland); add one if your household needs it.
learninglab.si.eduThe Smithsonian Learning Lab: a million museum objects and specimens, free to browse with no account needed. An account is only required to save a collection.
library.gov.auThe National Library of Australia, now serving its site from this address rather than nla.gov.au.
loc.govThe Library of Congress, including its research guides written specifically for middle and high school students.
merriam-webster.comThe standard American dictionary. Its free tier carries ordinary banner ads, not the aggressive, child-targeted kind, and no account is needed to look up a word.
nationalgallery.org.ukThe National Gallery's collection pages. Its shop is a separate subdomain (shop.nationalgallery.org.uk) and is not included here.
natlib.govt.nzNational Library of New Zealand.
nzta.govt.nzThe actual road code, for the road code bank.
simple.wikipedia.orgSimple English Wikipedia, which is genuinely better for a younger reader.
tahurangi.education.govt.nzThe Ministry of Education's curriculum resource platform, replacing Te Kete Ipurangi (tki.org.nz), which is being retired onto this site.
teara.govt.nzTe Ara, the Encyclopedia of New Zealand.
tepapa.govt.nzTe Papa's learning and collections landing pages.
wikimedia.orgWhere Wikipedia's images and media come from. Without it the articles are text with holes.
wikipedia.orgThe obvious one. Reference, no feed, no comments.
wiktionary.orgDictionary.
www2.nzqa.govt.nzNZQA's subject and assessment pages, which a student preparing for NCEA reads directly. Login is only needed for the personal results portal, not for reading a subject page.
science
australian.museumThe Australian Museum's fact sheets on fossils, animals and minerals, written for students and teachers.
bom.gov.auThe Bureau of Meteorology, for the weather and climate half of the science bank.
csiro.auCSIRO, Australia's national science agency, and a genuinely good read on real research.
esa.intEuropean Space Agency.
ga.gov.auGeoscience Australia: earthquakes, geology and maps, from the source.
nasa.govFor the astronomy bank, and it is a genuinely good read.
nhm.ac.ukNatural History Museum.
noaa.govNOAA, the source for weather, ocean and atmosphere questions.
rmg.co.ukRoyal Museums Greenwich, home of the Royal Observatory: astronomy and navigation, written well.
sciencelearn.org.nzScience Learning Hub, written for New Zealand classrooms.
stem.org.ukSTEM Learning UK's open-access resource library, aligned to the English National Curriculum. An account is only needed to save favourites, not to read a resource.
www.usgs.govThe US Geological Survey, for geology, earthquakes and water. The bare domain usgs.gov does not resolve; this address does.
Search (10): exact hosts only

Each of these is one exact host and nothing under it. google.com is allowed so a child can search; mail.google.com, Meet, Chat and Messages are not, and accounts.google.com is deliberately absent because that is where a sign-in starts.

apis.google.comGoogle search (exact host, not Gmail or messaging)
encrypted-tbn0.gstatic.comGoogle search (exact host, not Gmail or messaging)
fonts.gstatic.comGoogle search (exact host, not Gmail or messaging)
forcesafesearch.google.comGoogle search (exact host, not Gmail or messaging)
google.comGoogle search (exact host, not Gmail or messaging)
google.co.nzGoogle search (exact host, not Gmail or messaging)
ssl.gstatic.comGoogle search (exact host, not Gmail or messaging)
www.google.comGoogle search (exact host, not Gmail or messaging)
www.google.co.nzGoogle search (exact host, not Gmail or messaging)
www.gstatic.comGoogle search (exact host, not Gmail or messaging)

Household switches

The things that are off until a parent turns them on, and the numbers the whole house shares. A default is never flipped by an update. Anything that lives in a file rather than the database is shown here as it is, with where it lives.

Device claiming

Off by default, and it stays that way. A new device gets a lease and the internet, as it always has. observe restricts nothing and counts what enforcing would catch (genkan unclaimed). enforce gives a device nobody owns DNS, the portal and the safety net only, until a child claims it and you confirm. A child's claim on its own grants nothing. docs/DEVICE-IDENTITY.md.

Household IoT policy

What each camera, lock, speaker and vacuum may talk to. It ships in observe, where every rule that would refuse traffic is a counter instead, so nothing in the house behaves differently. enforce makes the refusals real. The timer that keeps it fresh (kids-iot-policy.timer) is not enabled on this box, so a mode change is applied once, now, and not refreshed as addresses move. docs/HOUSEHOLD-SECURITY.md before enforcing.

The house board

off

Off by default. The one place siblings are compared. It compares improvement and effort, never raw totals, because a raw leaderboard is a race the youngest loses every day by construction. A child's own badges are always theirs to see, whatever this says. docs/GAMIFICATION.md.

The slow lane

kbit/s

The third state between on and off: the video still plays, it just buffers. 256 kbit/s is the shipped rate. Running out of time cuts the internet unless you choose the slope, because changing what happens at zero without being asked would be somebody's evening changed by an upgrade. The gateway picks up a change within fifteen seconds. The safety net is never slowed.

The portal's flag window

20 minutes (the default)

How long after a Tor, darknet or drugs lookup the portal shows the "come find me" page instead of the plain blocked page. Read only: it is PORTAL_FLAG_WINDOW_MIN in the portal container's environment (compose.yaml), which this dashboard cannot see, so this is the default unless you set it. Self-harm is never on that page and never blocks anything.

Whole-house cut

60 minutes when no length is given; the Family page offers 30, 60 and 120

There is no stored default and no setting to change here. It is a number you choose each time, on purpose: a cut that outlives the reason for it is the failure this design avoids, so every cut carries its own clock and lifts itself.

Notification quiet hours

no phone routes set up

Per phone route, set on the Notifications page or with genkan-notify set <route> --quiet 21:30-07:00. Read only here.

Household timezone

Pacific/Auckland

The database's day boundary: when a budget resets and when a bedtime is. Read only: deploy.sh sets it from GENKAN_TZ in config.env. If this is UTC, every budget and bedtime is twelve hours out, and docs/OPERATIONS.md says what to run.

Storage

How big the database is, what is in it, and how long each kind of record is kept. Everything Genkan records lives in one Postgres database on this box and never leaves the house. It does not have to stay forever either: a complete record of a child's adolescence sitting in a cupboard is not what anybody agreed to.

The database
18.5 MB
everything Genkan has recorded, on this box
Free on the disk
75.5 GB
52.5 GB of 128 GB used
Growing by
about 6.2 MB a month
628 lookups a day this week, at what a typical lookup row costs on disk
What is kept, and for how long

One rule per table. The nightly prune deletes whatever is older than the rule and nothing else. Pick a preset or type any number of days from 1 to 3650. A change is audited in the block log like every other save on this page.

DNS lookups: every domain a device asked fordns_log the sensitive one

4.8 MB · about 16,000 rows · oldest 7 Aug 2026

days

Every domain a device asked for. The most sensitive table in the database and the one with the shortest life. Thirty days is enough to answer "what happened last week" and not enough to build a picture of a child. Its default is the shortest for a reason: a family does not need a permanent archive of its children's browsing, and a longer window has to justify itself on its own terms, not on the charts looking better (PRIVACY-CHARTER.md, P5).

Daily minutes per serviceservice_usage

264 KB · about 2,000 rows · oldest 10 Jul 2026

days

Daily minutes per service. Same reasoning.

Daily minutes per categorycategory_usage

96.0 KB · about 448 rows · oldest 10 Jul 2026

days

Daily minutes per category. Small, aggregated, and what the Week and Trends pages are built on.

Minutes earned, spent and taken awaytime_events

72.0 KB · about 246 rows · oldest 10 Jul 2026

days

Minutes earned and spent. An aggregate, not a record of what was watched, so it can safely live longer and makes the year-on-year view possible.

Quiz rounds, with their answersquiz_rounds

64.0 KB · about 66 rows · oldest 5 Aug 2026

days

How a child has been going. Two years lets a parent see real progress. quiz_answers has no timestamp of its own and cascades from here, so pruning a round takes its answers with it.

Alertsalerts

48.0 KB · about 4 rows · oldest 25 Aug 2026

days

Kept longer because a parent may want to look back at a pattern, and because an acknowledged alert is already a decision somebody made.

The block log (the audit trail)block_events

32.0 KB · about 12 rows · oldest 27 Aug 2026

days

The audit trail of what was blocked and by whom. A year, so a household can see a year.

Which address each device haddhcp_leases

32.0 KB · about 16 rows · oldest 3 Sept 2026

days

Which address a device had. Operational, not interesting after a month.

kid_summarieskid_summaries

32.0 KB · about 0 rows · empty

days

Summaries a parent asked an AI to write, with the exact brief that was sent for each. Opinion about a child, so it does not need to outlive the year it describes.

Device claims, including the wrong PINsdevice_claims

24.0 KB · about 0 rows · empty

days

Who said a device was theirs, including the wrong-PIN attempts a parent should be able to see.

The largest tables
dns_log 4.8 MB, about 16,000 rowsservice_usage 264 KB, about 2,000 rowsquiz_answers 128 KB, about 644 rowsquiz_study_visits 112 KB, about 227 rowscategory_usage 96.0 KB, about 448 rowscategory_domains 80.0 KB, about 239 rows

Tables without a retention row are reference data or settings (the category and vendor lists, the quiz banks, the Tor relay list, who lives here) and are never pruned.

Prune now, rather than tonight

The preview asks the pruner what it would delete and changes nothing. Delete runs the same nightly prune now, after showing you the numbers.

Delete DNS lookups older than a number of days

A one-off for the table that grows fastest. It does not change the rule above: keep 30 days as the rule and clear back to 7 today, if that is what you want.

days

What a prune cannot undo. A deleted row is gone. Genkan keeps no copy and makes no backup of its own; docs/OPERATIONS.md has the one-line pg_dump that does, and the backup is yours to keep in the house. After a delete, Postgres keeps the freed space for new rows, so the sizes here shrink straight away only when the rows at the end of a table have gone; the rest is reused rather than returned. This is the demo: the figures are the demo's own database, and the buttons change nothing.

What this page cannot do