Automode Docker Compose Quickstart
services:
mina_node:
image: 'minaprotocol/mina-daemon-auto-hardfork:<version>-noble-mainnet'
restart: always
environment:
MINA_CLIENT_TRUSTLIST: "0.0.0.0/0"
entrypoint: []
command: >
bash -c '
mina daemon \
--peer-list-url https://bootnodes.minaprotocol.com/networks/mainnet.txt \
--insecure-rest-server \
--rest-port 3085 \
--hardfork-handling migrate-exit
'
volumes:
- './mina-config:/root/.mina-config'
ports:
- '3085:3085'
- '8302:8302'
Replace <version> with the published stop-slot release from the Mina releases page.
--hardfork-handlingThe automode image still expects --hardfork-handling migrate-exit, so you always pass it here. The automode dispatcher consumes the flag and routes to the correct binary, so you do not need any conditional logic around it. Remove it only when you switch off the automode image (see Switching back to normal Docker).
Use the stop-slot release image for your target network. For devnet, replace the image tag suffix mainnet with devnet and use the corresponding devnet release tag.
The --peer-list-url above points to the mainnet bootnodes. For devnet, replace it with https://bootnodes.minaprotocol.com/networks/devnet.txt.
Add any extra configuration (e.g. MINA_PRIVKEY_PASS) under the environment section.
Switching back to normal Docker
After your node has completed the Mesa transition and you want to move off mina-daemon-auto-hardfork, update your Compose config as follows:
- Remove
--hardfork-handling migrate-exit. - Set the Docker image to the post-fork artifact, for example
minaprotocol/mina-daemon:<mesa-version>-noble-mainnet.
docker compose up -d
restart: always and the persistent mina-config volume are required for automode. If the volume is wiped between restarts, the node cannot transition to Mesa. See Upgrade Modes for details.