Inicio Rapido
Este guia te leva do zero ate ter um agent enrolado e operacional. Pressupoe que voce ja tem:
- Docker + Docker Compose instalado no hub
- Acesso SSH a um VPS de teste
- Dominio publico apontando pro hub (ex:
tatuzim.dev.borlot.com.br) - Traefik (ou outro reverse proxy) com Let's Encrypt configurado
1. Subir o Tatuzim Server
No hub:
git clone https://github.com/devborlot/tatuzim
cd tatuzim
cat > .env << 'EOFENV'
STEP_CA_PASSWORD=sua-senha-step-ca
TATUZIM_MASTER_PASSPHRASE=sua-senha-vault-MUITO-FORTE
EOFENV
docker compose up -d step-ca
sleep 10
# Capturar provisioner kid + key (necessario pro server)
PROV_KID=$(docker exec dev_stepca_tatuzim step ca provisioner list | jq -r '.[0].key.kid')
ENC_KEY=$(docker exec dev_stepca_tatuzim step ca provisioner list | jq -r '.[0].encryptedKey')
PROV_KEY=$(docker exec -i dev_stepca_tatuzim sh -c "echo '$ENC_KEY' | step crypto jwe decrypt --password-file /run/secrets/ca_password")
cat >> .env << EOFENV2
TATUZIM_STEPCA_PROVISIONER_KID=$PROV_KID
TATUZIM_STEPCA_PROVISIONER_KEY=$(echo "$PROV_KEY" | jq -c .)
EOFENV2
# Extrair root CA pra montar no server container
mkdir -p certs
docker exec dev_stepca_tatuzim cat /home/step/certs/root_ca.crt > certs/root_ca.pem
docker compose up -d tatuzim-server
docker logs -f dev_tatuzim_serverVoce deve ver:
INFO tatuzim_server: vault unsealed
INFO tatuzim_server: schema verified
INFO tatuzim_server: stepca client ready
INFO tatuzim_server::server_identity: requesting fresh server cert from step-ca
INFO tatuzim_server: enroll endpoint listening
INFO tatuzim_server: mTLS endpoint listening (strict)Verifique health publicamente:
curl https://tatuzim.SEUDOMINIO.com/v1/enroll -X POST -d '{}'
# Esperado: 401 {"error":"token_not_found"} — server respondendo2. Criar um Enrollment Token
O server precisa ser parado para o CLI offline acessar o vault (lock exclusivo):
docker stop dev_tatuzim_server
TOKEN=$(docker run --rm --entrypoint /usr/local/bin/tatuzim \
-v tatuzim_tatuzim_vault:/var/lib/tatuzim \
-e TATUZIM_MASTER_PASSPHRASE="$TATUZIM_MASTER_PASSPHRASE" \
tatuzim-server:dev \
token create --root /var/lib/tatuzim \
--hostname meu-vps-01 --role mautic --ttl 1h \
| awk '/^ [A-Za-z0-9_-]{20,}$/ { print $1; exit }')
echo "Token gerado: $TOKEN"
docker start dev_tatuzim_serverEsse token e single-use e valido por 1h.
3. Instalar o Agent no VPS
A partir da v0.1.0, o agent esta publicado em https://get.tatuzim.com:
ssh root@meu-vps-01 << 'EOF'
ARCH=$(uname -m)
curl -fsSLo /usr/local/bin/tatuzim-agent https://get.tatuzim.com/$ARCH/tatuzim-agent
chmod +x /usr/local/bin/tatuzim-agent
# Para systemd unit + user "tatuzim" + diretorios, instale tambem o .deb
# (build local: cd /proj/tatuzim/server && cargo deb -p tatuzim-agent)
EOFApos a instalacao com .deb:
- Binario em
/usr/local/bin/tatuzim-agent - User
tatuzimcriado (uid 999) - Diretorios em
/var/lib/tatuzim-agent/(0750, tatuzim:tatuzim) - systemd unit em
/etc/systemd/system/tatuzim-agent.service(disabled)
Detalhes em Instalar o Tatuzim Agent e Distribuicao.
4. Enroll do Agent
Voce precisa do root CA do step-ca pra o agent confiar no server (mTLS):
# No hub
docker exec dev_stepca_tatuzim cat /home/step/certs/root_ca.crt > /tmp/stepca-root.pem
scp /tmp/stepca-root.pem root@meu-vps-01:/etc/tatuzim-agent/No VPS:
sudo -u tatuzim \
TATUZIM_SERVER_URL="https://tatuzim.SEUDOMINIO.com" \
TATUZIM_SERVER_MTLS_URL="https://tatuzim.SEUDOMINIO.com:8443" \
TATUZIM_SERVER_CA_PATH="/etc/tatuzim-agent/stepca-root.pem" \
TATUZIM_AGENT_HOSTNAME="meu-vps-01" \
TATUZIM_AGENT_ROLE="mautic" \
TATUZIM_AGENT_DATA_DIR="/var/lib/tatuzim-agent" \
TATUZIM_ENROLL_TOKEN="$TOKEN" \
/usr/local/bin/tatuzim-agent enrollSaida esperada:
INFO starting enrollment hostname=meu-vps-01 role=mautic
INFO calling enrollment endpoint url=https://.../v1/enroll
Enrolled successfully!
agent_id: 00000000-0000-...
hostname: meu-vps-01
identity: /var/lib/tatuzim-agent/identity
You may now remove TATUZIM_ENROLL_TOKEN from the environment.5. Validar
No VPS:
sudo -u tatuzim TATUZIM_SERVER_URL=https://tatuzim.SEUDOMINIO.com \
TATUZIM_AGENT_HOSTNAME=meu-vps-01 \
TATUZIM_AGENT_DATA_DIR=/var/lib/tatuzim-agent \
/usr/local/bin/tatuzim-agent identityMostra:
Tatuzim Agent identity:
hostname: meu-vps-01
cert CN: meu-vps-01
cert serial: ...
not_before: May 23 ...
not_after: May 24 ...
data_dir: /var/lib/tatuzim-agent6. Habilitar o Daemon
Crie um arquivo de env pra systemd:
sudo tee /etc/tatuzim-agent/env << EOF
TATUZIM_SERVER_URL=https://tatuzim.SEUDOMINIO.com
TATUZIM_SERVER_MTLS_URL=https://tatuzim.SEUDOMINIO.com:8443
TATUZIM_SERVER_CA_PATH=/etc/tatuzim-agent/stepca-root.pem
TATUZIM_AGENT_HOSTNAME=meu-vps-01
TATUZIM_AGENT_ROLE=mautic
TATUZIM_AGENT_DATA_DIR=/var/lib/tatuzim-agent
TATUZIM_AGENT_POLL_INTERVAL=30s
TATUZIM_AGENT_RENEWAL_THRESHOLD=6h
RUST_LOG=info
By Borlot.com.br on 23/05/2026