core/README.md
2025-12-11 18:34:38 -03:00

70 lines
2.8 KiB
Markdown

# Core Platform Monorepo
Ambiente unificado com três camadas principais:
- **Appwrite** para autenticação, base de dados e funções (sync-github e check-cloudflare-status).
- **Landing (Fresh + Deno)** para a página pública em `landing/`.
- **Dashboard (React + Vite)** para o painel operacional em `dashboard/`.
## Pré-requisitos
- Node.js 18+ e npm
- Deno 1.39+ (para o app Fresh)
- Docker e Docker Compose (para Appwrite local) ou um projeto Appwrite Cloud
- Variáveis de ambiente configuradas a partir de [.env.example](.env.example)
## Variáveis de ambiente
- **Backend/Appwrite:** use `APPWRITE_ENDPOINT`, `APPWRITE_PROJECT_ID`, `APPWRITE_API_KEY`, `APPWRITE_DATABASE_ID` e credenciais de funções conforme necessário.
- **Dashboard (Vite):** use `VITE_APPWRITE_ENDPOINT`, `VITE_APPWRITE_PROJECT_ID` e `VITE_APPWRITE_DATABASE_ID`. O prefixo `VITE_` garante a leitura pelo Vite em tempo de build.
- **Landing (Deno Fresh):** o arquivo `landing/main.ts` carrega automaticamente variáveis do `.env` via `$std/dotenv/load.ts`, então os mesmos valores de Appwrite podem ser reutilizados.
Sugestão rápida:
```bash
cp .env.example .env
# Preencha IDs/projetos/chaves de acordo com seu ambiente Appwrite
```
## Executando os ambientes
### 1) Appwrite local
1. Tenha Docker em execução.
2. Inicie o stack Appwrite (CLI ou imagem oficial), por exemplo:
```bash
docker run -it --rm \
-p 80:80 -p 443:443 \
-v "$(pwd)/appwrite:/var/lib/appwrite" \
appwrite/appwrite:latest install
```
3. Após provisionar o projeto, configure as variáveis (`APPWRITE_*` e `VITE_APPWRITE_*`) e implante as funções em `appwrite-functions/` conforme necessário.
### 2) Landing (Fresh + Deno)
```bash
npm run dev:landing
# ou: cd landing && deno task start
```
- O servidor roda em `http://localhost:8000` por padrão.
- As variáveis `.env` são lidas automaticamente no bootstrap do Deno.
### 3) Dashboard (React + Vite)
```bash
cd dashboard
npm install
npm run dev
```
- Usa os valores `VITE_APPWRITE_*` para client, database e funções.
- Disponível em `http://localhost:5173`.
### 4) Landing + Dashboard em paralelo
No diretório raiz:
```bash
npm run dev:web
```
O script usa `npm-run-all` para iniciar `landing` (Deno) e `dashboard` (Vite) lado a lado.
## Estrutura de pastas
- `appwrite-functions/`: fontes das funções `sync-github` e `check-cloudflare-status`.
- `landing/`: app Fresh (Deno) para a camada pública.
- `dashboard/`: painel autenticado com React + Vite, Tailwind e integrações Appwrite.
## Notas finais
- O dashboard valida a sessão Appwrite no carregamento inicial e protege rotas privadas.
- O Appwrite Database precisa do ID configurado (`APPWRITE_DATABASE_ID`/`VITE_APPWRITE_DATABASE_ID`) para consultas de projetos, cloud_accounts e audit_logs.
- O canal Realtime da coleção `audit_logs` é usado para o terminal de logs em tempo real.