# GNU Health/Instalação
## Requisitos

A versão mais recente e estável do GNU Health tem os seguintes requisitos:
* Sistema operacional: GNU Health é independente de sistema operacional, embora recomendamos o uso de um sistema operacional gratuito (como o GNU/Linux ou FreeBSD)
* Base de dados: PostgreSQL
* Python: >=2,7 <3,0
* Tryton: = 3.8
* BASH Shell
* Versão PIP para Python 2, verificar, através de:
Você deve ver a descrição python2.7, como em: pip x.x.x no diretório /usr/local/lib/python2.7/site-packages (Python 2.7) Se você ver python3.x em seguida, pare e obtenha o pip para python 2.

# Instalando GNU Health no GNU/Linux e FreeBSD
## Requisitos do sistema operacional

A tabela a seguir contém as instruções para configurar o seu sistema operacional para uma instalação padrão do GNU Health. Os sistemas operacionais e sua versão mostrados na lista foram testados utilizando as instruções para cada sistema operacional.
As instruções de instalação para os diferentes sistemas operacionais e distribuições têm sido feitos sobre instalação do zero. Quando for possível e, para simplificar, apenas o ambiente do servidor foi instalado, sem desktop. Sem firewall configurado (vamos cobrir isso na seção de segurança), e o servidor SSH foi instalado.
As instruções - descritas aqui - têm sido aplicadas e verificadas com os seguintes sistemas operacionais, como mostrado abaixo .
* Por favor, verifique se você estiver usando a versão do sistema operacional documentada na tabela a seguir
| Sistema operacional | Versão | Ligação |
| Arch Linux | 2015/06/01 | configuração no Arch Linux |
| Debian | 7.8 e 8.5 | configuração no Debian |
| CentOS | 7.1 | configuração no CentOS |
| FreeBSD | 10.01 | configuração no FreeBSD |
| openSUSE | Leap 42.1 | configuração no openSUSE |
| Red Hat | 7.1 | configuração no Red Hat |
| Ubuntu | 14.04 | configuração no Ubuntu |
| Trisquel | 7.0 | configuração no Trisquel |

## Configurando o Network Time Protocol (NTP)

A fim de executar corretamente GNU Health, você precisa ter certeza de que a hora, tanto no servidor (banco de dados e a instância central) e os clientes estão configurados corretamente e em sincronia. A melhor maneira de fazer isso é manter o seu relógio sincronizado com um NTP Server.
Este é um passo fundamental, não só para o bom funcionamento do GNU Health, mas também porque muitos documentos terão um registro de hora associado que pode ter valor jurídico.

## Criação do usuário do sistema operacional

Os passos seguintes irão criar o usuário do sistema operacional GNU Health. Por favor note que muitos sistemas operacionais lhe dão a opção de criar um usuário regular no momento da instalação. Se você já criou o usuário "gnuhealth" no sistema operacional, você pode pular esta seção, caso contrário, crie-o agora.
Execute o seguinte comando como root:
Nota: Se seu Sistema Operacional não incluir o comando adduser, você pode usar o comando useradd

## Verifique método de autenticação PostgreSQL

Nota: Você pode pular esta seção se você fez uma instalação padrão em FreeBSD ou Arch Linux
PostgreSQL utiliza diferentes métodos de autenticação (MD5, ident, trust, etc.). Dependendo do sistema operacional, o método de autenticação do servidor PostgreSQL irá variar. A instalação padrão do GNU Health usa a método de autenticação trust, então você precisa verificar a configuração do arquivo de autenticação postgreSQL.
Localize o arquivo pg_hba.conf e verifique se o método trust está definido. A localização deste arquivo de configuração varia entre os sistemas operacionais; em UNIX/Linux, o caminho completo do arquivo pode ser obtido com o seguinte comando, a ser executado como root:
Você pode precisar iniciar o servidor postgres pelo menos uma vez para que este arquivo possa ser criado durante a primeira inicialização. Normalmente, este arquivo está localizado em /etc/postgresql/9.x/main ou /var/lib/pgsql/data
O arquivo deverá estar configurado com o método de autenticação trust conforme é mostrado abaixo. Qualquer outra forma de autenticação (MD5, ident, peer, etc.) precisará de outra abordagem e não funcionará:
Autoriza conexões locais diretas por meio de sockets Unix "localhost"
Restringe os IP's por host, podendo ou não receber conexão remota. Nesse caso somente autorizado "localhost" protocolo IPv4
Restringe os IP's por host, podendo ou não receber conexão remota. Nesse caso somente autorizado "localhost" protocolo IPv6
Sempre edite os arquivos de configuração como usuário postgres, pois caso o fizer como root o postgres poderá ter problemas de leitura do arquivo alterado. Depois de quaisquer alterações no arquivo o servidor PostgreSQL precisa ser reiniciado.
Muitos erros de autenticação (por exemplo, erros de conexão com o banco de dados) surgem por causa de não ter configurado corretamente este arquivo. Claro que você poderá usar outros métodos de autenticação, como também poderá adaptar o arquivo de configuração tryton/GNU Health para cada um deles. Por uma questão de simplicidade, a documentação e os arquivos de exemplo neste livro foram baseados especificamente no método de confiança.
Certifique-se de reiniciar o servidor PostgreSQL:

### Criando credencial do usuário no banco de dados

O seguinte comando executa como usuário administrativo postgres a criação do usuário gnuhealth no banco de dados, dando-lhe permissão para criar as tabelas do sistema conforme necessidade:
Execute como usuário root:

## Baixando e Instalando o GNU Health

Faça os passos seguintes com seu novo usuário gnuhealth criado. NÃO use o root!

### Executando o Instalador do GNU Health

Torne-se usuário gnuhealth:
Faça o download do GNU Health em GNU.org
Esta seção se aplica à versão 3.0 do GNU Health.
Para a versão igual ou superior a 3.0, baixe a versão mais recente do script de instalação gnuhealth-setup e copie para dentro do diretório de instalação gnuhealth-3.x.x. Não execute fora do diretório que erros inesperados acontecerão e a instalação será abortada. Se o script estiver fora do diretório, ao concluir a instalação, este não consegue encontrar alguns arquivos que estão dentro do diretório.
Nota: você deve verificar a assinatura do arquivo. Infelizmente, o pacote mais recente não tem assinatura. Nesse caso você precisa baixar o arquivo de assinatura da versão mais recente manualmente a partir deste link.
Nota: Se você nunca tiver utilizado o GNUPG precisará chamar o comando pela primeira vez para gerar a base de dados de assinaturas. Se já tiver essa base, então será mostradas as assinaturas nela gravadas.
Primeiro obtenha a chave de assinatura se você não tiver feito isso:
A chave é emitida por Luis Falcon (meanmicio no GNU) <falcon@gnu.org> e sua impressão digital é 14C7 FD13 6274 9706 D602 FBE2 EADA 01E3 E44B 8011. Esta informação pode observada da seguinte forma:
Em seguida, verifique a assinatura:
Se o arquivo for validado corretamente, a saída deve ser algo como:
A parte importante é o Good signature from "Luis Falcon ....". A advertência significa que o arquivo e assinatura estão OK e validados corretamente. Se você não tiver confiança na chave, poderá ler mais sobre isso em O Manual GNU de Privacidade, Capítulo 3. Gerenciamento de Chaves.
Descompacte o arquivo:
Para a versão inferior a 3.0, utilize o arquivo que já está no diretório de instalação gnuhealth-[versão]:
Execute o programa de instalação gnuhealth-setup
Finalmente, habilite o ambiente BASH para o usuário gnuhealth.

### Arquivos de configuração do Tryton

Os arquivos de configuração do Tryton para esta instalação deverá estar em /home/gnuhealth/gnuhealth/tryton/server/config. Os arquivos são trytond.conf e gnuhealth_log.conf.

#### Ativar dispositivos de rede para o protocolo JSON-RPC

O servidor Tryton GNU Health escuta o localhost na porta 8000, não permitindo conexões diretas de outras estações de trabalho.
No arquivo de configuração trytond.conf você pode editar o parâmetro listen na seção [JSON-RPC], ativando o dispositivo de rede para que estações de trabalho possam se conectar. O asterisco ("*") significa que o servidor Tryton irá escutar qualquer IP na porta 8000, conforme bloco abaixo:

#### Configurando um Diretório local para anexos

Por padrão, o Tryton usa diretório de todo o sistema para armazenar os anexos. No GNU Health é aconselhável manter os anexos no espaço de usuário gnuhealth.
Edite o arquivo de configuração trytond.conf do servidor e entre com o diretório de anexo abaixo da seção [database] como abaixo:

#### Configurando o arquivo de log (opcional)

Desde o GNU Health 2.8, o formato dos logs do servidor e rastreamento de eventos é baseado em um arquivo de configuração de log.
A versão padrão que é enviada chama-se gnuhealth_log.conf
Parece algo como isto:
Neste exemplo (e no arquivo padrão), o arquivo de log é gravado no diretório de logs padrão. Você pode mudá-lo para fazer adaptação à sua instalação específica.
A fim de usar o log, você precisa fornecer a opção --logconf juntamente com o caminho para o arquivo de configuração de log gnuhealth_log.conf como argumento ao chamar o servidor Tryton, conforme mostrado abaixo:
Para mais informações, consulte os seguintes recursos:
* Tutorial de recurso de logging para o Python: https://docs.python.org/2/howto/logging.html#logging-basic-tutorial
* Documentação de logging do servidor Tryton: http://trytond.readthedocs.org/en/latest/topics/logs.html

#### Iniciando o Servidor Tryton

Mudar para o seu novo sistema instalado (usar o aliás cdexe)
e inicializar o servidor.
Você deve ver algo como INFO:server:starting JSON-RPC protocol on *:8000. Preste atenção na última linha.
Nota: o argumento --verbose é opcional. Ele é usado neste caso para que você possa ver os principais parâmetros de configuração.
Usar o argumento --logconf para gravar o arquivo de log.
Para verificar se o serviço foi iniciado use o comando lsof que é utilizado para mostrar os arquivos que estão abertos no sistema. Vamos verificar se o servidor Tryton está em execução e escutando na porta 8000.

## Instalação do Cliente Tryton

Não instale o cliente como usuário gnuhealth, que deve ser responsável ​​apenas por executar o servidor.

### Método Padrão
#### FreeBSD, GNU/Linux e outros *NIX

Faça o download e extraia o cliente Tryton a partir do site oficial aqui
Instalar dependências Python:
Descompacte o arquivo tar cliente:
Excute o cliente:

#### Microsoft Windows

Baixar o cliente Tryton aqui.
Siga as instruções.

### Método Alternativo (PIP)

Nota: Existem alguns problemas com a instalação local do cliente Tryton e PIP. Recomendamos a utilização do método padrão. A seguir estão as instruções sobre como instalar todo o sistema cliente (sem a opção --user).
Se você tem um cliente Tryton mais antigo (instalado com PIP), você pode atualizá-lo para a versão mais recente com o seguinte comando:
O seguinte comando irá inicializar seu cliente tryton

### Método Alternativo (Pacotes do Sistema)

Em vez da fonte, como descrito acima, você pode instalar o cliente Tryton a partir de pacotes pré-compilados. O Debian e openSUSE oferecem pacotes que podem ser instalados com o seu gerenciador de pacotes do sistema.

## Configurando a Tabela de Posição do Cliente Tryton para GNU Health

Antes de iniciar a instalação do banco de dados, é necessário definir a posição de guias para estar no "Top". Isto produzirá uma navegação otimizada.
A seguinte ação no cliente Tryton vai defini-lo: Options → Form → Tabs Position → Top.
Por fim, salve as preferências do cliente Options → Save Options.

## Criando o banco de dados GNU Health

O primeiro passo é criar um banco de dados que irá armazenar todas as informações para o seu sistema GNU Health.
Todas as informações GNU Health são armazenadas em um banco de dados PostgreSQL e processados ​​pelo kernel Tryton. Nenhuma ação é necessária no nível do sistema operacional para criar ou gerenciar o banco de dados, jé que tudo pode ser feito através do frontend Tryton/GNU Health.
Para criar um banco de dados, abra o seu cliente Tryton. Uma janela de login pop-up será apresentada como a seguir:
Clique em Manage profiles, em seguida, clique em Add. Dê um nome para sua nova conexão no lado esquerdo e preencha os campos no lado direito. Se você estiver fazendo a instalação na mesma máquina, escolha localhost como o nome da máquina. Exemplo:
Clique no botão Create e o seguinte pop-up será exibido:
A senha padrão do servidor Tryton admin (você pode alterá-la mais tarde). Dê um nome ao seu banco de dados e introduza uma nova senha de administrador duas vezes.
Nota: esta será a senha do super-usuário para o novo banco de dados, então use uma senha forte quando se tratar de servidores de produção.
Verifique no log do servidor (ou console) se ocorrer algum erro. Se isso acontecer, tente resolver o problema (está faltando algum módulo Python ou algumas dependências não foram satisfeitas), faça um drop no banco de dados recém-criado e repita o procedimento.
Após o banco de dados ser criado, clique em OK. Agora você está pronto para entrar!

## Autenticação no aplicativo

Agora que você está de volta na tela de login irá notar que o perfil selecionado é o que você acabou de criar. Preencha o formulário de login:
* Nome de usuário: o que você usou anteriormente normalmente admin
* Senha: a que você digitou duas vezes na seção anterior

## Instalação dos módulos padrão

Deste ponto em diante, você vai usar o cliente para quase todos os processos. Comece com a instalação da funcionalidade básica:
* Depois de criar o banco de dados, o sistema irá pedir-lhe para criar alguns novos usuários. Você pode pular este passo agora.
* É apresentada uma lista de módulos que irão fornecer a funcionalidade que você deseja. Se você não ver a janela Modules, navegue até ela no lado esquerdo: Administration → Modules → Modules.
* Selecione o módulo health_profile e clique em Marcar para instalação:
* Clique no ícone Action (botão quadrado azul) e selecione Perform Pending Installation/Upgrade:
* Tryton irá selecionar automaticamente todos os módulos dependentes necessárias para a instalação:
* Clique em Start Upgrade. Este processo vai demorar um pouco dependendo do computador onde GNU Health está sendo instalado. Uma vez feito isso, a seguinte mensagem aparece:

## Criando uma Empresa

A próxima coisa que você precisa fazer é criar a empresa inicial, que será o seu centro de saúde. Será apresentado um assistente para criá-la.
Pressione F3 para criar a nova empresa.
Nota: No formulário do partido certifique-se de definir o atributo instituição. Você vai conectar esta empresa a sua instituição de saúde principal mais tarde. Por favor, consulte a captura de tela fornecida nesta seção para obter detalhes.

## Desativando usuários de demonstração em ambientes de produção

Por razões de segurança, desative usuários demo em ambientes de produção.
O GNU Health vem com um conjunto de usuários pré-definidos para fins de demonstração. Todos eles têm o sufixo "demo_" (demo_doctor, demo_front_desk, demo_nurse, etc.).
Por favor, desative-os em ambientes de produção.
Para desativar os usuários siga o seguinte caminho: Administration -> Users -> Users
Em filtros, você pode escolher nome de login: demo_
Desmarque a opção "active" de cada um deles. Os usuários demonstrativos serão desativados no seu ambiente.
Olhe para a imagem fornecida ao para mais detalhes.
Parabéns! Você concluiu a instalação inicial do GNU Health. No próximo capítulo, discutiremos como adicionar funcionalidade através da instalação de módulos adicionais.