Uma aplicação web local para visualizar e gerenciar dados de racks e locais com atualizações dinâmicas. Desenvolvida como solução MVP para mapear infraestrutura de servidores e melhorar a colaboração do time.
⚠️ Status: Este é um projeto em desenvolvimento ativo. Trata-se de um MVP (Minimum Viable Product) criado para validar a solução com o time. Espere encontrar melhorias necessárias em UX, performance e lógica de negócio.
- Backend: Node.js + Fastify + Prisma + MariaDB
- Frontend: React + Vite
- Containerização: Docker + Docker Compose
- Desenvolvido com auxílio de IA, pode conter bugs visuais e de interação
- Tabelas renderizadas com CSS puro e loops
for(implementação pode ser pesada) - Sem otimizações de performance para grandes volumes de dados
- Recomendado para análise antes de deployar em produção
- Lógica de negócio em refinamento
- Alguns algoritmos precisam de revisão e otimização
- Estrutura preparada para evoluir com melhorias do time
- Docker e Docker Compose
- Node.js 22 (opcional, apenas para desenvolvimento local sem containers)
Do diretório raiz do projeto:
docker compose upPara rodar em background:
docker compose up -dA stack inicia os seguintes serviços:
| Serviço | URL | Descrição |
|---|---|---|
| Frontend | http://localhost:5173 | Vite dev server |
| Backend API | http://localhost:3333 | Fastify API |
| MariaDB | localhost:3306 | Banco de dados |
Verificar se o backend está pronto:
curl http://localhost:3333/healthdocker compose downPara remover também volumes de dados e dependências:
docker compose down -vO arquivo docker-compose.yml orquestra:
- frontend: Vite dev server na porta
5173 - backend: Fastify API na porta
3333 - mysql-db: MariaDB 11.4, inicializa com
database/database.sql
O backend aguarda o MariaDB ficar saudável antes de iniciar. O frontend aguarda o healthcheck do backend antes de iniciar.
DATABASE_URL="mysql://rackmap:rackmap@127.0.0.1:3306/rackmap"
RACKTABLES_API_URL="http://localhost:8000"
RACKTABLES_RACKS_PATH="/v1/racktables/racks/"
RACKTABLES_LOCATIONS_ROWS_PATH="/v1/racktables/locations/rows"
# RACKTABLES_API_TOKEN=""Com Docker: DATABASE_URL é configurado automaticamente para usar o serviço MariaDB:
mysql://rackmap:rackmap@mysql-db:3306/rackmapO padrão do Compose para RACKTABLES_API_URL é http://host.docker.internal:8000, permitindo que o backend acesse uma API RackTables rodando na sua máquina host.
RACKTABLES_API_URL=http://host.docker.internal:8000 docker compose upnpm installnpx prisma generate --schema backend/prisma/schema.prismaTerminal 1 - Backend:
npm run devTerminal 2 - Frontend:
npm run dev:frontendO Vite proxia /v1 e /health para http://localhost:3333 por padrão.
Para usar outro endpoint de backend:
BACKEND_PROXY_TARGET=http://localhost:3333 npm run dev:frontend# Verificar configuração do Compose
docker compose config
# Listar serviços
docker compose ps
# Logs em tempo real
docker compose logs -f backend
docker compose logs -f frontend
docker compose logs -f mysql-db
# Build do frontend para produção
npm run build:frontend