# Docker

Source: https://zshot-cli.com/reference/docker/
Markdown: https://zshot-cli.com/reference/docker/index.md
Section: [Reference](https://zshot-cli.com/reference/)

## [`scaleassembly/zshot-server`](https://hub.docker.com/r/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.

```sh
docker run --rm -p 3000:3000 \
  -e ZSHOT_LICENSE="MY-ZSHOT-LICENSE-KEY" \
  scaleassembly/zshot-server
```

The image exits at startup without a license. [Environment](/reference/docker/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](/reference/server) for the endpoints and tuning flags.

## [`scaleassembly/zshot`](https://hub.docker.com/r/scaleassembly/zshot)

Runs `zshot` with the arguments you pass, as on the command line, and applies [`--container`](/reference/flags/security/container). Use it for captures, or for a server you configure entirely with flags:

```sh
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`](/reference/flags/server/server-bind-address) 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:

```sh
docker run --rm -p 3000:3000 \
  -e ZSHOT_LICENSE="MY-ZSHOT-LICENSE-KEY" \
  scaleassembly/zshot-server
```

Or mount a [`zshot.toml`](/reference/configuration) and point [`--config`](/reference/flags/common/config) at it:

```sh
docker run --rm -p 3000:3000 \
  -v /host/zshot.toml:/etc/zshot/zshot.toml:ro \
  scaleassembly/zshot-server \
  --config /etc/zshot/zshot.toml
```

Both images run in [container mode](/reference/flags/security/container), 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](/reference/docker/hardening) covers the profile that ships in the image, the recommended runtime settings and a published [Compose file](/reference/docker/files/docker-compose). [Kubernetes](/reference/docker/kubernetes) has the manifests, and [Railway](/reference/docker/railway) a hosted deploy.

## Health checks

`scaleassembly/zshot-server` ships a Docker `HEALTHCHECK` that probes [`/status`](/reference/server/api). To check it yourself, or to add one to the generic image:

```sh
curl http://localhost:3000/status
```

It returns 200 with the current number of in-flight requests once the server is ready. `/status` is not behind authentication.

## Navigation

- [Examples](https://zshot-cli.com/examples/)
- [Download](https://zshot-cli.com/download/)
- [Purchase](https://zshot-cli.com/purchase/)
- [Reference](https://zshot-cli.com/reference/)
  - [Formats](https://zshot-cli.com/reference/formats/)
  - [Flags](https://zshot-cli.com/reference/flags/)
  - [Agents](https://zshot-cli.com/reference/agents/)
  - [Configuration](https://zshot-cli.com/reference/configuration/)
  - [Crawling](https://zshot-cli.com/reference/crawling/)
  - **Docker**
    - [Environment](https://zshot-cli.com/reference/docker/environment/)
    - [Hardening](https://zshot-cli.com/reference/docker/hardening/)
    - [Kubernetes](https://zshot-cli.com/reference/docker/kubernetes/)
    - [Railway](https://zshot-cli.com/reference/docker/railway/)
    - [Files](https://zshot-cli.com/reference/docker/files/)
  - [Exit Codes](https://zshot-cli.com/reference/exit_codes/)
  - [Linux](https://zshot-cli.com/reference/linux/)
  - [LLM Connections](https://zshot-cli.com/reference/llm_connections/)
  - [LLM Formatting](https://zshot-cli.com/reference/llm_formatting/)
  - [Local Inputs](https://zshot-cli.com/reference/inputs/)
  - [Navigator](https://zshot-cli.com/reference/navigator/)
  - [Security](https://zshot-cli.com/reference/security/)
  - [Server](https://zshot-cli.com/reference/server/)
  - [Shell completions](https://zshot-cli.com/reference/shell_completions/)
  - [Storage](https://zshot-cli.com/reference/storage/)
  - [Timeouts](https://zshot-cli.com/reference/timeouts/)
  - [Web Bot Auth](https://zshot-cli.com/reference/web_bot_auth/)
- [Support](https://zshot-cli.com/support/)
- [Changelog](https://zshot-cli.com/changelog/)

Site index: https://zshot-cli.com/llms.txt

