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.gzdo 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
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.samplee 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 |