This commit is contained in:
gustavooth
2026-07-28 20:23:41 -03:00
parent 9de08ceef7
commit 8d4cf22366
44 changed files with 5157 additions and 1124 deletions
+22 -13
View File
@@ -1,7 +1,7 @@
# Leads Extractor
Extrator assíncrono de canais de podcast, entrevistados e contatos públicos. O
backend usa Rust, Actix, Tokio, Chromiumoxide, PostgreSQL e OpenAI; o frontend
backend usa Rust, Actix, Tokio, Chromiumoxide, PostgreSQL e OpenRouter; o frontend
usa SvelteKit, TypeScript e Tailwind CSS.
## Arquitetura
@@ -46,11 +46,10 @@ usa SvelteKit, TypeScript e Tailwind CSS.
2. Prepare o backend:
```bash
cp backend/.env.example backend/.env
```
Crie `backend/.env` com as variáveis descritas na seção
[Variáveis de ambiente](#variáveis-de-ambiente) abaixo.
Edite apenas a cópia local `backend/.env`. Além da OpenAI e da DataImpulse,
Edite apenas a cópia local `backend/.env`. Além do OpenRouter e da DataImpulse,
defina um usuário de acesso e uma senha exclusiva com pelo menos 12
caracteres:
@@ -77,7 +76,12 @@ usa SvelteKit, TypeScript e Tailwind CSS.
```bash
cd frontend
npm ci
cp .env.example .env
```
Crie `frontend/.env` com as variáveis descritas na seção
[Variáveis de ambiente](#variáveis-de-ambiente) abaixo, então:
```bash
npm run dev
```
@@ -120,7 +124,7 @@ remove o banco e causa perda de dados; use apenas quando isso for intencional.
O Compose fornecido é destinado ao banco local. Em publicação, execute backend
e frontend com o gerenciador de processos ou orquestrador escolhido e mantenha
senhas, chave da OpenAI e credenciais da DataImpulse em um gerenciador de
senhas, chave da OpenRouter e credenciais da DataImpulse em um gerenciador de
segredos. Defina uma senha PostgreSQL forte, `FRONTEND_ORIGIN` com a origem
HTTPS exata e `AUTH_COOKIE_SECURE=true`. Não publique a API sem TLS.
@@ -164,12 +168,17 @@ estar percent-encoded nessa URL.
### Backend
O arquivo de referência é `backend/.env.example`.
Referência completa das variáveis: `backend/src/config.rs` e o `.env` na raiz
(usado pelo Compose).
- `OPENAI_API_KEY`: obrigatória para resumos, categorização e extração por IA;
o servidor pode iniciar sem ela, mas esses fluxos falham de forma explícita.
- `OPENAI_MODEL`, `OPENAI_BASE_URL`, timeouts e retries: configuração do
provedor de IA.
- `OPENROUTER_API_KEY`: obrigatória para resumos, categorização e extração por
IA; o servidor pode iniciar sem ela, mas esses fluxos falham de forma
explícita.
- `OPENROUTER_PRIMARY_MODEL` / `OPENROUTER_FALLBACK_MODEL`, `OPENROUTER_BASE_URL`,
timeouts e retries: configuração do provedor de IA (OpenRouter). Se o
modelo principal estiver indisponível ou falhar, o próprio OpenRouter tenta
automaticamente o modelo de fallback na mesma requisição; deixe
`OPENROUTER_FALLBACK_MODEL` vazio para desativar o fallback.
- `AUTH_USERNAME`: usuário obrigatório para acessar a aplicação; não há valor
padrão seguro.
- `AUTH_PASSWORD`: senha obrigatória com pelo menos 12 caracteres.
@@ -207,7 +216,7 @@ contexto de build, mas isso não substitui um gerenciador de segredos.
### Frontend
O arquivo de referência é `frontend/.env.example`.
Referência completa das variáveis: `.env` na raiz (usado pelo Compose).
- `VITE_API_URL`: URL da API; localmente, `http://localhost:8080`. Deve usar o
mesmo `SERVER_PORT` configurado no backend.