Pular para o conteúdo principal

Setup do Amplia em Docker

Para instalar uma instância on-premises do Amplia em Docker, siga os passos abaixo. Para outras plataformas, clique aqui.

dica

Antes de começar, certifique-se de ter concluído os passos descritos em Planejamento antes da instalação

Para o setup em Docker, a seguinte imagem é disponibilizada no Docker Hub:


Imagem Docker do Amplia


A imagem recomendada atualmente é lacunasoftware/amplia:5.0

Tags de imagem em destaque:

  • A tag 5.0 aponta para a imagem 5.0.x mais recente (recomendada)
  • A tag 5 aponta para a imagem 5.x mais recente
  • A tag stable aponta para a imagem estável mais recente
observação

Se você está atualizando uma instância que executa uma imagem 4.x, veja antes Atualizando o Amplia da versão 4.x para 5.0.

Esta imagem requer:

Configuração​

O container desta imagem é configurado por variáveis de ambiente. Baixe o arquivo de ambiente de exemplo para ter um modelo a ser preenchido com as configurações da imagem.

Para preencher a configuração General__EncryptionKey, gere uma chave de 256 bits para cifrar os dados sensíveis armazenados no banco de dados:

docker run lacunasoftware/amplia:5.0 -- gen-enc-key

Para preencher a configuração General__RootPasswordHash, escolha uma senha forte para o acesso root ao painel de controle e calcule o hash dela:

docker run -i lacunasoftware/amplia:5.0 -- hash-root-pass
observação

Se quiser habilitar o gerenciamento de usuários, deixe a configuração General__RootPasswordHash em branco e, em vez disso, siga os passos de Configuração de OpenID Connect

Portas expostas​

A imagem do Amplia escuta na porta 80.

Configure um proxy reverso ou um balanceador de carga escutando nas duas portas padrão, de HTTP (80) e de HTTPS (443), e redirecionando o tráfego das duas portas para a porta 80 do Amplia. Além disso, o seu setup deve preencher os headers de requisição X-Forwarded-Proto, X-Forwarded-For e X-Forwarded-Port. A configuração Bindings__UseReverseProxy=True indica ao Amplia que as informações desses headers são confiáveis.

Exemplo​

Em um ambiente de produção, normalmente você usaria um orquestrador de Docker e um SQL Server dedicado (ou um banco de dados oferecido como IaaS), mas, para fins de teste, é possível executar uma instância do Amplia com uma instância do SQL Server Express (que é gratuito) usando apenas o Docker.

Comece criando um volume para o servidor de banco de dados:

docker volume create amplia_sql

Em seguida, inicie-o com uma senha de sua escolha (substitua SOME_PASS abaixo):

docker run -v amplia_sql:/var/opt/mssql -p 1433:1433 -e "MSSQL_PID=Express" -e "SA_PASSWORD=SOME_PASS" -e "ACCEPT_EULA=Y" mcr.microsoft.com/mssql/server:2019-latest

Verifique se há erros no console. Isso pode levar alguns minutos.

Quando o SQL Server estiver em execução, abra outro terminal para iniciar a instância do Amplia.

Crie um volume para usar como blob storage:

docker volume create amplia_data

Em seguida, baixe o arquivo de ambiente de exemplo, salve-o com o nome amplia.env e preencha-o.

Na configuração da connection string, use o valor abaixo, substituindo HOST_IP pelo endereço IP do host e SOME_PASS pela senha que você escolheu para o SQL Server:

ConnectionStrings__DefaultConnection=Data Source=HOST_IP;Initial Catalog=Amplia;User ID=sa;Password=SOME_PASS

Na configuração do blob storage, mantenha os valores padrão, já que vamos montar o volume criado em /var/app:

BlobStorage__Type=FileSystem
BlobStorage__Path=/var/app

Agora, execute o container com o arquivo de configuração, montando o volume amplia_data em /var/app e expondo a aplicação (que escuta na porta 80) na porta 8080 do host:

docker run --env-file amplia.env -v amplia_data:/var/app -p 8080:80 lacunasoftware/amplia:5.0
dica

Se receber uma credencial com privilégios suficientes, o Amplia tenta criar o banco de dados no servidor (que é o que vai acontecer neste caso)

Verifique se há erros de configuração no console. Se tudo estiver configurado corretamente, você terá uma instância do Amplia em execução em localhost:8080

Veja também​

Ver em Markdown