No description
Find a file
Tiago Yamamoto b21a4ff715
Merge pull request #6 from rede5/codex/add-auth-context-and-private-route
Add dashboard auth flow and cloud integrations
2025-12-11 18:35:04 -03:00
appwrite-functions Add Appwrite proxy functions and security rules 2025-12-11 18:06:11 -03:00
dashboard Add dashboard auth layout and integrations 2025-12-11 18:34:38 -03:00
landing Replace binary favicon with SVG asset 2025-12-11 18:12:14 -03:00
.env.example Add dashboard auth layout and integrations 2025-12-11 18:34:38 -03:00
.gitignore Add Appwrite proxy functions and security rules 2025-12-11 18:06:11 -03:00
appwrite-databases-schema.md Add Appwrite database collection definitions 2025-12-11 18:02:53 -03:00
appwrite.json Add monorepo scaffold and Appwrite cloud configuration 2025-12-11 18:01:19 -03:00
package-lock.json Add dashboard auth layout and integrations 2025-12-11 18:34:38 -03:00
package.json Add dashboard auth layout and integrations 2025-12-11 18:34:38 -03:00
README.md Add dashboard auth layout and integrations 2025-12-11 18:34:38 -03:00
SECURITY.md Add Appwrite proxy functions and security rules 2025-12-11 18:06:11 -03:00

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

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:

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:
    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)

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)

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:

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.