Sistema de Pagamentos integrado ao PagTesouro.
O sistema é dividido em dois "serviços", um para o backend e outro para o frontend.
O backend é desenvolvido em NodeJS com Express e banco de dados MongoDB através do Mongoose. Confira abaixo os comandos disponíveis.
# instalação de dependências
$ npm install
# roda o linter para verificar inconsistências no código
$ npm run lint
# corrige automaticamente as inconsistências encontradas, quando possível
$ npm run lint:fix
# roda o código e inicia o servidor de desenvolvimento (com monitoramento de mudanças)
$ npm run dev
# roda o código e inicia o servidor de produção
$ npm run startO frontend é desenvolvido com VueJS 3 + Nuxt 4, usando Vuetify como biblioteca UI. Confira abaixo os comandos disponíveis.
# instalação de dependências
$ npm install
# roda o linter para verificar inconsistências no código
$ npm run lint
# corrige automaticamente as inconsistências encontradas, quando possível
$ npm run lint:fix
# remove arquivos de compilação e caches
$ npm run clean
# compila (com hot reload) e inicia o servidor de desenvolvimento
$ npm run dev
# compila para produção
$ npm run build
# inicia um servidor para conferir a aplicação após o build de produção
$ npm run previewPara mais informações confira a documentação do Nuxt.
Para criar um usuário super administrador, principalmente pela primeira vez, é necessário rodar um script no backend conforme abaixo:
$ npm run superadmin email@example.comAtenção: O comando acima deve ser rodado no console do backend.
O deploy é feito com Docker Compose. O repositório já traz Dockerfiles, healthchecks e exemplos de ambiente, mas cada instalação deve ajustar as variáveis conforme o domínio, o banco e o provedor de autenticação da instituição.
backend/.env: variáveis de execução do backend, incluindo banco, sessão, proxy e URL pública da aplicação.frontend/.env: variáveis usadas no frontend em desenvolvimento e build de produção./.env: variáveis usadas pelodocker composepara interpolação.
APP_URL: URL pública da aplicação, usada para CORS, nas URLs de retorno e notificação do PagTesouro.API_BASE: URL que o frontend usa para alcançar o backend. Em Compose, normalmente aponta para o serviço internohttp://backend:3030.TRUST_PROXY: use1ou um valor equivalente quando houver reverse proxy ou ingress na frente do backend.PAGTESOURO_URL: ambiente do PagTesouro usado pela instituição.GOOGLE_CLIENT_IDeGOOGLE_ALLOWED_HOSTED_DOMAINS: necessários quando a autenticação Google estiver habilitada.
# inicia a stack (todos os containers necessários) construindo as imagens antes
docker compose up -d --build- Instalação simples em uma única rede: use o backend e o frontend pela rede interna do Compose e exponha apenas o frontend.
- Instalação atrás de proxy reverso: mantenha
TRUST_PROXY=1, aponteAPP_URLpara o domínio público e configure o proxy para encaminharHTTP/HTTPScorretamente. - Instalação com domínios diferentes por instituição: mantenha
API_BASEapontando para o backend alcançável pelo frontend e ajusteGOOGLE_ALLOWED_HOSTED_DOMAINSePAGTESOURO_URLconforme o ambiente.
- Copie os arquivos de exemplo para os arquivos reais de ambiente.
- Preencha as URLs públicas da instituição e os segredos do banco/sessão.
- Revise o valor de
TRUST_PROXYse houver proxy, load balancer ou ingress. - Rode
docker compose up -d --builde valide os healthchecks.
Toda contribuição é bem-vinda. Por favor, entre em contato em caso de dúvidas.
As contribuições no código devem ser feitas através de um PR.
Esse código é distribuído sob a licença GNU GPL 3.0.
A documentação, as imagens e demais mídias são distribuídas sob a licença Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.