Binário com systemd
1. Usuário e pastas
Seção intitulada “1. Usuário e pastas”sudo useradd --system --home /var/lib/litezap --shell /usr/sbin/nologin litezapsudo install -d -o litezap -g litezap -m 0700 /var/lib/litezap /var/lib/litezap/datasudo install -d -m 0755 /etc/litezapsudo install -m 0755 litezap /usr/local/bin/litezap2. Configuração
Seção intitulada “2. Configuração”sudo cp litezap.example.yaml /etc/litezap/litezap.yamlsudo editor /etc/litezap/litezap.yaml # data_dir, public_url, timezone...Segredos ficam melhor num arquivo de ambiente legível só pelo root:
sudo install -m 0600 /dev/null /etc/litezap/litezap.envecho "LITEZAP_ADMIN_TOKEN=$(openssl rand -hex 24)" | sudo tee /etc/litezap/litezap.env >/dev/null3. Unit
Seção intitulada “3. Unit”/etc/systemd/system/litezap.service:
[Unit]Description=LiteZap (API de WhatsApp)After=network-online.targetWants=network-online.target
[Service]Type=simpleUser=litezapGroup=litezapWorkingDirectory=/var/lib/litezapEnvironment=LITEZAP_DATA_DIR=/var/lib/litezap/dataEnvironmentFile=-/etc/litezap/litezap.envExecStart=/usr/local/bin/litezap serve --config /etc/litezap/litezap.yamlRestart=on-failureRestartSec=5
# O supervisor recebe SIGTERM e encerra os workers sozinho; o que sobrar leva SIGKILL no fim do prazo.KillMode=mixedTimeoutStopSec=45
# EndurecimentoNoNewPrivileges=truePrivateTmp=trueProtectSystem=strictProtectHome=trueReadWritePaths=/var/lib/litezapProtectKernelTunables=trueProtectControlGroups=trueRestrictSUIDSGID=trueLockPersonality=true
[Install]WantedBy=multi-user.targetsudo systemctl daemon-reloadsudo systemctl enable --now litezapjournalctl -u litezap -fPrivateTmp=true é seguro: os sockets dos workers ficam no /tmp privado do serviço, compartilhado entre o
supervisor e os workers que ele inicia.
4. Atualizar
Seção intitulada “4. Atualizar”sudo install -m 0755 litezap-novo /usr/local/bin/litezapsudo systemctl restart litezapNo restart, envios interrompidos voltam para a fila e as instâncias reconectam sem QR.

