Nap Or Terminate: Resource Utilization Sleep Tool
Your Docker containers don't need to run while you're not using them.
NOTRUST is a lightweight Linux daemon that watches your local Docker containers, notices when they've gone idle, and handles it for you: pause first, stop later if nobody comes back.
Less wasted RAM. Less CPU. Less noise.
you stop working
│
▼
┌────────┐ idle ┌────────┐ still idle ┌─────────┐
│ ACTIVE │ ──────────▶ │ PAUSED │ ─────────────▶ │ STOPPED │
└────────┘ └────────┘ └─────────┘
CPU → 0% RAM → freed
docker compose up -dPostgres starts. Redis starts. RabbitMQ starts. Your API starts.
Then you go to lunch.
Three hours later, all four are still running. Tomorrow you start another project, and now there's a second Postgres, a second Redis, a second everything — quietly stacking up until your machine is spending more resources on things you aren't using than things you are.
NOTRUST exists so you don't have to remember to clean up your own development environment.
- Pauses idle containers instantly — a cgroup freeze, CPU drops to 0%, unpause takes ~50ms
- Stops containers that stay idle — hands the RAM all the way back
- Actually checks idleness — CPU delta, network delta, and open connections, not just "container exists"
- Runs as a systemd user service — no root daemon, no extra permissions
- No dashboard. No account. No cloud. — one daemon, one job
curl -fsSL https://raw.githubusercontent.com/iammuuo/notrust/master/install.sh | bashDetects your architecture, downloads the latest release, installs the daemon, sets up the systemd unit, drops a default config, and starts it.
Grab a .tar.gz, .deb, or .rpm from the releases page.
go install github.com/iammuuo/notrust/cmd/notrustd@latest
go install github.com/iammuuo/notrust/cmd/notrust@latestRequirements: Linux · Docker · systemd · curl · tar
Supported architectures: x86_64 · arm64
systemctl --user status notrust # is it running
journalctl --user -u notrust -f # what it's doingThat's the whole interface for now. Leave it running and forget about it — that's the point.
Sensible defaults out of the box. Config lives at:
~/.config/notrust/config.yaml
A commented example ships with every release as config.example.yaml. Run with a specific file:
notrustd --config ./config.yamlEvery key can also be set as an environment variable prefixed NOTRUST_.
not a container orchestrator · not a monitoring platform · not a Docker Compose replacement · not a Kubernetes tool · not a cloud service
It's a small utility for local Docker environments. One problem, solved quietly.
- Idle detection — CPU, network, connections
- Pause on idle
- Escalate to stop after sustained idle
- Runs as a systemd user service
- CLI tooling
- Desktop notifications
- Per container policy overrides
- Richer status output
Early days. The core loop works; the tooling around it is still being built.
People keep rewriting perfectly good tools in Rust because someone on the internet told them memory safety is a personality trait.
This one is staying in Go. Pausing a container is one syscall, not a lifestyle.
Still early. Broken things, ideas, and pull requests are all welcome — open an issue.
not rust. just go, just build, just done.
