Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
instalacao_on_premise_flashman [12/11/2018 19:36]
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. Como exemplo eis o comando: <​code>​ +
-mkdir ./​flashman +
-unzip flashman.zip -d ./​flashman/</​code>​ +
-  - 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 ​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 (CAACertificate Authority Authorization),​ será necessário autorizar a geração ​de certificado para "​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".  
-    - Recarregue o serviço Nginx através do comando: <​code>​sudo systemctl reload nginx</​code>​ +          
-  ​- Use o gerador ​de certificados gratuitos Certbot ​para gerar certificado HTTPS para o FlashmanSiga os passos<​code>​ + 
-sudo apt-get update +==== Requisitos ​de firewall ==== 
-sudo apt-get install software-properties-common + 
-sudo add-apt-repository ppa:certbot/certbot +  ​* Liberação ​de ICMP reply (ping) 
-sudo apt-get update +  * Liberação da porta 9001 para o ip 45.77.115.7 (TCP) : Utilizada pelo processo de migração 
-sudo apt-get install python-certbot-nginx+  * 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>​ 
-    - A edição do crontab pode ser feita através do comando: <​code>​sudo crontab -e</​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.json</​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 =====