Base de Conhecimento

Umami na VPS: como medir as visitas do seu site

  • umami na vps, umami, analytics, docker, vps
  • Usuários acharam útil: 0

Aprenda a instalar o Umami no seu servidor com Docker e PostgreSQL, trocar a senha padrão, colar o código de rastreio no site, ligar o HTTPS e manter a atualização.

Por Redação Eleven Host · @robson.direitodigital · 1 de novembro de 2026 · 8 min de leitura

Arte da Eleven Host: janela de terminal com o título: Umami na VPS: como medir as visitas do seu site

Capa da Redação Eleven Host para o guia: Umami na VPS: como medir as visitas do seu site Arte: Eleven Host

O Umami na VPS é um analytics de código aberto que você instala com Docker e PostgreSQL para ver as visitas do seu site. As estatísticas ficam no seu servidor, e você acompanha tudo por um painel web.

O que é o Umami e para quem serve

O Umami coleta e mostra dados de acesso do seu site: páginas vistas, de onde vieram os visitantes, navegadores, sistemas operacionais, tipos de aparelho e localização aproximada. É o que a documentação do projeto lista como dados coletados.

Ao hospedar o Umami você mesmo, o painel e o banco rodam no seu servidor. Isso dá controle sobre os dados, mas traz uma troca: atualização, backup e segurança passam a ser com você. Se ainda está conhecendo servidores, leia antes o guia de iniciantes sobre servidor VPS.

Com o Umami na sua VPS, o painel de estatísticas e o banco PostgreSQL ficam no seu servidor, e você decide quando atualizar e como guardar os dados.

Segundo a documentação, em instalação própria os dados são mantidos por tempo indeterminado, a menos que você os apague manualmente. Isso significa que o espaço do banco cresce com o tempo, e vale acompanhar.

Privacidade e cookies: o que a documentação diz

A documentação do Umami afirma que o rastreador web do projeto não usa cookies. Ela também diz que o Umami foi pensado com a privacidade em mente.

Mas a própria documentação faz duas ressalvas. A primeira: a necessidade de um aviso de cookies no seu site depende dos outros serviços que você usa e das exigências aplicáveis. A segunda: a conformidade com o GDPR depende de como você configura e usa a ferramenta. A documentação fala do GDPR, e não da LGPD.

Por isso, instalar o Umami não resolve sozinho a parte jurídica do seu site. Se tiver dúvida sobre aviso de cookies ou sobre a política de privacidade, consulte um profissional.

Outro ponto: a documentação informa que o Umami coleta telemetria anônima para ajudar a melhorar o aplicativo. Para desligar, defina a variável DISABLE_TELEMETRY com o valor 1.

Antes de começar

Separe estas coisas antes do primeiro comando:

  • Uma VPS com Docker e Docker Compose instalados. O Umami usa o PostgreSQL como banco; a documentação cita a versão 12.14 como mínima. O compose abaixo já sobe o banco para você.
  • Um domínio ou subdomínio para o painel, por exemplo stats.exemplo.com, apontado para o IP da VPS.
  • Acesso para editar o site que será medido, porque você vai colocar nele um trecho de código.

A documentação do Umami cita só o PostgreSQL como banco, então siga com o PostgreSQL do compose.

O arquivo compose oficial

O repositório do Umami no GitHub traz este docker-compose.yml. Salve o arquivo numa pasta do servidor:

services:

umami:

image: ghcr.io/umami-software/umami:latest

ports:

- "3000:3000"

environment:

DATABASE_URL: postgresql://umami:umami@db:5432/umami

APP_SECRET: replace-me-with-a-random-string

# Required for two-factor authentication, generate with: openssl rand -hex 32

TWO_FACTOR_ENCRYPTION_KEY: replace-me-with-a-64-character-hex-string

depends_on:

db:

condition: service_healthy

init: true

restart: always

healthcheck:

test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]

interval: 5s

timeout: 5s

retries: 5

db:

image: postgres:15-alpine

environment:

POSTGRES_DB: umami

POSTGRES_USER: umami

POSTGRES_PASSWORD: umami

volumes:

- umami-db-data:/var/lib/postgresql/data

restart: always

healthcheck:

test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]

interval: 5s

timeout: 5s

retries: 5

volumes:

umami-db-data:

Antes de subir, troque os valores de exemplo:

  • APP_SECRET é uma sequência aleatória usada para proteger os tokens de autenticação. A documentação diz que cada instalação deve ter um valor único.
  • TWO_FACTOR_ENCRYPTION_KEY é necessária para a autenticação em dois fatores. O comentário do próprio arquivo manda gerar o valor com openssl rand -hex 32.
  • POSTGRES_PASSWORD está como umami no exemplo. Troque por uma senha forte e ajuste a mesma senha na DATABASE_URL, que tem o formato postgresql://usuario:senha@db:5432/umami.

Sobre a porta, o exemplo usa "3000:3000", que publica o painel em todas as interfaces do servidor. Nossa sugestão é trocar por "127.0.0.1:3000:3000" e deixar um proxy com HTTPS na frente. Veja a seção sobre HTTPS mais abaixo.

Depois dos ajustes, na pasta do arquivo, suba os contêineres:

docker compose up -d

Segundo a documentação, o aplicativo fica em http://localhost:3000, ou seja, na porta 3000 do próprio servidor. A documentação também cita uma imagem alternativa, docker.umami.is/umami-software/umami:latest; o compose acima usa a do repositório.

Primeiro login: troque a senha padrão

A documentação informa que o acesso inicial usa o usuário admin e a senha umami. E manda trocar a senha padrão logo depois do primeiro login.

Faça isso primeiro, porque esses dados são públicos na documentação. Entre no painel e defina uma senha forte para o seu usuário. Enquanto não trocar, quem alcançar o painel e conhecer o padrão consegue entrar.

O que trocar logo no início

  • A senha do usuário admin.
  • O APP_SECRET, que deve ser único na sua instalação.
  • A TWO_FACTOR_ENCRYPTION_KEY, gerada com openssl rand -hex 32.
  • A POSTGRES_PASSWORD, junto com a DATABASE_URL.

Adicionar o site e o script de rastreio

Com o painel aberto, cadastre o seu site no painel. Depois, siga o caminho que a documentação descreve:

  1. Abra a edição do site no painel (o botão Edit).
  2. Procure a seção Tracking code. É lá que fica o código de rastreio do seu site.
  3. Copie o código e cole na seção <head> das páginas do seu site.

Copie o trecho direto do painel, sem digitar à mão. Se o seu site usa Next.js, a documentação indica o componente next/script.

Por padrão, o arquivo do rastreador se chama script.js. Com a variável TRACKER_SCRIPT_NAME, você define outro nome para ele. Depois de publicar a página com o código, abra o site, navegue um pouco e confira se as visitas aparecem no painel.

Está escolhendo uma VPS? VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Ver os planos de VPS

HTTPS com um proxy reverso

Para abrir o painel em https://stats.exemplo.com (com o seu domínio no lugar), coloque um proxy reverso na frente do Umami. Ele recebe o acesso pela internet, cuida do certificado e encaminha para a porta 3000 do servidor. É por isso que sugerimos publicar a porta só em 127.0.0.1.

O guia Caddy na VPS: servidor web com HTTPS automático mostra um servidor web que emite e renova o certificado por você. Antes, o domínio precisa apontar para o IP da VPS.

Se você já usa o Docker no servidor e quer ver os contêineres por uma interface, o guia Portainer na VPS: como gerenciar o Docker pelo navegador pode ajudar.

Atualizar o Umami

A página de atualização da documentação traz estes dois comandos para quem usa Docker Compose:

docker compose pull

docker compose up --force-recreate -d

A documentação pede para estar na pasta do projeto do Umami antes de rodar os comandos, que é a pasta onde está o seu arquivo compose.

Em atualizações grandes, como a mudança para a v3 citada como exemplo, a documentação avisa que as migrações do banco podem deixar o PostgreSQL com estatísticas desatualizadas no planejador de consultas. Por isso ela recomenda rodar o comando ANALYZE; no banco depois da atualização, e diz que ele é seguro de rodar com o banco em uso e termina rápido.

Como as versões grandes migram o banco, sugerimos fazer uma cópia do banco antes de atualizar. A documentação do projeto não traz um procedimento de backup; uma opção é o pg_dump do contêiner db. Guarde a cópia fora da VPS.

Checklist do Umami

  • Troquei APP_SECRET, TWO_FACTOR_ENCRYPTION_KEY e POSTGRES_PASSWORD (e a DATABASE_URL junto).
  • Troquei a senha admin/umami no primeiro login.
  • Publiquei a porta como 127.0.0.1:3000:3000 e coloquei um proxy com HTTPS na frente.
  • Colei o código de rastreio, copiado do painel, no <head> do site.
  • Vi as primeiras visitas aparecerem no painel.
  • Revisei se o meu site precisa de aviso de cookies, sem presumir que o Umami dispensa.
  • Faço uma cópia do banco antes de atualizar.

Vale medir as visitas no seu servidor

Ter o próprio analytics dá controle sobre onde ficam os dados e sobre quando atualizar. Em troca, você assume o servidor, o banco e o cuidado com a senha e o HTTPS do painel. Medir visitas e saber se o site caiu são necessidades diferentes; para a segunda, o guia Uptime Kuma na VPS: como monitorar se o site caiu pode ajudar.

Quer conhecer a VPS da Eleven Host? VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Conhecer a VPS

Perguntas frequentes

O Umami usa cookies?

Segundo a documentação, o rastreador web do Umami não usa cookies. Mesmo assim, a necessidade de aviso de cookies no seu site depende dos outros serviços que você usa e das exigências aplicáveis.

O Umami é compatível com a LGPD?

A documentação não fala da LGPD. Ela diz que a conformidade com o GDPR depende de como você configura e usa a ferramenta. Em caso de dúvida, consulte um profissional.

Qual banco de dados o Umami usa?

PostgreSQL, com versão mínima 12.14, segundo a documentação. O compose oficial já sobe um PostgreSQL junto com o aplicativo.

Qual é o login inicial do Umami?

Usuário admin e senha umami. A documentação manda trocar a senha logo depois do primeiro login.

Como atualizar o Umami?

Na pasta do compose, rode docker compose pull e depois docker compose up --force-recreate -d. Em atualizações grandes, rode também ANALYZE; no banco, como a documentação recomenda.

Esta resposta lhe foi útil?

Artigos Relacionados