Docker
scaleassembly/zshot-server
Runs ZShot’s HTTP server in container mode on 0.0.0.0:3000, with a built-in health check. Use it to deploy ZShot as a service: supply a license and it serves with no flags.
docker run --rm -p 3000:3000 \
-e ZSHOT_LICENSE="MY-ZSHOT-LICENSE-KEY" \
scaleassembly/zshot-serverThe image exits at startup without a license. Environment lists the variables that set the port, authentication and concurrency, so a deploy needs no custom command. Flags after the image name override the defaults. See Server for the endpoints and tuning flags.
scaleassembly/zshot
Runs zshot with the arguments you pass, as on the command line, and applies --container. Use it for captures, or for a server you configure entirely with flags:
docker run --rm -p 3000:3000 \
-e ZSHOT_LICENSE="MY-ZSHOT-LICENSE-KEY" \
scaleassembly/zshot \
--server --server-bind-address 0.0.0.0--server-bind-address 0.0.0.0 listens on all interfaces; the server binds 127.0.0.1 by default, which is unreachable from outside the container.
License
Supply the license one of two ways.
Set the ZSHOT_LICENSE environment variable to your license key:
docker run --rm -p 3000:3000 \
-e ZSHOT_LICENSE="MY-ZSHOT-LICENSE-KEY" \
scaleassembly/zshot-serverOr mount a zshot.toml and point --config at it:
docker run --rm -p 3000:3000 \
-v /host/zshot.toml:/etc/zshot/zshot.toml:ro \
scaleassembly/zshot-server \
--config /etc/zshot/zshot.tomlBoth images run in container mode, so a license activated from a key is released when the container stops and the next start activates it again. That keeps a disposable or serverless deployment within its activation limit without a writable config file. Give the container time to shut down on SIGTERM: a container killed outright holds its activation until it ages out server-side.
Sandbox
Both images keep Chromium’s sandbox on where the runtime permits it, which under Docker needs a seccomp profile; without one they render unsandboxed and print a warning. Hardening covers the profile that ships in the image, the recommended runtime settings and a published Compose file. Kubernetes has the manifests, and Railway a hosted deploy.
Health checks
scaleassembly/zshot-server ships a Docker HEALTHCHECK that probes /status. To check it yourself, or to add one to the generic image:
curl http://localhost:3000/statusIt returns 200 with the current number of in-flight requests once the server is ready. /status is not behind authentication.