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

2.8 KiB

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.