# 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.