Instalação do Amplia em Oracle Linux
Para instalar uma instância on premises do Amplia em Oracle Linux, siga os passos abaixo. Para outras plataformas, clique aqui.
Antes de começar, leia a seção Planejamento antes da instalação.
Pré-requisitos
-
Oracle Linux 8, 9 ou 10
-
SQL Server 2016 ou mais recente (recomendada edição Standard ou superior)
-
Licença PKI SDK (no formato Base64)
-
Licença Web PKI (formato Base64/binário) -- necessário apenas se os usuários forem emitir certificados em seus computadores (procedimento de emissão na web)
-
Entradas de DNS criadas anteriormente para:
- Acesso ao painel de controle (veja Domínio de acesso ao painel de controle)
- Publicação de LCRs (veja Domínios de acesso)
-
(recomendado) Certificado SSL válido para o domínio de acesso ao painel de controle
-
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
Instalar o Amplia
Alguns passos utilizam o comando nano, que pode não estar disponível no seu sistema. Substitua o comando pelo
vi ou instale o nano executando yum install nano.
Crie um usuário local para executar o servidor de aplicação 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 por usuários com permissões elevadas. Isso significa que o usuário da aplicação (amplia) pode ler os arquivos mas não pode alterá-los (isso é intencional).
Crie o arquivo de configuração do Amplia 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
Arquivos de configuração só podem ser lidos por membros do grupo amplia e só podem ser alterados por usuários com permissões elevadas. Isso é importante para proteger informações sigilosas armazenadas no arquivo de configuração dos demais usuários da máquina.
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 o parâmetro EncryptionKey gere uma chave de 256 bits para cifrar dados sensíveis armazenados no banco de dados:
openssl rand -base64 32
Ainda na seção [General], para preencher o parâmetro RootPasswordHash escolha uma senha forte para o acesso de root e compute o hash da senha:
dotnet /usr/share/amplia/Lacuna.Amplia.Site.dll -- hash-root-pass
Preencha os demais parâmetros de acordo com as instruções presentes no arquivo de configuração.
Configurar 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á rodando, execute:
curl http://localhost:5000/api/system/info
A saída esperada é algo como:
{"productName":"Lacuna Amplia","productVersion":"5.x.x","spaVersion":"...","timestamp":"..."}
Configurar um servidor proxy reverso
Se você preferir usar o Apache ao invés 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 valor do item server_name pelo domínio de acesso ao painel de controle (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 o certificado SSL válido. Essa configuração está fora do escopo dessas
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
Abra as portas HTTP e HTTPS do seu servidor para tráfego externo (caso ainda não estejam abertas):
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload