Keeping it updated
The agent does not update itself. The version you install is the version you keep running until you replace it. Updating is a pull and a recreate, and takes about a minute.
Recreating the container reuses the stored token from the neurogrid-data
volume, and that token is encrypted with your password. A different password
cannot read it and the machine would have to be registered again with a new
token.
Update
docker pull ghcr.io/neurogrid-ai-exchange/neurogrid-agent:latest
docker stop neurogrid-agent
docker rm neurogrid-agent
docker run -d --name neurogrid-agent \
--gpus all --restart unless-stopped \
--dns 1.1.1.1 --dns 8.8.8.8 \
-v neurogrid-data:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/neurogrid/workloads:/var/lib/neurogrid/workloads \
-e AGENT_ENCRYPTION_PASSWORD="$AGENT_ENCRYPTION_PASSWORD" \
ghcr.io/neurogrid-ai-exchange/neurogrid-agent:latest
No --token this time. The stored one is still there.
On Compose it is shorter:
docker compose pull
docker compose up -d
Do it while you are idle
Recreating the container kills any job it is running, and a job that dies partway is a failure on your record. Check first:
docker ps --filter "name=neurogrid-job" --format '{{.Names}}'
Empty output means nothing is serving and you are free to update. If a job is running, either wait for it to finish or pause the listing in the console and update once it drains.
Which version am I on
docker inspect neurogrid-agent --format '{{.Config.Image}}'
docker images --digests | grep neurogrid-agent
:latest does not tell you much on its own — compare the digest against
the package page
to see whether a newer build exists.
Should I update automatically
You can, with a tool like Watchtower, but think about the trade first: an unattended update that lands mid-job kills that job. If you do automate it, restrict it to the agent container and give it a schedule during hours your card is usually idle.
Cleaning up old images
Each update leaves the previous image behind. They are small (~250 MB), but they add up:
docker image prune -f
That removes untagged images only. It will not touch the vLLM engine image (~20 GB) or your Hugging Face model cache, and you do not want it to — those are what make the next job start quickly.