[Unit] Description=Clawmates ZeroClaw runtime (missions execution) Documentation=https://github.com/openclaw/openclaw After=docker.service network-online.target Wants=network-online.target Requires=docker.service [Service] Type=simple Restart=on-failure RestartSec=5 TimeoutStartSec=120 # ─── State # clawmates_core: internal, holds server ↔ runtime traffic # clawmates_edge: has egress, needed for outbound calls to # api.anthropic.com, generativelanguage.googleapis.com, # api.groq.com, etc. # /root/clawmates-runtime/data → /zeroclaw-data (config + brains) # /var/lib/clawmates-missions → mirror path so security_scan + # benchmark_runner can docker-exec here. # # The container is created fresh every start (--rm) and cleaned on # stop, so upgrading the image is a simple `docker pull` + systemctl # restart. Environment=IMAGE=clawmates-runtime:sync Environment=NAME=clawmates-runtime ExecStartPre=-/usr/bin/docker rm -f ${NAME} ExecStart=/bin/sh -c '\ /usr/bin/docker run -d --rm --name ${NAME} \ --network clawmates_core \ --restart no \ -v /root/clawmates-runtime/data:/zeroclaw-data \ -v /var/lib/clawmates-missions:/var/lib/clawmates-missions \ ${IMAGE} daemon --host 0.0.0.0 \ && sleep 2 \ && /usr/bin/docker network connect clawmates_edge ${NAME} \ && /usr/bin/docker wait ${NAME}' ExecStop=-/usr/bin/docker stop --time 10 ${NAME} [Install] WantedBy=multi-user.target