Ir para o conteúdo

Instalação local

Existem três formas de rodar essa aplicação localmente:

  • ou com a imagem Docker
  • ou gerando o binário a partir do código fonte
  • ou com Docker Compose — apenas para desenvolvimento (não recomendado para o banco de dados completo)

As duas últimas alternativas necessitam do código fonte. Você pode usar o Git para baixar o código do projeto:

$ git clone https://github.com/cuducos/minha-receita.git

Requisitos e instalação

É necessário cerca de 165Gb disponíveis de espaço em disco para armazenar os dados. Caso o banco de dados esteja em uma máquina separada, a divisão é mais ou menos 140Gb para o banco de dados, e 20Gb para a máquina que vai fazer o download dos dados e transformá-los para carregar no banco de dados.

Banco de dados

  • O banco de dados gerado utiliza cerca de 140Gb
  • Rodar o banco de dados localmente com Docker só é recomendado para desenvolvimento (não recomendado para o banco de dados completo)

Download e transformação dos dados

  • Os arquivos da Receita federal tem menos de 10Gb
  • O processo de importação utiliza uma estrutura temporária de cerca de 15Gb

Imagem Docker

Baixar a imagem com:

$ docker pull ghcr.io/cuducos/minha-receita:main

A partir do código fonte

  • Go versão 1.23

Depois de clonar o repositório, baixe as dependências e compile a aplicação para um diretório incluído no PATH, por exemplo:

$ go get
$ go build -o /usr/local/bin/minha-receita main.go

Docker Compose

Gere as imagens dos containers com:

$ docker compose build

Execução e configurações

Várias configurações podem ser passadas para a CLI, e elas estão documentadas no --help de cada comando da aplicação.

Exemplos

Imagem Docker

$ docker run --rm ghcr.io/cuducos/minha-receita:main --help
$ docker run --rm ghcr.io/cuducos/minha-receita:main api --help

A partir do código fonte

$ minha-receita --help
$ minha-receita api --help

Docker Compose

$ docker compose run --rm minha-receita --help
$ docker compose run --rm minha-receita api --help

Variáveis de ambiente

Para facilitar a manutenção, algumas variáveis de ambiente podem ser utilizadas, mas todas são opcionais:

Variável Descrição
DATABASE_URL URI de acesso ao banco de dados
PORT Porta na qual a API web ficará disponível
NEW_RELIC_LICENSE_KEY Licença no New Relic para monitoramento
TEST_POSTGRES_URL URI de acesso ao banco de dados PostgreSQL para ser utilizado nos testes
TEST_MONGODB_URL URI de acesso ao banco de dados MongoDB para ser utilizado nos testes