---
url: https://developers.zarv.com/edge-agent/installation.md
---
# Instalação

A instalação é um **único comando**, em qualquer sistema operacional. O pacote é
autocontido (ffmpeg, runtime de inferência e modelos já inclusos) e, nos métodos
nativos, o serviço `zarv-agent` sobe sozinho no boot via systemd.

## Escolha o método

::: code-group

```sh [Debian / Ubuntu (APT)]
curl -fsSL https://collector.zarv.com/agent/install-apt.sh | sh
```

```sh [RHEL / Fedora (RPM)]
curl -fsSL https://collector.zarv.com/agent/install-rpm.sh | sh
```

```sh [Linux / macOS (Docker)]
curl -fsSL https://collector.zarv.com/agent/install.sh | sh
```

```powershell [Windows (PowerShell)]
irm https://collector.zarv.com/agent/install.ps1 | iex
```

```sh [Docker Compose]
docker compose up -d
```

:::

::: tip Recomendação
Em Debian/Ubuntu e RHEL/Fedora, prefira os pacotes **nativos** (APT/RPM): eles
registram o serviço `zarv-agent` com auto-start no boot e se atualizam pelo
próprio repositório sob controle da Zarv. Use Docker apenas em sistemas sem
pacote nativo.
:::

## O que o instalador faz

Tomando o APT como exemplo, o script:

1. Adiciona o repositório de pacotes da Zarv e sua chave de assinatura.
2. Instala o pacote `zarv-agent` (já inclui ffmpeg, runtime e modelos).
3. Aponta o agente para o plano de controle da Zarv.
4. Registra e inicia o serviço systemd `zarv-agent`, **habilitado no boot**.

O fluxo do RPM é equivalente.

## Registro

Depois de instalar, registre o dispositivo:

1. Abra a interface local em `http://localhost:8088`.
2. Cole a **chave de enrollment** gerada no painel da Zarv.
3. Pronto — a partir daí a Zarv controla atualizações e features por OTA.

Detalhes em [Registro](/edge-agent/enrollment).

## Verificação

Confirme que o serviço está rodando e habilitado no boot:

```sh
systemctl is-enabled zarv-agent   # → enabled
systemctl is-active  zarv-agent   # → active
systemctl status     zarv-agent
```

Verifique a versão em execução nos logs:

```sh
journalctl -u zarv-agent | grep "starting"
```

E que a interface local responde:

```sh
curl -fsS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:8088/   # → 200
```

## Layout no disco (instalação nativa)

| Caminho                                  | Conteúdo                                               |
| ---------------------------------------- | ------------------------------------------------------ |
| `/usr/local/bin/zarv-agent`              | Binário do agente.                                     |
| `/lib/systemd/system/zarv-agent.service` | Unit systemd (auto-start no boot).                     |
| `/etc/default/zarv-agent`                | Variáveis de ambiente do serviço (conffile).           |
| `/var/lib/zarv-agent`                    | Estado persistente: banco SQLite, blobs, `config.env`. |
| `/opt/zarv/{bin,lib,models}`             | ffmpeg, libs e modelos embutidos.                      |

O serviço roda como o usuário de sistema sem privilégios `zarv-agent`.

## Configuração local

Variáveis de ambiente ficam em `/etc/default/zarv-agent`. As mais comuns estão
em [Configuração](/edge-agent/configuration). Após editar, reinicie:

```sh
sudo systemctl restart zarv-agent
```

## Desinstalação

::: code-group

```sh [Debian / Ubuntu (APT)]
sudo apt-get remove --purge zarv-agent
```

```sh [RHEL / Fedora (RPM)]
sudo dnf remove zarv-agent
```

```sh [Docker]
docker rm -f zarv-agent
```

:::

## Próximos passos

* [Registro](/edge-agent/enrollment)
* [Atualizações automáticas](/edge-agent/updates)
* [Solução de problemas](/edge-agent/troubleshooting)
