Instalação do Amplia em Rocky Linux
Para instalar uma instância on-premises do Amplia em Rocky Linux, 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
Pré-requisitos
-
Rocky Linux 8.x ou mais recente
-
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
Instale o ASP.NET Core Runtime 10.0
Estas instruções pressupõem que você está autenticado como root. Se não estiver, execute sudo su - antes de continuar!
Instale o pacote do ASP.NET Core Runtime:
yum install aspnetcore-runtime-10.0
Para testar a instalação, execute:
dotnet --list-runtimes
A saída esperada é semelhante a:
Microsoft.AspNetCore.App 10.0.* [*/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 10.0.* [*/dotnet/shared/Microsoft.NETCore.App]
Para outras versões do sistema operacional e outras formas de instalar o ASP.NET Core Runtime, veja esta página
Instale o Amplia
Crie um usuário local para executar o servidor do Amplia:
mkdir /var/amplia
useradd --system --home-dir /var/amplia amplia
chown amplia:amplia /var/amplia
Crie a pasta do site, baixe e extraia os binários:
mkdir /usr/share/amplia
curl -O https://cdn.lacunasoftware.com/amplia/amplia-5.0.0.tar.gz
tar xzf amplia-5.0.0.tar.gz -C /usr/share/amplia
chmod -R a=,u+rwX,go+rX /usr/share/amplia
Os arquivos do site podem ser lidos por qualquer usuário, mas só podem ser alterados pelo usuário root. Isso significa que o usuário da aplicação (amplia) pode ler os arquivos, mas não pode alterá-los, o que é intencional.
Crie o arquivo de configuração a partir do template fornecido:
mkdir /etc/amplia
cp /usr/share/amplia/config-templates/linux/appsettings.conf /etc/amplia/
chown -R root:amplia /etc/amplia
chmod -R a=,u+rwX,g+rX /etc/amplia
Os arquivos de configuração só podem ser lidos por membros do grupo amplia e só podem ser alterados pelo usuário root. Isso é importante para proteger contra acessos não autorizados os dados sensíveis armazenados nos arquivos de configuração.
Configure o Amplia
Edite o arquivo de configuração para configurar sua instância do Amplia:
nano /etc/amplia/appsettings.conf
Na seção [General], para preencher a configuração EncryptionKey, gere uma chave de 256 bits para cifrar os dados sensíveis armazenados no banco de dados:
openssl rand -base64 32
Ainda na seção [General], para preencher a configuração RootPasswordHash, escolha uma senha forte para o acesso root ao painel de controle e calcule o hash dela:
dotnet /usr/share/amplia/Lacuna.Amplia.Site.dll -- hash-root-pass
Se quiser habilitar o gerenciamento de usuários, deixe a configuração RootPasswordHash em branco e, em vez disso, siga os passos de Configuração de OpenID Connect
Preencha as demais configurações de acordo com as instruções do arquivo de configuração.
Configure um daemon
Crie o arquivo de definição do serviço:
touch /etc/systemd/system/amplia.service
nano /etc/systemd/system/amplia.service
Digite o seguinte:
[Unit]
Description=Amplia
[Service]
WorkingDirectory=/usr/share/amplia
ExecStart=/usr/bin/dotnet Lacuna.Amplia.Site.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=amplia
User=amplia
Environment=ASPNETCORE_ENVIRONMENT=Linux
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
Salve o arquivo, habilite o serviço e inicie-o:
systemctl enable amplia
systemctl start amplia
systemctl status amplia
A saída esperada é semelhante a:
* amplia.service - Amplia
Loaded: loaded (/etc/systemd/system/amplia.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-07-07 05:50:04 UTC; 4min 22s ago
Main PID: 10960 (dotnet)
Tasks: 31 (limit: 2319)
CGroup: /system.slice/amplia.service
└─10960 /usr/bin/dotnet Lacuna.Amplia.Site.dll
...
Dec 04 12:45:08 server.patorum.com amplia[32562]: Hosting environment: Production
Dec 04 12:45:08 server.patorum.com amplia[32562]: Content root path: /usr/share/amplia
Dec 04 12:45:08 server.patorum.com amplia[32562]: Now listening on: http://localhost:5000
Dec 04 12:45:08 server.patorum.com amplia[32562]: Application started. Press Ctrl+C to shut down.
Hint: Some lines were ellipsized, use -l to show in full.
Se necessário, reinicie o serviço: systemctl restart amplia
Para testar se o servidor do Amplia está em execução, execute:
curl http://localhost:5000/api/system/info
A saída esperada é algo como:
{"productName":"Lacuna Amplia","productVersion":"5.x.x","spaVersion":"...","timestamp":"..."}
Configure um servidor proxy reverso
Se preferir usar o Apache em vez do Nginx, veja este artigo.
Instale o Nginx (se ainda não estiver instalado):
yum install nginx
systemctl enable nginx.service
systemctl start nginx.service
Teste se o Nginx está em execução:
curl -I http://localhost/
Verifique as primeiras linhas da saída, que devem ser semelhantes a:
HTTP/1.1 200 OK
Server: nginx/...
...
Edite a configuração do Nginx:
nano /etc/nginx/nginx.conf
Remova ou comente (com #) toda a seção server, localizada logo abaixo da cláusula include /etc/nginx/conf.d/*.conf;. Depois de
comentar a seção, o arquivo de configuração deve ficar semelhante a este:
...
http {
...
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
# server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
...
}
Crie um arquivo de configuração de site para o Amplia:
touch /etc/nginx/conf.d/amplia.conf
nano /etc/nginx/conf.d/amplia.conf
Digite o seguinte, substituindo o domínio de acesso ao painel de controle no item server_name (veja Domínio de acesso ao painel de controle):
server {
listen 80;
server_name localhost ca.patorum.com;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Idealmente, a configuração do site deve conter as entradas ssl_certificate e ssl_certificate_key com um certificado SSL válido. Essa configuração está fora do escopo destas instruções.
Permita que o Nginx acesse o serviço do Amplia:
setsebool -P httpd_can_network_connect on
Teste a configuração do Nginx e recarregue-a:
nginx -t
nginx -s reload
Teste o site:
curl http://localhost/api/system/info
Libere o tráfego HTTP e HTTPS no seu sistema (se ainda não estiver liberado):
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload