Instalação self-hosted
O LiteZap é um binário único, sem dependências externas: o banco é SQLite embutido e não precisa de CGO. Para rodar num servidor você só precisa do binário, de uma pasta de dados e, se a API for acessada pela internet, de um proxy reverso com TLS.
Requisitos
Seção intitulada “Requisitos”- Linux (amd64 ou arm64) é o alvo principal; macOS também funciona. Windows compila, mas ainda não foi testado.
- Memória: o supervisor é leve; cada número conectado é um processo worker (limite padrão de 512 MB por worker, normalmente bem menos).
- Disco para
data/(sessões, banco e mídia recebida). - Saída para a internet (diretamente ou pelos proxies configurados).
Escolha um caminho
Seção intitulada “Escolha um caminho”| Caminho | Para quem |
|---|---|
| Docker / Compose | O jeito mais rápido num VPS. Imagem mínima, usuário não root, volume /data. |
| Binário + systemd | Servidores sem Docker, controle total do sistema. |
Nos dois casos, coloque um proxy reverso com TLS na frente e leia as notas de segurança.
Compilar do código-fonte
Seção intitulada “Compilar do código-fonte”Requer a versão do Go indicada no go.mod.
git clone https://github.com/douglasdf99/litezap.git && cd litezapCGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=v0.2.0" -o litezap ./cmd/litezap./litezap versionPara outra plataforma, defina GOOS e GOARCH (ex.: GOOS=linux GOARCH=arm64). O binário é estático e pode ser
copiado direto para o servidor.
./litezap serve # lê ./litezap.yaml se existir./litezap serve --config /etc/litezap/litezap.yamlSem arquivo de config, valem os padrões e as variáveis LITEZAP_*. Veja configuração.
Na subida, o log mostra o endereço, a pasta de dados e onde está o token admin:
level=INFO msg="litezap listening" addr=127.0.0.1:8787 data_dir=/var/lib/litezap/data admin_token_file=/var/lib/litezap/data/admin_tokenO processo encerra de forma graciosa com SIGTERM ou Ctrl+C: para a fila (envios em andamento ganham até 10s),
desconecta os workers e fecha o banco. Um segundo Ctrl+C encerra na hora.
Pasta de dados
Seção intitulada “Pasta de dados”Tudo o que o LiteZap guarda fica em data_dir (padrão ./data, sempre resolvido para caminho absoluto):
data/├── admin_token # token admin gerado (0600), se você não definiu um├── media_key # segredo das URLs assinadas (0600)├── litezap.db # banco SQLite (WAL): instâncias, fila, chats, mensagens, cache de números├── instances/<id>/ # sessão do WhatsApp de cada instância (session.db)├── media/<id>/ # mídia recebida já baixada├── outbox/<id>/ # anexos aguardando envio└── run/<id>.pid # PID de cada worker em execuçãoOs workers conversam com o supervisor por sockets Unix em $TMPDIR/lz-<hash>/. Não rode duas cópias do LiteZap
sobre a mesma pasta de dados, nem a mesma sessão em duas máquinas ao mesmo tempo.

