RackPeek can run in two ways:
RackPeek stores everything in a writable config/ directory as YAML (including automatic backups).
Wherever you run it, that directory must be writable.
This gives you:
8080version: "3.9"
services:
rackpeek:
image: aptacode/rackpeek:latest
container_name: rackpeek
ports:
- "8080:8080"
volumes:
- rackpeek-config:/app/config
restart: unless-stopped
volumes:
rackpeek-config:
Start it:
docker compose up -d
Open:
http://localhost:8080
This uses a named volume, which avoids permission issues and is recommended for most users.
Use the same Compose file above in a stack. Portainer typically handles user permissions automatically.
If you want the YAML stored directly on your host:
volumes:
- /path/on/host/rackpeek:/app/config
⚠️ The directory must be writable.
If you see:
Access to the path '/app/config/config.yaml' is denied.
Fix ownership:
sudo chown -R 1000:1000 /path/on/host/rackpeek
Or explicitly set the container user:
user: "1000:1000"
RackPeek must be able to:
config.yamlPermission issues are almost always the cause of startup failures.
If running Docker, you already have the CLI.
Run commands directly inside the container:
docker exec -it rackpeek rpk --help
docker exec -it rackpeek rpk systems list
If you prefer running RackPeek directly on Linux:
wget https://github.com/Timmoth/RackPeek/releases/download/RackPeek-0.0.3/rackpeek_0_0_3_linux-x64 -O rackpeek
Or:
curl -L https://github.com/Timmoth/RackPeek/releases/download/RackPeek-0.0.3/rackpeek_0_0_3_linux-x64 -o rackpeek
chmod +x rackpeek
sudo mv rackpeek /usr/local/bin/rpk
RackPeek expects a config folder next to the binary:
sudo mkdir -p /usr/local/bin/config
sudo touch /usr/local/bin/config/config.yaml
⚠️ It must be writable, since RackPeek writes backups there as well.
If needed:
sudo chown -R $USER:$USER /usr/local/bin/config
rpk --help
RackPeek stores everything in plain YAML:
config/
└── config.yaml
No database. No telemetry. No lock-in.
You own your data.