← Todos os posts

Infraestrutura · · Leitura de 12 min

Instale NetBox no Debian com Docker, Nginx e TLS

Este guia instala uma instância única do NetBox pela release oficial netbox-docker. Ela começa privada e só publica HTTPS depois de um certificado emitido com sucesso.

Antes de começar

Use Debian 12 ou 13 com Docker Engine e o plugin Compose moderno. Escolha um domínio completo e crie o DNS antes de solicitar TLS.

  • A stack contém NetBox, worker, PostgreSQL, Valkey, Nginx e Certbot.
  • 4 GiB RAM, 2 vCPU e 40 GiB livres são uma referência prática; o pré-check alerta, sem bloquear laboratórios menores.
  • O instalador não cria DNS nem regras de firewall.

Use o instalador versionado

O instalador valida o host, prepara uma release fixa do netbox-docker, pede a primeira conta administrativa sem ecoar a senha e inicia o NetBox somente em localhost antes do TLS.

sh
curl -fsSL https://scripts.lrq.lat/netbox/v1/install.sh | sudo bash

Baixa o caminho estável v1 e abre o menu interativo portátil.

sh
curl -fsSL https://scripts.lrq.lat/netbox/v1/install.sh | sudo bash -s -- preflight --yes

Verifica plataforma, Docker, portas, recursos, horário e instalações parciais sem alterar o host.

sh
curl -fsSL https://scripts.lrq.lat/netbox/v1/install.sh | sudo bash -s -- tls

Solicita ou repete TLS depois que DNS e TCP 80/443 estiverem prontos.

Instalação manual e segura

Use este caminho quando cada modificação precisar de revisão. Ele usa a release oficial 5.0.2 do netbox-docker e mantém arquivos e segredos restritos abaixo de /opt/lrqnet/netbox.

sh
sudo apt update
sudo apt install -y ca-certificates git openssl
sudo install -d -m 0750 /opt/lrqnet/netbox
sudo git clone --depth 1 --branch 5.0.2 https://github.com/netbox-community/netbox-docker.git /opt/lrqnet/netbox/netbox-docker
sudo git -C /opt/lrqnet/netbox/netbox-docker rev-parse HEAD

Instala ferramentas de revisão, clona a release oficial fixa e mostra o commit para conferência.

sh
sudo install -d -m 0750 /opt/lrqnet/netbox/netbox-docker/env
read -rsp 'Senha inicial do administrador NetBox: ' NETBOX_ADMIN_PASSWORD; printf '\n'
read -rsp 'Confirme a senha: ' NETBOX_ADMIN_PASSWORD_CONFIRM; printf '\n'
[ "$NETBOX_ADMIN_PASSWORD" = "$NETBOX_ADMIN_PASSWORD_CONFIRM" ] || { echo 'As senhas não coincidem' >&2; exit 1; }
[ "${#NETBOX_ADMIN_PASSWORD}" -ge 12 ] || { echo 'Use pelo menos 12 caracteres' >&2; exit 1; }
NETBOX_SECRET_KEY="$(openssl rand -base64 48 | tr -d '\n')"

Cria diretório restrito, solicita a senha sem eco e gera o segredo do NetBox localmente. Não coloque valores em histórico, tickets ou backups sem criptografia.

sh
sudo docker compose --project-directory /opt/lrqnet/netbox/netbox-docker config
sudo docker compose --project-directory /opt/lrqnet/netbox/netbox-docker up -d
sudo docker compose --project-directory /opt/lrqnet/netbox/netbox-docker ps

Valida a configuração resolvida, inicia serviços persistentes e mostra o estado. Revise o override Nginx/Certbot antes de expor o serviço.

TLS, validação e manutenção

O TLS usa Nginx e Certbot HTTP-01. Se a emissão falhar, o listener público é removido e o NetBox permanece privado. Um timer systemd renova certificados e recarrega Nginx.

sh
sudo systemctl status lrqnet-netbox-renew.timer --no-pager
sudo docker compose --project-directory /opt/lrqnet/netbox/netbox-docker ps
sudo docker compose --project-directory /opt/lrqnet/netbox/netbox-docker logs --tail=100 netbox netbox-worker

Confere renovação automática, saúde e logs recentes. Revise logs localmente, pois podem conter contexto privado.

sh
sudo docker compose --project-directory /opt/lrqnet/netbox/netbox-docker down

Para a stack sem apagar volumes. Não use --volumes sem intenção de apagar dados.

Script e release