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.
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.
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.
Age ~11: tight. Block adult/gambling/drugs/self-harm/dating/violence; SafeSearch + YouTube restricted forced; strict bedtime; time budget.
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.
Empty means no limit. The Family page edits the same two numbers. A change applies from each person's next day.
Age ~14: block genuinely harmful categories, keep social but monitored; SafeSearch on; later bedtime.
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.
Empty means no limit. The Family page edits the same two numbers. A change applies from each person's next day.
Age ~16: light touch + transparency. Block the seriously harmful only; focus on time + safety alerts, not heavy filtering.
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.
Empty means no limit. The Family page edits the same two numbers. A change applies from each person's next day.
Visitors: malware and adult content only, no time limit, no logging of individuals.
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.
Household adult: no filtering beyond the household blocklists, no SafeSearch, no time limit. Never caught by a kids' control.
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.
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 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
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.
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.
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.
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.
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.
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)
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.
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.
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.
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 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.
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.
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.
Per phone route, set on the Notifications page or with
genkan-notify set <route> --quiet 21:30-07:00. Read only here.
Pacific/AucklandThe 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.
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.
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_log the sensitive one4.8 MB · about 16,000 rows · oldest 7 Aug 2026
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).
service_usage264 KB · about 2,000 rows · oldest 10 Jul 2026
Daily minutes per service. Same reasoning.
category_usage96.0 KB · about 448 rows · oldest 10 Jul 2026
Daily minutes per category. Small, aggregated, and what the Week and Trends pages are built on.
time_events72.0 KB · about 246 rows · oldest 10 Jul 2026
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_rounds64.0 KB · about 66 rows · oldest 5 Aug 2026
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.
alerts48.0 KB · about 4 rows · oldest 25 Aug 2026
Kept longer because a parent may want to look back at a pattern, and because an acknowledged alert is already a decision somebody made.
block_events32.0 KB · about 12 rows · oldest 27 Aug 2026
The audit trail of what was blocked and by whom. A year, so a household can see a year.
dhcp_leases32.0 KB · about 16 rows · oldest 3 Sept 2026
Which address a device had. Operational, not interesting after a month.
kid_summaries32.0 KB · about 0 rows · empty
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_claims24.0 KB · about 0 rows · empty
Who said a device was theirs, including the wrong-PIN attempts a parent should be able to see.
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.
The preview asks the pruner what it would delete and changes nothing. Delete runs the same nightly prune now, after showing you the numbers.
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.
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.