Universalizando o acesso a dados de qualidade.
Repositório do website da Base dos Dados, servido em três domÃnios:
| DomÃnio | Idioma padrão |
|---|---|
| basedosdados.org | pt |
| data-basis.org | en |
| basedelosdatos.org | es |
É uma aplicação Next.js 12 (pages router) que consome a API GraphQL do backend. Mais detalhes de arquitetura, deploy e fluxo de trabalho estão na wiki.
- Node.js 20.18.1 (versão em
next/.nvmrce noDockerfile; com nvm, rodenvm usedentro denext/) - npm ou Docker Compose
Copie o exemplo para a raiz do projeto e ajuste os valores:
cp .env.example .env| Variável | Obrigatória | Descrição |
|---|---|---|
NODE_ENV |
sim | development localmente |
NEXT_PUBLIC_API_URL |
sim | URL do backend, sem /api/v1/graphql (ex.: http://localhost:8080 ou https://staging.backend.basedosdados.org) |
NEXT_PUBLIC_SITE_NAME |
sim | Nome do site |
NEXT_PUBLIC_BASE_URL_FRONTEND |
sim | URL onde o front-end está rodando |
NEXT_PORT |
Docker | Porta do host para o serviço basedosdados.org no Docker Compose |
NEXT_PUBLIC_DOMAIN |
não | DomÃnio servido pelo build. Sem ela, o site usa o hostname do navegador (localhost), e conteúdos exclusivos de basedosdados.org ficam ocultos |
NEXT_PUBLIC_KEY_STRIPE |
pagamentos | Chave publicável do Stripe (use a de teste) |
CHATBOT_URL |
chatbot | URL da API do chatbot |
BACKEND_AUTH_EMAIL / BACKEND_AUTH_PASSWORD |
não | Usuário de serviço usado por /api/team/* e /api/user/getIdUser |
URL_DOWNLOAD_OPEN / URL_DOWNLOAD_CLOSED |
download | Buckets (gs://...) usados por /api/tables/downloadTable |
CRYPRESS_AUTH_EMAIL / CRYPRESS_AUTH_PASSWORD |
testes | Credenciais usadas pelos testes Cypress |
Note
Variáveis NEXT_PUBLIC_* são embutidas no bundle durante o build. Ao alterá-las, reinicie o npm run dev ou reconstrua a imagem Docker.
Escolha um dos métodos abaixo.
Na raiz do projeto, carregue as variáveis e instale as dependências:
source .env
cd next
npm ciInicie o servidor de desenvolvimento:
npm run devO site fica em http://localhost:3000. Como o domÃnio é localhost, o idioma padrão é pt; acesse /en e /es para os outros idiomas.
Com o .env configurado na raiz:
docker compose upSão criados três serviços, um por domÃnio, todos a partir da mesma imagem com NEXT_PUBLIC_DOMAIN diferente:
| Serviço | DomÃnio | Porta no host |
|---|---|---|
next-basedosdados |
basedosdados.org |
${NEXT_PORT} |
next-databasis |
data-basis.org |
3001 |
next-basedelosdatos |
basedelosdatos.org |
3002 |
Para subir só um deles: docker compose up next-basedosdados.
Os testes end-to-end usam Cypress. Com o servidor rodando, dentro de next/:
npm run cypress # interface gráfica
npm run cypress:run # headless (Chrome)Leia nosso guia de contribuição e o fluxo de trabalho com Git Flow.