grith.aidocs

grith daemon

Manage the long-running daemon that owns the shared subsystems.

grith daemon [start | stop | status]

The daemon is the long-running grith process that owns the dashboard server, the shared audit + digest, the reputation table, and the notification dispatcher. See Daemon and thin-client sessions for the "why".

grith daemon is also aliased as grith dashboard for the common case of "I just want the web UI running".

Subcommands

grith daemon start

Start the daemon.

grith daemon start                    # foreground (Ctrl-C stops)
grith daemon start --detach           # background, writes pid file
grith daemon start --host 0.0.0.0     # bind to all interfaces (not recommended without TLS)
grith daemon start --port 8080        # override default 3141

The dashboard becomes reachable at http://127.0.0.1:3141 once started. The HTTP API is documented in API overview.

grith daemon status

$ grith daemon status
grith daemon: running
  PID:        18123
  Uptime:     2h14m
  Listening:  http://127.0.0.1:3141
  Sessions:   3 active
  Digest:     2 pending
  Plan:       community

Exits non-zero if the daemon isn't running.

grith daemon stop

Graceful shutdown. The daemon flushes the reputation table, finalises pending audit writes, unregisters sessions (they fall back to standalone), and exits.

grith daemon stop

--force skips graceful shutdown and sends SIGKILL.

Logs and pid

PathWhat
~/.local/share/grith/daemon.logRotating log file (detached mode).
~/.local/share/grith/daemon.pidPID file when detached.
~/.config/grith/config.toml[server] section controls the daemon's HTTP server.

Running as a system service

For unattended deployments, run the daemon under systemd / launchd / a process supervisor. The shipping unit files are at contrib/systemd/grith.service in the grith repo. See Running as a daemon for the full operations guide.

Restart safety

Restarts are clean on Pro (state is checkpointed before the stop). On community, in-flight digest items are dropped — they were never persistently stored, so a restart auto-denies them via timeout in the calling thin client.

See also

Last updated: 2026-05-14Edit this page on GitHub →
© 2026 grith. All rights reserved.