Sistema completo de gestão de fluxo de caixa para escritórios de advocacia brasileiros, com automação de cálculos de alvarás judiciais, importação de extratos bancários e relatórios financeiros completos.
npm install
npm run db:push
npm run devAcesse: http://localhost:5000
Veja o guia completo abaixo.
- Instalação em Produção (Ubuntu)
- Primeiro Acesso - Setup Automático
- Configuração como Serviço
- Backup e Segurança
- Solução de Problemas
- Funcionalidades
- Ubuntu 20.04 LTS ou superior
- Acesso sudo/root
- Conexão com internet
# Atualizar sistema
sudo apt update && sudo apt upgrade -y
# Instalar Node.js 20.x
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
# Verificar versões
node --version # Deve mostrar v20.x.x
npm --version # Deve mostrar 10.x.x
# Instalar PostgreSQL
sudo apt install -y postgresql postgresql-contrib
# Iniciar e habilitar PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql# Trocar para usuário postgres
sudo -i -u postgres
# Criar usuário do banco (ESCOLHA UMA SENHA FORTE!)
createuser --interactive --pwprompt alvara_user
# Digite a senha quando solicitado
# Responder: n (não superuser), n (não criar databases), n (não criar roles)
# Criar banco de dados
createdb -O alvara_user alvara_db
# Sair do usuário postgres
exit
# Testar conexão (use a senha que você criou)
psql -U alvara_user -h localhost -d alvara_db
# Digite \q para sair# Criar diretório
mkdir -p ~/aplicacoes
cd ~/aplicacoes
# Opção A: Descompactar arquivo ZIP
unzip alvara-system.zip
cd alvara-system
# Opção B: Clonar repositório Git
git clone [URL_DO_REPOSITORIO] alvara-system
cd alvara-system
# Instalar dependências
npm install# Criar arquivo .env
cat > .env << 'EOF'
DATABASE_URL=postgresql://alvara_user:SUA_SENHA_AQUI@localhost:5432/alvara_db
PGHOST=localhost
PGPORT=5432
PGUSER=alvara_user
PGPASSWORD=SUA_SENHA_AQUI
PGDATABASE=alvara_db
NODE_ENV=production
EOF
# Gerar secret de sessão aleatório
echo "SESSION_SECRET=$(openssl rand -base64 32)" >> .env
# Verificar arquivo
cat .envSUA_SENHA_AQUI pela senha que você criou no Passo 2!
# Aplicar schema do banco de dados
npm run db:push
# Deve mostrar: Schema pushed successfully!npm run build
# Deve mostrar ao final:
# ✓ built in XXs
# dist/index.js 42.5kb# Testar manualmente primeiro
npm start
# Deve mostrar:
# ✅ Environment variables loaded from .env file
# Server listening on port 5000Se aparecer essa mensagem, SUCESSO! Pressione Ctrl+C para parar e continue para configurar como serviço.
Abra o navegador:
http://localhost:5000
Ou de outra máquina na rede:
http://IP_DO_SERVIDOR:5000
A tela "Configuração Inicial" aparecerá automaticamente!
O sistema detecta que não há usuários cadastrados e exibe o formulário de setup.
Preencha os dados:
- Email: Seu email profissional (ex: admin@seuescritorio.com.br)
- Nome: Seu primeiro nome
- Sobrenome: Seu sobrenome
- Senha: Crie uma senha forte (mínimo 6 caracteres, recomendado 12+)
- Confirmar Senha: Digite a senha novamente
Clique em "Criar Administrador"
Você será redirecionado automaticamente para a tela de login.
Use o email e senha que você acabou de criar.
✅ PRONTO! Sistema funcionando!
Para manter a aplicação rodando permanentemente e iniciar automaticamente no boot:
sudo nano /etc/systemd/system/alvara-system.serviceCole o seguinte conteúdo (ajuste os caminhos conforme necessário):
[Unit]
Description=Alvara Judicial Management System
After=network.target postgresql.service
[Service]
Type=simple
User=seu_usuario
WorkingDirectory=/home/seu_usuario/aplicacoes/alvara-system
ExecStart=/usr/bin/npm start
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.targetseu_usuario pelo seu nome de usuário do Ubuntu.
Salve com Ctrl+X, depois Y, depois Enter.
# Recarregar systemd
sudo systemctl daemon-reload
# Habilitar para iniciar no boot
sudo systemctl enable alvara-system
# Iniciar serviço
sudo systemctl start alvara-system
# Verificar status
sudo systemctl status alvara-system
# Deve mostrar: Active: active (running)# Ver logs em tempo real
sudo journalctl -u alvara-system -f
# Reiniciar serviço
sudo systemctl restart alvara-system
# Parar serviço
sudo systemctl stop alvara-system
# Ver status
sudo systemctl status alvara-system# Permitir SSH (IMPORTANTE!)
sudo ufw allow 22/tcp
# Permitir porta 5000 (aplicação)
sudo ufw allow 5000/tcp
# Habilitar firewall
sudo ufw enable
# Verificar status
sudo ufw status# Criar diretório para backups
mkdir -p ~/backups
# Fazer backup
pg_dump -U alvara_user -h localhost alvara_db > ~/backups/alvara_backup_$(date +%Y%m%d).sql
# Comprimir backup
gzip ~/backups/alvara_backup_$(date +%Y%m%d).sql# Descomprimir
gunzip ~/backups/alvara_backup_YYYYMMDD.sql.gz
# Restaurar
psql -U alvara_user -h localhost -d alvara_db < ~/backups/alvara_backup_YYYYMMDD.sql# Criar script de backup
cat > ~/backup-alvara.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="$HOME/backups"
mkdir -p "$BACKUP_DIR"
pg_dump -U alvara_user -h localhost alvara_db | gzip > "$BACKUP_DIR/alvara_backup_$(date +%Y%m%d_%H%M%S).sql.gz"
# Manter apenas backups dos últimos 30 dias
find "$BACKUP_DIR" -name "alvara_backup_*.sql.gz" -mtime +30 -delete
EOF
# Tornar executável
chmod +x ~/backup-alvara.sh
# Adicionar ao crontab (executar diariamente às 2h da manhã)
(crontab -l 2>/dev/null; echo "0 2 * * * $HOME/backup-alvara.sh") | crontab -# 1. Verificar se .env existe
ls -la ~/aplicacoes/alvara-system/.env
# 2. Verificar conteúdo
cat ~/aplicacoes/alvara-system/.env
# 3. Se não existir ou estiver incorreto, recrie:
cd ~/aplicacoes/alvara-system
cat > .env << 'EOF'
DATABASE_URL=postgresql://alvara_user:SUA_SENHA@localhost:5432/alvara_db
PGHOST=localhost
PGPORT=5432
PGUSER=alvara_user
PGPASSWORD=SUA_SENHA
PGDATABASE=alvara_db
NODE_ENV=production
EOF
echo "SESSION_SECRET=$(openssl rand -base64 32)" >> .env# Verificar se PostgreSQL está rodando
sudo systemctl status postgresql
# Se não estiver rodando
sudo systemctl start postgresql
# Testar conexão manual
psql -U alvara_user -h localhost -d alvara_dbIsso significa que já existe usuário no banco.
Opção 1: Ver qual usuário existe
psql -U alvara_user -h localhost -d alvara_db -c "SELECT email, role FROM users"Opção 2: Limpar e criar novo (CUIDADO: apaga todos os usuários!)
sudo systemctl stop alvara-system
psql -U alvara_user -h localhost -d alvara_db -c "DELETE FROM audit_logs; DELETE FROM users;"
sudo systemctl start alvara-system
# Acesse http://localhost:5000 novamenteOpção mais fácil: Limpar e criar novo
sudo systemctl stop alvara-system
psql -U alvara_user -h localhost -d alvara_db -c "DELETE FROM audit_logs; DELETE FROM users;"
sudo systemctl start alvara-system
# Acesse http://localhost:5000 e crie novo admin# Ver logs detalhados
sudo journalctl -u alvara-system -n 50
# Verificar se porta 5000 está em uso
sudo lsof -i :5000
# Testar manualmente
cd ~/aplicacoes/alvara-system
npm start# 1. Verificar logs
sudo journalctl -u alvara-system -f
# 2. Verificar .env
cat ~/aplicacoes/alvara-system/.env
# 3. Verificar conexão ao banco
psql -U alvara_user -h localhost -d alvara_db -c "SELECT 1"
# 4. Reiniciar serviços
sudo systemctl restart postgresql
sudo systemctl restart alvara-system# Parar serviço
sudo systemctl stop alvara-system
# Baixar nova versão
cd ~/aplicacoes/alvara-system
# Se usar git
git pull
# Ou descompactar novo ZIP
unzip -o alvara-system-new.zip
# Instalar novas dependências
npm install
# Aplicar mudanças no banco
npm run db:push
# Recompilar
npm run build
# Reiniciar serviço
sudo systemctl start alvara-system
# Verificar logs
sudo journalctl -u alvara-system -f- Importação de extratos bancários (CSV, texto, OFX)
- Identificação automática de CNJ
- Cálculo de honorários (3 tipos de alvará)
- Cálculo automático de IR e INSS/PSS
- Rastreamento de pagamentos
- Geração de prestação de contas (PDF)
- Múltiplos caixas independentes
- Categorias personalizadas
- Lançamentos de entrada/saída
- Saldo em tempo real
- DRE (Demonstração do Resultado do Exercício)
- Integração entre transações bancárias e caixa
- Filtros por período
- Log completo de todas as ações
- Rastreamento de alterações
- Identificação de usuário e IP
- Visualizador de logs (admin)
- Dois níveis de acesso (admin/funcionário)
- Redefinição de senha
- Autenticação local segura (bcrypt)
Para problemas:
- Verifique a seção Solução de Problemas
- Verifique os logs:
sudo journalctl -u alvara-system -f - Verifique o status:
sudo systemctl status alvara-system
- Node.js 20.x instalado
- PostgreSQL instalado e rodando
- Banco
alvara_dbcriado - Usuário
alvara_usercriado - Arquivo
.envcriado com senha correta -
npm installexecutado -
npm run db:pushexecutado com sucesso -
npm run buildexecutado - Serviço systemd configurado
- Serviço iniciado e rodando
- Acessou http://localhost:5000
- Tela de "Configuração Inicial" apareceu
- Criou usuário admin
- Fez login com sucesso
- Firewall configurado
- Backup automático configurado
Se todos os itens estiverem marcados: ✅ Instalação completa!
Versão: 1.0 Final (Testada)
Data: Novembro 2025
Status: ✅ Pronto para Produção