70 lines
2.8 KiB
Markdown
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.
|