Skip to content
DnsLister Forum

Where domain hunters compare notes

ScreenGuard – self-hosted parental controls for Linux (screen time limits + schedules), AGPL

I have kids on Linux machines and wanted to limit their screen time. It turns out that barely exists. Timekpr-nExT is the main option and it's good, but it's configured per-machine — which doesn't help when there's more than one computer, and means walking over to a PC to grant 15 more minutes.

So I built ScreenGuard: a central server holds the rules, and a small agent on each managed machine enforces them.

What it does

– Daily time limits and weekly schedules, per Linux user account

– Locks the graphical session when time runs out — optionally keeping apps and unsaved work running behind the lock screen, so nothing is lost

– Desktop warnings at 15 / 10 / 5 / 1 minutes

– Grant or take back minutes on the fly, with a reason the kid actually sees

– One profile can span several machines — the limit is shared, not per-device

– Per-profile domain blocklist, enforced on the agent at DNS level

– Send a text message to a user's desktop

– Keeps working offline — the agent caches its config and enforces it even if the server is unreachable

– Web UI and a REST API, plus an Android app:
– UI in English, Polish, German, French, Spanish, Portuguese

Web UI:

https://preview.redd.it/b3sszy34rvph1.jpg?width=2035&format=pjpg&auto=webp&s=eb00772cc2f54694afabad8f334ddca7933a0a6f

https://preview.redd.it/k8zxafclrvph1.jpg?width=1990&format=pjpg&auto=webp&s=ec9b8977a4a5fb112b240b0e1a9e47e5c14cc4f1

Mobile app:

https://preview.redd.it/xw4en6axrvph1.png?width=1008&format=png&auto=webp&s=8d0cfedf9df63f32dccd6e9c2786f91944084cdd

https://preview.redd.it/h1b8n3axrvph1.png?width=1008&format=png&auto=webp&s=46126b04faf908c9966dd5b4de60e1a517ea19f5

Stack and deployment

– Server and agent are both Rust, static musl binaries, no runtime dependencies

– Server runs via Docker Compose, or as a plain systemd unit

– Agent installs with a script, runs under systemd, pairs to the server with a code

– mDNS discovery, so agents find the server on the LAN with no configuration

– AGPL-3.0

The obvious objection, up front

This is time limits and schedules — not monitoring. No keylogging, no screenshots, no browsing history collection. The agent is open source and a teenager can read exactly what it reports. I think that's the right property for software that runs on someone else's computer.

Where it actually is

Early, and I'd rather say so. I run it at home, a handful of other people run it, and they've sent genuinely good bug reports — but it's a few months old and I want more eyes on it before calling it stable. Distro-specific breakage, weird desktop environments, and "this made no sense to me" feedback are all exactly what I'm after.

Repo: https://github.com/adambie/screenguard

(There's a hosted option too if you don't want to run a server, but self-hosting is the point and will stay that way — it's the same AGPL server either way.)

Source: r/selfhosted · by /u/adambie

Leave a Reply

Your email address will not be published. Required fields are marked *