aboutsummaryrefslogtreecommitdiff

🛠️ Helpdesk TI — Sistema Interno de Chamados

Sistema interno de gerenciamento de chamados de TI, desenvolvido para rodar em infraestrutura prĂłpria (on-premise).

Stack TecnolĂłgica

Camada Tecnologia
Backend Node.js 20 + Fastify
ORM Drizzle ORM
Banco SQLite (via better-sqlite3)
Frontend React 18 + TypeScript + Vite
Ambiente Nix Flakes (reprodutĂ­vel)
Monorepo pnpm Workspaces
VCS Git (espelhado via Gitolite/cgit)

Pré-requisitos

  • Nix com suporte a Flakes habilitado
  • Git

Setup do Ambiente

# 1. Clone o repositĂłrio
git clone git@git.devlucas.me:helpdesk.git
cd helpdesk

# 2. Entre no shell de desenvolvimento (instala todas as dependĂŞncias automaticamente)
nix develop

# 3. Instale as dependĂŞncias Node de todos os workspaces
pnpm install

# 4. Rode as migrações do banco de dados
pnpm db:migrate

# 5. Inicie o ambiente de desenvolvimento (api + web em paralelo)
pnpm dev

Scripts DisponĂ­veis

Comando Descrição
pnpm dev Inicia api (porta 3000) e web (porta 5173)
pnpm dev:api Inicia apenas o servidor Fastify
pnpm dev:web Inicia apenas o frontend Vite
pnpm build Build de produção de ambos os pacotes
pnpm db:migrate Executa migrações pendentes do Drizzle
pnpm db:studio Abre o Drizzle Studio (GUI do banco)

Estrutura do RepositĂłrio

helpdesk/
├── flake.nix              # Ambiente Nix reprodutível
├── pnpm-workspace.yaml    # Configuração dos workspaces
├── package.json           # Scripts raiz do monorepo
├── api/                   # Backend Fastify + Drizzle + SQLite
│   ├── src/
│   │   ├── db/            # Schema, migrações e conexão
│   │   ├── modules/       # Módulos de tickets, usuários, comentários
│   │   └── server.ts      # Entry point do Fastify
│   └── package.json
└── web/                   # Frontend React + TypeScript + Vite
    ├── src/
    │   ├── components/    # Componentes reutilizáveis
    │   ├── pages/         # Páginas (solicitante, agente)
    │   └── main.tsx       # Entry point do React
    └── package.json

Configuração de VCS (Gitolite)

Ver seção de configuração do Gitolite no guia de infraestrutura.