Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
instalacao_on_premise_flashman [12/11/2018 13:51] superuser |
instalacao_on_premise_flashman [15/02/2024 19:43] (atual) superuser [Requisitos de hardware] |
||
---|---|---|---|
Linha 1: | Linha 1: | ||
- | ===== Instalação diretamente no servidor ===== | + | ===== Requisitos de hardware e software para a Instalação do servidor Flashman Local ===== |
- | === Sistemas operacionais testados: Ubuntu 16.04 e 18.04 === | + | ==== Sistemas operacionais testados ==== |
- | === Requisitos de hardware: Processador quad core (i5 ou superior). 8GB RAM. 50GB HDD disponíveis. === | + | |
- | - Atualizar repositórios através do comando <code>sudo apt-get update</code> | + | |
- | - IMPORTANTE! Instalar e configurar o NTP | + | |
- | - Exemplo para Ubuntu 16.04: <code> | + | |
- | sudo timedatectl set-timezone America/Sao_Paulo | + | |
- | sudo timedatectl set-ntp on | + | |
- | </code> | + | |
- | - Aguardar um minuto e verificar status de sincronização através do comando <code>timedatectl</code> | + | |
- | - Instalar o Nginx (versão 1.10.3 ou superior) | + | |
- | - Insira o seguinte comando: <code> | + | |
- | sudo apt-get install nginx | + | |
- | </code> | + | |
- | - Instalar o MongoDB (versão 3.2 ou superior) | + | |
- | - Para instalar utilizando o Ubuntu | + | |
- | - Insira os seguintes comandos para Ubuntu 18.04: <code> | + | |
- | sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 | + | |
- | echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list | + | |
- | sudo apt-get update | + | |
- | sudo apt-get install -y mongodb-org | + | |
- | </code> | + | |
- | - Insira os seguintes comandos para Ubuntu 16.04: <code> | + | |
- | sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 | + | |
- | echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list | + | |
- | sudo apt-get update | + | |
- | sudo apt-get install -y mongodb-org | + | |
- | </code> | + | |
- | - Para instalar em sistemas operacionais diferentes do Ubuntu, veja a documentação em https://docs.mongodb.com/manual/installation/ | + | |
- | - Atenção! Não alterar a porta padrão 27017 | + | |
- | - Instalar NodeJS (versão 6.4.0 ou superior) | + | |
- | - Para instalar utilizando o Ubuntu | + | |
- | - Insira os seguintes comandos: <code> | + | |
- | curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - | + | |
- | sudo apt-get install -y nodejs | + | |
- | </code> | + | |
- | - Para instalar em sistemas operacionais diferentes do Ubuntu, veja a documentação em https://nodejs.org/en/download/package-manager/ | + | |
- | - Instalar pacotes essenciais do Ubuntu: <code>sudo apt-get install build-essential</code> | + | |
- | - Instalar o instalador de pacotes do NodeJS: <code>sudo apt-get install npm</code> | + | |
- | - Instalar o PM2 através do comando: <code> | + | |
- | npm install pm2 -g | + | |
- | </code> | + | |
- | - Instalar o extrator de .ZIP através do comando: <code>sudo apt-get install unzip</code> | + | |
- | - Extraia o arquivo .ZIP do pacote contendo o Flashman no diretório de sua preferência | + | |
- | - No diretório extraído do Flashman, execute o seguinte comando: <code> | + | |
- | npm install | + | |
- | </code> | + | |
- | - Configure o Nginx para receber e autorizar a comunicação HTTPS com o Flashman através do seguinte trecho de código de exemplo: <code> | + | |
- | server { | + | |
- | listen 443 ssl; | + | |
- | server_name meuflashmandeexemplo.dominio.com; | + | Ubuntu 20.04 22.04 LTS - versão SERVER, Debian 10 e 11 LTS - versão SERVER. |
- | location / { | + | ==== Requisitos de hardware ==== |
- | proxy_redirect http:// https://; | + | |
- | proxy_set_header X-Real-IP $remote_addr; | + | Mínimo: 4 núcleos de processamento. 8GB RAM. 50GB HDD livres |
- | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | + | |
- | proxy_set_header X-NginX-Proxy true; | + | |
- | proxy_set_header Upgrade $http_upgrade; | + | |
- | proxy_set_header Connection 'upgrade'; | + | |
- | proxy_set_header Host $host; | + | |
- | proxy_pass http://localhost:8000; | + | Recomendado: |
- | proxy_http_version 1.1; | + | Até um total de 12.000 CPES, 8 núcleos de processamento 8GB RAM 50GB HDD livres |
+ | Até um total de 24.000 CPES, 8 núcleos de processamento 16GB RAM 50GB HDD livres | ||
+ | Até um total de 48.000 CPES, 12 núcleos de processamento 32GB RAM 50GB HDD livres | ||
+ | |||
+ | Obs.: Após 48k CPEs é necessário a utilização de outra máquina ou VM | ||
+ | Obs.2: Para modelos híbridos, é necessário uma verificação com nosso time de engenharia para uma melhor composição da(s) máquina(s) | ||
+ | ==== Requisito de rede ==== | ||
- | proxy_cache_bypass $http_upgrade; | + | IP real público. Será necessário para os aplicativos FlashApp acessarem o roteador de qualquer rede |
- | } | + | ==== Requisitos de Domínio ==== |
- | client_max_body_size 32M; | + | Criar um mapeamento de domínio para o IP escolhido. Exemplo: flashman.provedor.com.br |
- | } | + | |
- | </code> | + | ATENÇÂO: |
- | - O trecho de código acima pode ser configurado a partir do comando <code>nano /etc/nginx/sites-available/default</code> | + | Caso o provedor deseje criar um domínio com autorização da Autoridade de Certificação (CAA- Certificate Authority Authorization), será necessário autorizar a geração de certificado para a "LET's ENCRYPT", |
- | - Substitua a variável "server_name" pelo domínio completo de seu servidor | + | já que servidores FLashman utilizam certificados emitidos através da "LET's ENCRYPT". |
- | - Use o gerador de certificados gratuitos Certbot para gerar o certificado HTTPS para o Flashman. Siga os passos: <code> | + | |
- | sudo apt-get update | + | |
- | sudo apt-get install software-properties-common | + | ==== Requisitos de firewall ==== |
- | sudo add-apt-repository ppa:certbot/certbot | + | |
- | sudo apt-get update | + | * Liberação de ICMP reply (ping) |
- | sudo apt-get install python-certbot-nginx | + | * Liberação da porta 9001 para o ip 45.77.115.7 (TCP) : Utilizada pelo processo de migração |
+ | * Liberação da porta ssh para o ip 177.38.99.106 | ||
+ | * Liberação da porta 80 (TCP) : Para validação de certificados SSL via LetsEncrypt | ||
+ | * Liberação da porta 443 (TCP) : Para navegação da interface web e comunicação de gerência com os CPEs | ||
+ | * Liberação da porta 3478 (TCP) : Para uso de mecanismo de "furo" de NAT via servidor STUN | ||
+ | * Liberação das portas 7547, 57547 (TCP) : Para uso do protocolo TR-069 no envio e recepção de comandos para as CPEs | ||
+ | * Liberação da porta 7567 (TCP) : Para download de firmwares no procedimento de atualização remota via TR-069 | ||
+ | * Liberação da porta para comunicação MQTTS. A porta para MQTTS estará especificada no usuário de sua conta da Anlix | ||
+ | |||
+ | ==== Notas importantes ==== | ||
+ | |||
+ | * Não recomendamos o uso de sistemas 32 bits em geralserá possi | ||
+ | |||
+ | * O setup da máquina não pode ser um container, será necessário uma VM comum | ||
+ | |||
+ | ==== Procedimento de instalação ==== | ||
+ | |||
+ | Preencher o formulário (https://documentacao.anlix.io/doku.php?id=instalacao_on_premise_flashman) com as informações de acesso e ao servidor, em seguida abrir um ticket de atendimento ((21) 99835-2603) junto a equipe de suporte Anlix. | ||
+ | A equipe de suporte Anlix realizará toda a instalação e migração de dados que for necessária. | ||
+ | Informação dos IPs **" 54.232.148.43 e 177.38.99.106"** das máquinas de onde serão realizados os acessos ao servidor disponibilizado, para a liberação do provedor no seu controle de acesso. | ||
+ | |||
+ | |||
+ | Atenção: O usuário disponibilizado para a configuração dos serviços da Anlix precisa ter permissão de root. | ||
- | sudo certbot --nginx | ||
- | </code> | ||
- | - Siga os passos informados pelo comando certbot --nginx | ||
- | - Mais informações sobre o certbot em: https://certbot.eff.org/ | ||
- | - Insira a seguinte entrada no crontab do usuário root: <code> | ||
- | 0 0 01 * * certbot renew --nginx --cert-name meuflashmandeexemplo.dominio.com --deploy-hook "<<caminho completo>>/flashman/scripts/cert-deploy-hook.sh <<caminho completo>>/flashman/certs meuflashmandeexemplo.dominio.com <<usuário>>" | ||
- | </code> | ||
- | - Substitua o valor "meuflashmandeexemplo.dominio.com" pelo domínio completo de seu servidor cujo o certificado foi gerado | ||
- | - Substitua o <<caminho completo>> pelo caminho até o diretório raiz do Flashman. | ||
- | - Substitua o <<usuário>> pelo usuário do sistema que irá executar o servidor do Flashman (exemplo: localuser) | ||
- | - Abra o arquivo environment.config.json e adicione a variável FLM_CERT_MQTT_DIR com o caminho para o certificado certbot recém gerado. Exemplo: <code> | ||
- | { | ||
- | "apps": [{ | ||
- | "name": "flashman", | ||
- | "script": "bin/www", | ||
- | "log_date_format": "YYYY-MM-DD HH:mm Z", | ||
- | "autorestart": true, | ||
- | "env": { | ||
- | "production": true, | ||
- | "TZ": "America/Sao_Paulo", | ||
- | "FLM_IMG_RELEASE_DIR": "./public/firmwares/", | ||
- | "FLM_ALLOW_DEV_UPDATE_REST_DATA": false, | ||
- | "FLM_MONGODB_HOST": "localhost", | ||
- | "FLM_ADM_USER": "admin", | ||
- | "FLM_ADM_PASS": "flashman" | ||
- | "FLM_CERT_MQTT_DIR": "<<caminho completo>>/flashman/certs", | ||
- | }, | ||
- | "error_file": "/dev/stderr", | ||
- | "out_file": "/dev/stdout", | ||
- | "exec_mode": "cluster" | ||
- | }] | ||
- | } | ||
- | </code> | ||
- | - Substitua o <<caminho completo>> pelo caminho até o diretório raiz do Flashman. | ||
- | - No diretório principal do Flashman, inicie o serviço através do comando <code>pm2 start environment.config.js</code> | ||
- | - Deixe o serviço do Flashman auto renicializável através dos comandos executados no diretório principal do Flashman: <code> | ||
- | pm2 startup | ||
- | pm2 save | ||
- | </code> | ||
- | ===== Instalação utilizando container Docker ===== |