-
-
Notifications
You must be signed in to change notification settings - Fork 0
Operations
This page covers day-to-day Trove operations.
Server health:
curl http://SERVER:8080/healthzAgents:
curl http://SERVER:8080/api/v1/agentsServices:
curl http://SERVER:8080/api/v1/servicesEvents:
curl http://SERVER:8080/api/v1/eventsDocker Compose server:
docker compose logs -f serverDocker agent:
docker logs -f trove-agent-dockerSystemd server:
journalctl -u trove-server -fSystemd local agent:
journalctl -u trove-agent-local -fKubernetes agent:
kubectl logs -f deploy/trove-agent -n <namespace>Create one token per agent:
trove-server agent create <name>Compose:
docker compose exec server trove-server agent create <name>Save the token immediately. It cannot be recovered later because Trove stores only the hash.
Back up the SQLite database.
Recommended approaches:
- stop the server and copy the database
- use SQLite backup tooling
- use a filesystem snapshot
Avoid copying a busy SQLite database file with no snapshot/backup mechanism and assuming it is valid. It may work until the day it does not, which is the most SQLite sentence ever.
To restore:
- stop
trove-server - replace the database file with the backup
- ensure ownership/permissions match the service user
- start
trove-server - check
/healthz - check
/api/v1/agents
Agents will resume pushing with their existing tokens if the restored database contains their token hashes.
Event retention:
TROVE_EVENT_RETENTION=720hRemoved-service retention:
TROVE_REMOVED_RETENTION=24hShorter retention keeps the database smaller. Longer retention gives richer history and digest context.
After changing alert variables:
trove-server alert testCompose:
docker compose exec server trove-server alert testConfirm the message actually arrived. An ok from a webhook only means the receiving endpoint accepted the request.
Private registry credentials go on the server, not the agents:
TROVE_REGISTRY_AUTHS={"ghcr.io":{"username":"techdox","password":"..."}}Restart the server after changing them.
Until built-in auth exists, use one of:
- LAN-only binding
- VPN-only access
- reverse proxy with auth
- Cloudflare Access or similar front door
- firewall rules
Do not put the unauthenticated dashboard directly on the open internet.