Ir para o conteúdo

31 — Instalar Portainer CE (opcional)

Gerenciamento visual de containers Docker — profile portainer, HTTPS 9443.


1. Visão geral

Item Valor
Profile portainer
Container lorentz-portainer
HTTPS 9443
HTTP 9000
Script scripts/deploy-portainer.sh
Imagem upstream portainer/portainer-ce

2. Pré-requisitos

  • Docker rodando na VPS
  • .env com MSSQL_SA_PASSWORD (Compose valida arquivo inteiro)
chmod +x scripts/*.sh

3. Passo a passo

Passo 1 — Deploy

cd ~/omnichannel/lorentz-vps-stack
./scripts/deploy-portainer.sh

Passo 2 — Firewall AWS

./scripts/deploy-portainer.sh --open-sg
# ou restrito:
./scripts/open-aws-port-portainer.sh SEU_IP/32

Passo 3 — Firewall local

./scripts/deploy-portainer.sh --open-fw

Passo 4 — Primeiro acesso

  1. Preferir https://portainer.orbitall.app/ (Caddy + allowlist EDGE_ADMIN_CIDRS)
    Alternativa direta: https://<IP>:9443/ (TLS próprio do Portainer)
  2. Crie senha admin nos primeiros 5 minutos
  3. Se expirar: docker restart lorentz-portainer
  4. Environment: Docker → Socket (o compose já monta /var/run/docker.sock)

Atrás do Caddy o Portainer exige PORTAINER_TRUSTED_ORIGINS=portainer.orbitall.app (hostname, sem https:// na CE 2.39.x). Sem isso: Forbidden - origin invalid.

Passo 5 — Parar / remover

./scripts/deploy-portainer.sh --stop
./scripts/deploy-portainer.sh --remove   # apaga volume portainer-data

4. Segurança

  • Restrinja 9443 ao IP da equipe TI
  • Não use senha padrão em produção
  • Portainer tem acesso ao docker.sock — trate como acesso root na VPS

5. Erros comuns

Erro Solução
Timeout HTTPS Security Group / firewalld — Passo 2–3
Tela de senha expirada docker restart lorentz-portainer
Forbidden - origin invalid CSRF atrás do proxy: PORTAINER_TRUSTED_ORIGINS=portainer.orbitall.app no .env, recreate Portainer; acesse só via https://portainer.orbitall.app/ (não misture com :9443 na mesma sessão)
HTTP 403 (Caddy) IP fora de EDGE_ADMIN_CIDRS — liberar IP do rodapé do portal; negados em /var/log/caddy/edge-admin-denied.log (./scripts/edge-admin-denied-report.sh)
.env incompleto cp .env.example .env

6. Relacionado