# Linux

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

## Packages

### APT repository

On Ubuntu 22.04+ and Debian 12+, add the ZShot repository once and updates arrive through `apt upgrade`:

```sh
sudo install -d -m755 /etc/apt/keyrings
curl -fsSL https://releases.zshot-app.com/apt/zshot-archive-keyring.gpg | sudo tee /etc/apt/keyrings/zshot-archive-keyring.gpg >/dev/null
echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/zshot-archive-keyring.gpg] https://releases.zshot-app.com/apt stable main" | sudo tee /etc/apt/sources.list.d/zshot.list
sudo apt update && sudo apt install zshot
```

Verify the key:

```sh
curl -fsSL https://releases.zshot-app.com/apt/zshot-archive-keyring.gpg | gpg --show-keys
```

The fingerprint must be:

```
853909A7ADB62E00A338253230C60E18C85C245C
```

### Direct downloads

The `.deb` installs on Ubuntu 22.04+ and Debian 12+ with `apt-get install ./zshot-VERSION-linux-ARCH.deb`.

The `.tar.gz` runs on any distro with glibc 2.35 or newer, including Fedora and Arch. It bundles `INSTALL.txt` and `DEPENDENCIES.txt`, which list the install steps and required system packages.

Both include [shell completions](/reference/shell_completions) for bash, zsh, and fish.

The Docker image should be used on systems that do not provide Xvfb.

## Hardening

The `.deb` and the tarball on a bare host use Chromium's sandbox with no setup. `chrome-sandbox` ships setuid there as Chromium's fallback for kernels with user namespaces disabled. In a container the sandbox needs a seccomp profile: [Docker hardening](/reference/docker/hardening) covers the profile and the recommended runtime settings, and [Kubernetes](/reference/docker/kubernetes) the manifests.

### Environment

On Linux ZShot rewrites its environment before Chromium starts. Helper processes see time zone and locale (`TZ`, `LANG`, `LANGUAGE`, `LC_*`), `DISPLAY`, `HOME`, `USER`, `TMPDIR`, `PATH`, fontconfig and proxy variables, and nothing else. License keys, server tokens, and provider API keys never reach them, and credential flag values show as `*` in the process command line. A variable meant for Chromium, such as GPU driver tuning, does not pass through; Chromium switches go through [`--chromium-arg`](/reference/flags/browser/chromium-arg).

## GPU rendering

ZShot renders on the GPU by default and falls back to CPU rendering with [`--software-rendering`](/reference/flags/common/software-rendering). Ensure that the user running the app has access to any GPU device nodes ( `/dev/nvidia*`, et al).

## 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](https://zshot-cli.com/reference/docker/)
  - [Exit Codes](https://zshot-cli.com/reference/exit_codes/)
  - **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

