The Bitrecs V2 validator runs as a Docker Compose stack consisting of two long-lived services — the validator itself and a Watchtower sidecar — plus a short-livedDocumentation Index
Fetch the complete documentation index at: https://docs.bitrecs.ai/llms.txt
Use this file to discover all available pages before exploring further.
bitrecs-evals child container that the validator spawns on demand during each evaluation cycle. The Compose file is designed to be dropped into ~/bitrecs alongside your .env file; no other configuration files are needed. This page covers the full lifecycle of the stack from first launch through routine operations and common troubleshooting.
The docker-compose-prod.yml file
The production Compose file defines the two core services. Save it to~/bitrecs/docker-compose-prod.yml:
The validator mounts the Docker socket (
/var/run/docker.sock) so it can spawn the bitrecs-evals container at runtime. The privileged: true flag is required for this Docker-in-Docker access pattern.Starting the stack
Run this command from inside~/bitrecs:
-d flag detaches the process so the containers continue running after you close your terminal session.
Checking container status
| Container name | Image | Purpose |
|---|---|---|
bitrecs-validator | ghcr.io/bitrecs/bitrecs-v2:main | Validator process |
bitrecs-watchtower | nickfedor/watchtower | Automatic image updates |
| Container name | Image | Purpose |
|---|---|---|
bitrecs-evals-* | ghcr.io/bitrecs/bitrecs-evals:main | Isolated evaluation runner |
Viewing logs
Follow the live validator log stream:Ctrl+C to exit a live log stream without stopping the container.
Stopping the stack
Watchtower automatic updates
Watchtower is configured to poll every 120 seconds and watch only thebitrecs-validator container. When a new image is pushed to ghcr.io/bitrecs/bitrecs-v2:main, Watchtower:
- Pulls the new image
- Stops and removes the running
bitrecs-validatorcontainer - Starts a replacement container with the same configuration
- Removes the old image (
WATCHTOWER_CLEANUP=true)
docker pull or restart the stack manually to apply updates.
Troubleshooting
bitrecs-validator exits immediately on startup
bitrecs-validator exits immediately on startup
The most common cause is a malformed or missing Look for a
.env file. Check that ~/bitrecs/.env exists and that all required variables are set. Run:KeyError or ValidationError near the end of the output, which will identify the problematic variable.Permission denied on /var/run/docker.sock
Permission denied on /var/run/docker.sock
The validator requires access to the Docker socket. Ensure the socket exists and the current user has permission:Log out and back in for the group change to take effect, then restart the stack.
Wallet not found inside the container
Wallet not found inside the container
The wallet is mounted read-only from The
~/.bittensor/wallets on the host. Verify the wallet exists at that path:VALIDATOR_WALLET_NAME and VALIDATOR_HOTKEY_NAME values in .env must exactly match the directory names under ~/.bittensor/wallets/.bitrecs-watchtower is not running
bitrecs-watchtower is not running
If Watchtower exited, restart it individually:Confirm both containers are listed in
docker ps.bitrecs-evals container keeps running after evaluation
bitrecs-evals container keeps running after evaluation
The evaluation container should exit on its own. If it appears stuck, check its logs:If it is genuinely hung, stop it manually:The validator will spawn a fresh instance on the next evaluation cycle.