-
-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
Trove can run as Docker Compose, systemd binaries, or mixed server/agent deployments.
The usual pattern is:
- server in Docker Compose or systemd
- Docker/Proxmox agents as containers
- Kubernetes agent in-cluster
- Local agent as systemd
Download the server-only Compose file:
curl -fsSLO https://raw.githubusercontent.com/techdox/trove/main/examples/docker-compose.server.ymlCreate a bootstrap token:
echo "TROVE_TOKEN=trove_$(openssl rand -hex 24)" > .envStart:
docker compose -f docker-compose.server.yml up -dOpen:
http://SERVER:8080
Use:
examples/docker-compose.proxmox.yml
This is useful for standing up a server and Proxmox agent together.
Make sure the agent image is the Proxmox image, not the Docker agent image.
The repo includes:
deploy/systemd/trove-server.service
Typical install shape:
sudo install -m 0755 trove-server /usr/local/bin/trove-server
sudo install -m 0644 deploy/systemd/trove-server.service /etc/systemd/system/trove-server.service
sudo mkdir -p /var/lib/trove
sudo install -m 0600 /dev/null /etc/trove-server.envExample /etc/trove-server.env:
TROVE_DB=/var/lib/trove/trove.db
TROVE_ADDR=:8080Start:
sudo systemctl daemon-reload
sudo systemctl enable --now trove-server
sudo systemctl status trove-serverCreate one token per agent:
trove-server agent create docker-nuc01With Compose:
docker compose exec server trove-server agent create docker-nuc01Save the token immediately. It is shown once.
The server address must be reachable by every agent.
Choose how users reach the dashboard:
- LAN IP and port 8080
- internal DNS name
- VPN address
- reverse proxy with authentication/TLS
- native OIDC on the Trove server
Avoid exposing the dashboard directly to the public internet without authentication. See Authentication for OIDC/Authentik setup and logout requirements.
Persist the SQLite database.
Docker Compose example:
volumes:
- trove-data:/dataSystemd example:
/var/lib/trove/trove.db
Back up the SQLite database. It contains:
- agent names
- token hashes
- host/service catalog
- events
- image freshness cache
- alert state
A simple backup while the server is running should use SQLite's backup mechanism where possible. At minimum, stop the server or use a filesystem snapshot before copying the file.