GNU Health/Instalação
Requisitos
[editar | editar código-fonte]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:
pip --version
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
[editar | editar código-fonte]Requisitos do sistema operacional
[editar | editar código-fonte]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 | Notas |
---|---|---|---|
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)
[editar | editar código-fonte]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
[editar | editar código-fonte]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:
adduser gnuhealth
Nota: Se seu Sistema Operacional não incluir o comando adduser, você pode usar o comando useradd
useradd -m gnuhealth
Verifique método de autenticação PostgreSQL
[editar | editar código-fonte]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:
su - postgres -c "psql -t -P format=unaligned -c 'show hba_file'"
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"
local all all trust
Restringe os IP's por host, podendo ou não receber conexão remota. Nesse caso somente autorizado "localhost" protocolo IPv4
host all all 127.0.0.1/32 trust
Restringe os IP's por host, podendo ou não receber conexão remota. Nesse caso somente autorizado "localhost" protocolo IPv6
host all all ::1/128 trust
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:
sudo service postgresql restart
Criando credencial do usuário no banco de dados
[editar | editar código-fonte]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:
su - postgres -c "createuser --createdb --no-createrole --no-superuser gnuhealth"
Baixando e Instalando o GNU Health
[editar | editar código-fonte]
Executando o Instalador do GNU Health
[editar | editar código-fonte]
Torne-se usuário gnuhealth:
su - gnuhealth
cd $HOME
Faça o download do GNU Health em GNU.org
wget https://ftp.gnu.org/gnu/health/gnuhealth-latest.tar.gz
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.
wget https://ftp.gnu.org/gnu/health/gnuhealth-setup-latest.tar.gz
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.
$ wget https://ftp.gnu.org/gnu/health/gnuhealth-3.0.3.tar.gz.sig
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.
$ gpg --list-key
Primeiro obtenha a chave de assinatura se você não tiver feito isso:
$ gpg --recv-key 0xEADA01E3E44B8011
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:
$ gpg --with-fingerprint --list-keys 0xEADA01E3E44B8011
Em seguida, verifique a assinatura:
$ gpg --verify gnuhealth-3.0.3.tar.gz.sig gnuhealth-latest.tar.gz
Se o arquivo for validado corretamente, a saída deve ser algo como:
gpg: Signature made Sun Jan 31 09:00:14 2016 ART gpg: using DSA key 0xEADA01E3E44B8011 gpg: Good signature from "Luis Falcon (meanmicio at GNU) <falcon@gnu.org>" [unknown] gpg: aka "Luis Falcon <lfalcon@ibersis.com>" [unknown] gpg: aka "Luis Falcon <lfalcon@thymbra.com>" [unknown] gpg: aka "Luis Falcon <luis.falcon@thymbra.com>" [unknown] gpg: aka "Luis Falcon (meanmicio) <lfalcon@gnusolidario.org>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 14C7 FD13 6274 9706 D602 FBE2 EADA 01E3 E44B 8011
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:
$ tar xzf gnuhealth-latest.tar.gz
$ cd gnuhealth-[versão]
Execute o programa de instalação gnuhealth-setup
$ ./gnuhealth-setup install
Finalmente, habilite o ambiente BASH para o usuário gnuhealth.
$ source "$HOME"/.gnuhealthrc
Arquivos de configuração do Tryton
[editar | editar código-fonte]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
[editar | editar código-fonte]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:
[JSON-RPC] listen = *:8000
Configurando um Diretório local para anexos
[editar | editar código-fonte]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:
[database] path = /home/gnuhealth/attach
Configurando o arquivo de log (opcional)
[editar | editar código-fonte]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:
[formatters]
keys: simple
[handlers]
keys: rotate, console
[loggers]
keys: root
[formatter_simple]
format: [%(asctime)s] %(levelname)s:%(name)s:%(message)s
datefmt: %a %b %d %H:%M:%S %Y
[handler_rotate]
class: handlers.TimedRotatingFileHandler
args: ('/home/gnuhealth/gnuhealth/logs/gnuhealth.log', 'D', 1, 30)
formatter: simple
[handler_console]
class: StreamHandler
formatter: simple
args: (sys.stdout,)
[logger_root]
level: WARNING
handlers: rotate, console
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:
$ ./trytond --logconf /home/gnuhealth/gnuhealth/tryton/server/config/gnuhealth_log.conf --<argumento2> --<argumento3> ... &
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
[editar | editar código-fonte]Mudar para o seu novo sistema instalado (usar o aliás cdexe)
$ cdexe
e inicializar o servidor.
$ ./trytond --verbose &
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.
[Wed 14 de janeiro 11:01:20 2015] INFO: servidor: usando /home/gnuhealth/gnuhealth/tryton/server/config/log.conf como arquivo de configuração de log [Wed 14 de janeiro 11:01:20 2015] INFO: trytond.server: usando /home/gnuhealth/gnuhealth/tryton/server/config/trytond.conf como arquivo de configuração [Wed 14 de janeiro 11:01:20 2015] INFO: trytond.server: Inicialização distribuída serviços de objetos [Wed 14 de janeiro 11:01:20 2015] INFO: trytond.server: a partir protocolo JSON-RPC * em: 8000
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.
$ lsof -i :8000
Instalação do Cliente Tryton
[editar | editar código-fonte]
Método Padrão
[editar | editar código-fonte]FreeBSD, GNU/Linux e outros *NIX
[editar | editar código-fonte]Faça o download e extraia o cliente Tryton a partir do site oficial aqui
Instalar dependências Python:
pip2 install --user python-dateutil
Descompacte o arquivo tar cliente:
tar -xzvf tryton-3.8.8.tar.gz
Excute o cliente:
cd tryton-3.8.8/bin
./tryton
Microsoft Windows
[editar | editar código-fonte]Baixar o cliente Tryton aqui.
Siga as instruções.
Método Alternativo (PIP)
[editar | editar código-fonte]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).
pip install "tryton>=3.8,<3.9"
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:
pip install --upgrade tryton
O seguinte comando irá inicializar seu cliente tryton
tryton
Método Alternativo (Pacotes do Sistema)
[editar | editar código-fonte]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
[editar | editar código-fonte]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
[editar | editar código-fonte]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
[editar | editar código-fonte]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
[editar | editar código-fonte]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
[editar | editar código-fonte]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
[editar | editar código-fonte]
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.