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 monorepo com três camadas principais: Landing (Fresh + Deno), Dashboard (React + Vite) e Appwrite Cloud como backend. Este guia prioriza a configuração do Appwrite Cloud antes de rodar qualquer código local.
Passo a passo (Appwrite Cloud)
- Acesse https://cloud.appwrite.io e crie/abra um projeto.
- No menu API Keys, gere uma chave com permissão de Admin para criar bancos, coleções e funções.
- Registre os valores a seguir para preencher o
.env:- API Endpoint (ex.:
https://cloud.appwrite.io/v1) - Project ID
- Database ID (criado no passo seguinte)
- Opcional: endpoints/keys das Functions se você usar domínios dedicados.
- API Endpoint (ex.:
- Crie um Database chamado DevOpsPlatform e anote seu ID.
- Dentro do banco, crie as coleções (IDs sugeridos entre parênteses):
- servers (
servers):name(string)ip(string)status(enum:online,offline)region(string)
- github_repos (
github_repos):repo_name(string)url(url)last_commit(string)status(string)
- audit_logs (
audit_logs):event(string)user_id(string)timestamp(datetime)
- cloud_accounts (
cloud_accounts) para integrações:provider(string)apiKey(string)label(string)
- servers (
- Ative o provedor Email/Password em Authentication e crie um usuário de teste.
- Implante as Functions
sync-githubecheck-cloudflare-status(fontes emappwrite-functions/).
Variáveis de ambiente
Copie o arquivo de exemplo e preencha com os IDs anotados:
cp .env.example .env
Campos principais:
VITE_APPWRITE_ENDPOINT,VITE_APPWRITE_PROJECT_ID,VITE_APPWRITE_DATABASE_IDVITE_APPWRITE_COLLECTION_SERVERS_ID,VITE_APPWRITE_COLLECTION_GITHUB_REPOS_ID,VITE_APPWRITE_COLLECTION_AUDIT_LOGS_ID,VITE_APPWRITE_COLLECTION_CLOUDFLARE_ACCOUNTS_ID- Para scripts server-side, use também
APPWRITE_ENDPOINT,APPWRITE_PROJECT_ID,APPWRITE_API_KEY.
Estrutura de pastas
landing/: app Fresh (Deno) para a landing page.dashboard/: painel React + Vite com integrações Appwrite (auth, Functions, Database, Realtime).appwrite-functions/: funçõessync-githubecheck-cloudflare-status.
Rodando os ambientes
- Appwrite local (opcional)
docker run -it --rm \
-p 80:80 -p 443:443 \
-v "$(pwd)/appwrite:/var/lib/appwrite" \
appwrite/appwrite:latest install
Preencha o .env com os IDs gerados localmente e replique o schema acima no console.
- Landing (Fresh + Deno)
npm run dev:landing
# ou: cd landing && deno task start
Roda em http://localhost:8000. O Deno carrega variáveis do .env automaticamente.
- Dashboard (React + Vite)
cd dashboard
npm install
npm run dev
Disponível em http://localhost:5173. O Vite lê apenas variáveis prefixadas com VITE_.
- Landing + Dashboard em paralelo
npm run dev:web
Usa npm-run-all para iniciar ambos os frontends.
Notas rápidas
- Rotas do dashboard são protegidas pelo Appwrite (Email/Password) e usam
account.createEmailPasswordSession. - O widget de overview consulta as coleções de repositórios, servidores e audit logs para mostrar métricas reais.
- O terminal inferior assina o canal Realtime da coleção
audit_logsusando o ID configurado no.env.