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.
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:
A imagem recomendada atualmente é lacunasoftware/amplia:5.0
Tags de imagem em destaque:
- A tag
5.0aponta para a imagem 5.0.x mais recente (recomendada) - A tag
5aponta para a imagem 5.x mais recente - A tag
stableaponta para a imagem estável mais recente
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:
-
Blob storage compartilhado entre todos os containers que executam a imagem -- veja Configuração de blob storage
-
Licença do PKI SDK (no formato Base64)
-
Licença do Web PKI (formato Base64/binário) -- necessária apenas se os usuários forem emitir certificados em seus computadores (procedimento de emissão na web)
-
Entradas de DNS criadas previamente para:
- Acesso ao painel de controle (veja Domínio de acesso ao painel de controle)
- Publicação de LCRs (veja Domínios de acesso)
-
Connection string para um banco de dados SQL Server ou PostgreSQL criado previamente
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
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
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