🥳 21/12/2024 - FINALMENTE ESTÁ FUNCIONANDO A VERSÃO DE TREINAMENTO
Sem certificado https para permitir o uso de LoadBalancer e redirecionamento de DNS com proxy e seus respectivos certificados
cd aws
cp .env.example .env
docker compose up -d --build
É um sistema bastante utilizado por profissionais de saúde da Atenção Básica para registros de pacientes e dados de saúde. Esse repositório se propõe a criar uma estrutura docker com linux para viabilizar o deploy do sistema em qualquer ambiente que tenha docker e facilitar a instalação e atualização do sistema e-SUS PEC
Esse script irá baixar a versão mais recente do PEC e rodar em docker a versão de treinamento por padrão. Edite o arquivo .env
para configurar suas variáveis de ambiente e rode o script build.sh
cp .env.development .env
sh build.sh
Para instalar a versão de produção em vez da de teste use esse comando, não esqueça de configurar suas variáveis de ambiente em .env
cp .env.example .env
sh build.sh -p
Utilize sh build.sh --help
para mais opções, por exemplo, para instalar a versão de produção combanco de dados externo após configuração .env
sh build.sh -e
Acesse Live/Demo Usuário: 969.744.190-15 Senha: senha123
Dúvidas? Colaboração? Ideias? Entre em contato pelo WhatsApp
- Alinhando conhecimentos
- Preparando pacotes
- Instalação do PEC
- Versão de Treinamento
- Atualização/Migração de Versão PEC
- Outras informações relevantes
Ajude esse e outros projetos OpenSource para saúde: Patrocínio
Para poder rodar esse sistema é necessário ter conhecimentos básicos dos seguintes programas e ambientes:
- Linux: É o sistema opercional (OS) amplamente utilizado em servidores devido a sua segurança, leveza e versatilidade. Em servidores não temos uma identificação visual de pastas e arquivos, portanto toda a navegação e ações do usuário são por linhas de código
- Docker: É um programa que você deve pensar como um container com todos os arquivos dentro para rodar o sistema que você quer rodar ao final, ao colocar o container no seu servidor e rodar ele, deve então funcionar em qualquer ambiente da mesma forma. Isso dispensa o ter que configurar todo o ambiente para receber o programa, pois quem fez o container já fez isso para você.
Tenha o docker
e docker-compose
instalado na máquina
Em uma VPS Ubuntu ou Debian, vamos instalar o docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Para controle dos containers pode ser útil utilizar o Portainer, assim ficará mais fácil verificar os erros e entrar nas aplicações:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Para instalação foi criado um script que posse ser executado copiando o bloco abaixo, se você estiver migrando de versão leia o parágrafo abaixo
1. Baixe o pacote do programa PEC na versão que deseja instalar/atualizar. Você pode também baixar no site oficial do PEC APS
wget https://arquivos.esusab.ufsc.br/PEC/mtRazOmMxfBpkEMK/5.2.28/eSUS-AB-PEC-5.2.28-Linux64.jar
Gostaria de migrar de outro banco de dados? Acesse a seção de migração
sh build.sh -f eSUS-AB-PEC-5.2.28-Linux64.jar
Para instalar a versão de treinamento use o argumento -t
sh build.sh -f eSUS-AB-PEC-5.2.28-Linux64.jar -t
Agradecimentos à equipe NoHarm que investiu nesse projeto para facilitar a instalação dessa aplicação tão amplamente utilizada no SUS/Brasil.
O pacote java disponibilizado pelo Ministério da Saúde/Secretaria de Atenção Primária à Saúde. Laboratório Bridge/Universidade Federal de Santa Catarina. Página de Suporte
O pacote nos concede algumas opções além da de treinamento que vale à pena dar uma olhada, é utilizado no nosso script de criação da aplicação:
# java -jar {pacote} -help
Usage: <main class> [[-url=<url>] [-username=<username>]
[-password=<password>]] [[-restore=<dumpFilePath>]]
[[-backup]] [-console] [-continue] [-help] [-treinamento]
Parâmetro | Descrição |
---|---|
-console |
Inicializa o assistente em modo linha de comandos. Se omitido esse parâmetro, o assistente inicializa em modo interface gráfica. |
-treinamento |
Indica que a Nova Instalação será de Treinamento. Se omitido esse parâmetro, a Nova Instalação será de Produção. |
-help |
Mostra estas informações sobre a utilização dos parâmetros do assistente. |
-continue |
Modo não interativo. Continua com a execução das tarefas necessárias sem a necessidade de confirmação do usuário. |
-url=<url> |
URL de conexão para acesso ao Banco de Dados |
-username=<username> |
Nome de usuário para acesso ao Banco de Dados |
-password=<password> |
Senha para acesso ao Banco de Dados |
-restore=<dumpFilePath> |
Caminho do arquivo de backup do Banco de Dados do PEC |
-backup |
Cria um backup do Banco de Dados antes de atualizar. Se omitido esse parâmetro, não será realizado um backup. |
docker compose exec -it psql bash -c 'pg_dump --host localhost --port 5432 -U "postgres" --format custom --blobs --encoding UTF8 --no-privileges --no-tablespaces --no-unlogged-table-data --file "/home/$(date +"%Y_%m_%d__%H_%M_%S").backup" "esus"'
pg_restore -U "postgres" -d "esus" -1 "/home/seu_arquivo.backup"
psql -U postgres esus < backupfile.sql
4.2.6
para 4.5.5
.
- Crie um backup do banco de dados e retire da pasta
data
docker exec -it esus_psql bash -c 'pg_dump --host localhost --port 5432 -U "postgres" --format custom --blobs --encoding UTF8 --no-privileges --no-tablespaces --no-unlogged-table-data --file "/home/$(date +"%Y_%m_%d__%H_%M_%S").backup" "esus"'
sudo cp data/backups/nome_do_arquivo.backup .
Ou pode-se optar por fazer o backup pela própria ferramenta do PEC, use:
# substitua a versão pelo que estiver utilizando dentro do container pec
docker compose exec -it pec java jar esus-pec.jar -help
Para mais informações.
- Após isso, se seu banco de dados for externo, basta executar
sh update.sh docker-compose.local-db.yml
Substitua o termo docker-compose.local-db.yml
pelo termo docker-compose.external-db.yml
para executar o script com o banco de dados externo.
- BREAKING CHANGE: Desde a versão 5.3 o certificado SSL é autogerenciado e a versão Java utilizada é a 17 LTS. A última versão desse docker não funcionará para versões anteriores
- O Java 8 só funciona com OpenSSL 1.1, em caso de uso do OpenSSL mais recente 3.X, não irá funcionar as chaves PKCS12 para SSL, será necessário o uso das chaves *.jks nesses casos
- Testes realizados com versão
4.2.7
e4.2.8
não foram bem sucedidos - A versão 4.2.8 está com erro no formulário de cadastro, nas requisições ao banco de dados, pelo endpoint graphql, retorna "Não autorizado"
- Verificar sempre a memória caso queira fazer depois em servidor. Senão ele trará no console um
Killed
inesperado https://stackoverflow.com/questions/37071106/spring-boot-application-quits-unexpectedly-with-killed - Não instale a versão
5.0.8
, do de cabeça, não carrega alguns exames e atendimentos de forma aparentemente aleatória, corrigido após instalar versão5.0.14