# Software do servidor

## Sistemas operacionais

Os serviços de backend do Navixy são desenvolvidos na linguagem de programação Java, enquanto o frontend é construído com Javascript puro. Como resultado, o software é compatível entre plataformas, o que significa que pode ser executado em diversos sistemas operacionais. No entanto, para desempenho e compatibilidade ideais, recomendamos o uso dos seguintes sistemas operacionais:

* Linux: Ubuntu 20 ou mais recente, 64 bits
* Windows Server 2016 ou mais recente, 64 bits

Esses sistemas operacionais foram amplamente testados e otimizados para uso com o Navixy, garantindo uma experiência do usuário fluida e problemas técnicos mínimos.

## Requisitos do ambiente

Além disso, para instalar e executar a edição On-Premise do Navixy, você precisará do seguinte ambiente. Tudo isso é fornecido sob licenças GNU ou similares, e não há necessidade de gastar dinheiro com isso.

* ﻿[**Java SE Development Kit (JDK) 21**](https://www.oracle.com/java/technologies/downloads/#java21) pela Oracle ou **openjdk-21-jre-headless** dos repositórios. Todas as outras distribuições baseadas em JDK 21 também são compatíveis.
* [**MySQL Server 8.0**](https://dev.mysql.com/downloads/mysql/8.0.html)**.** A plataforma não oferece suporte a outros SGBDs, incluindo PostgreSQL e MariaDB.
* [**NGINX**](https://nginx.org/en/download.html) de qualquer versão atual - **1.2** ou mais recente (se desejar usar visualizações de imagens em formulários de tarefa, o nginx deve ter [o módulo image filter](http://nginx.org/en/docs/http/ngx_http_image_filter_module.html) )

{% hint style="info" %}
Scripts automáticos de instalação da plataforma para Linux instalam o software acima caso não seja encontrado no servidor.
{% endhint %}

* Servidores (exceto o servidor MySQL) devem ter acesso à Internet e possuir endereço IP estático.
* O processo de instalação requer acesso root (sistemas Unix) ou usuário administrador (Windows). Durante a instalação dos mecanismos de banco de dados, você precisa ter acesso root do MySQL.
* Para serviços HTTP recomendamos usar nomes de domínio, por exemplo: para API – api.domain.tld, para interface do usuário – my.domain.tld e panel.domain.tld para o painel Admin. TLD significa qualquer domínio de nível superior (com, net, edu, etc).
* Conexão de internet de alta velocidade e confiável de pelo menos 10 Mbit/s
* Sistema de monitoramento de sua preferência. Não é obrigatório, mas recomendado
* Sistema de arquivos recomendado: ext4
* Para enviar e-mails a partir do localhost você deve ter um MTA (Mail Transfer Agent) configurado, por exemplo, Postfix
  * Também é possível enviar e-mails através de outros serviços, por exemplo, gmail, mas nesse caso a substituição do campo "from" do e-mail não funcionará
