Ir para o conteúdo

Instalação local

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

  • ou com a imagem de container
  • ou gerando o binário a partir do código fonte
  • ou com o compose.yml — 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://codeberg.org/cuducos/minha-receita.git

Requisitos e instalação

É necessário cerca de 180 GB disponíveis de espaço em disco para armazenar os dados. Como cada etapa pode ocorrer em um servidor separado, nem todo o espaço precisa estar disponível na mesma máquina.

ETL

  • 8 GB para os downloads
  • 15 GB de espaço temporário para o tratamento dos dados
  • 7 GB para gerar o arquivo graph.tar.gz do grafo

Banco de dados

Postgres

  • 140 GB para as tabelas
  • 10 GB para os índices no banco de dados

Badger

  • 140 GB para tabela mais índices

A partir do código fonte

  • Go versão 1.26
  • Variável de ambiente GOEXPERIMENT=jsonv2

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

Imagem de container

  • Podman, Docker ou qualquer runtime de container compatível

Baixar a imagem com:

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

Ou, baixando o código fonte, crie uma localmente:

$ docker build -t minha-receita .

Compose

  • Podman, Docker ou qualquer runtime de container compatível com plugin compose
  • Arquivo .env (copie o .env.sample e ajuste caso necessário)

Gere a imagem 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 de container

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

A partir do código fonte

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

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.

Dica

Para servir a API web principal, use a variável de ambiente DATABASE_URL em vez de GRAPH_DB_URL. Para servir a API de grafos, use a variável de ambiente GRAPH_DB_URL em vez de DATABASE_URL. Definir ambas ou nenhuma resulta em erro.

Variável Descrição
DATABASE_URL URI de acesso ao banco de dados
GRAPH_DB_URL URL pública para download do banco de dados do grafo (graph.tar.gz)
PORT Porta na qual a API web ficará disponível
CACHE_SIZE Tamanho máximo do cache em MB
BLOOM_FILTER_SIZE Tamanho máximo do bloom filter em MB
GRAPH_PATH Localização do banco de dados do grafo
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