No description
| appwrite-functions | ||
| dashboard | ||
| landing | ||
| .env.example | ||
| .gitignore | ||
| appwrite-databases-schema.md | ||
| appwrite.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| SECURITY.md | ||
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_IDe credenciais de funções conforme necessário. - Dashboard (Vite): use
VITE_APPWRITE_ENDPOINT,VITE_APPWRITE_PROJECT_IDeVITE_APPWRITE_DATABASE_ID. O prefixoVITE_garante a leitura pelo Vite em tempo de build. - Landing (Deno Fresh): o arquivo
landing/main.tscarrega automaticamente variáveis do.envvia$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
- Tenha Docker em execução.
- 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 - Após provisionar o projeto, configure as variáveis (
APPWRITE_*eVITE_APPWRITE_*) e implante as funções emappwrite-functions/conforme necessário.
2) Landing (Fresh + Deno)
npm run dev:landing
# ou: cd landing && deno task start
- O servidor roda em
http://localhost:8000por padrão. - As variáveis
.envsã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çõessync-githubecheck-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.