Uma aplicação completa para gestão de finanças pessoais com funcionalidades avançadas de análise, orçamentos, investimentos e IA.
- Dashboard Inteligente - Visão geral completa das finanças
- Gestão de Transações - Registo e categorização automática
- Orçamentos Dinâmicos - Controlo de gastos por categoria
- Contas Múltiplas - Gestão de contas bancárias e cartões
- Investimentos - Acompanhamento de portfolio com análise de performance
- Pagamentos Recorrentes - Gestão automática com análise de evolução
- Poupanças por Objetivos - Metas financeiras com marcos
- Gestão de Ativos - Veículos, equipamentos e seguros
- Relatórios Avançados - Análises detalhadas e exportação
- Conselheiro IA - Recomendações personalizadas
- Importação/Exportação - Suporte para múltiplos formatos
- Docker Engine 20.10+
- Docker Compose 2.0+
- 4GB RAM disponível
- 10GB espaço em disco
# Clonar o repositório (ou copiar os ficheiros)
git clone <repository-url>
cd financeflow
# Copiar configuração de ambiente
cp .env.example .env
# Editar variáveis de ambiente (opcional)
nano .env
# Dar permissões aos scripts
chmod +x scripts/*.sh
# Construir e iniciar todos os serviços
./scripts/docker-setup.sh
# OU manualmente:
docker-compose up -d
# Verificar estado dos serviços
docker-compose ps
# Ver logs em tempo real
docker-compose logs -f financeflow
- Aplicação Web: http://localhost:3000
- Base de Dados: localhost:5432
- Redis: localhost:6379
Email: demo@financeflow.local
Password: demo123
A aplicação suporta tanto PostgreSQL como MariaDB:
# Iniciar com MariaDB
docker-compose --profile mariadb up -d
# Parar PostgreSQL se estiver a correr
docker-compose stop postgres
- Porta: 3306
- Base de Dados: financeflow
- Utilizador: financeflow_user
- Password: financeflow_password
-
Via Interface Web:
- Aceder a Configurações > Base de Dados
- Selecionar "MariaDB" no dropdown
- Clicar em "Configurar MariaDB"
- Seguir o assistente passo-a-passo
-
Via Docker Compose:
# Iniciar MariaDB
docker-compose --profile mariadb up -d
# Parar PostgreSQL (opcional)
docker-compose stop postgres
- Servidor MariaDB Externo:
- Use o assistente de configuração na aplicação
- Forneça os dados de conexão
- A aplicação criará automaticamente as tabelas necessárias
# Conectar ao MariaDB (Docker)
docker exec -it financeflow-mariadb mysql -u root -p
# Backup MariaDB
docker exec financeflow-mariadb mysqldump -u financeflow_user -p financeflow > backup.sql
# Restaurar MariaDB
docker exec -i financeflow-mariadb mysql -u financeflow_user -p financeflow < backup.sql
# Parar todos os serviços
docker-compose down
# Parar e remover volumes (CUIDADO: apaga dados)
docker-compose down -v
# Reiniciar apenas a aplicação
docker-compose restart financeflow
# Ver logs de um serviço específico
docker-compose logs postgres
docker-compose logs redis
docker-compose logs financeflow
# Executar comandos na base de dados
docker-compose exec postgres psql -U financeflow_user -d financeflow
# Aceder ao container da aplicação
docker-compose exec financeflow sh
# Atualizar a aplicação
docker-compose build financeflow
docker-compose up -d financeflow
# Criar backup manual
docker-compose run --rm backup
# Restaurar backup
docker-compose exec postgres psql -U financeflow_user -d financeflow < backups/backup_YYYYMMDD_HHMMSS.sql
# Backup automático (configurado no docker-compose)
# Os backups são criados automaticamente na pasta ./backups
# Base de Dados
DATABASE_URL=postgresql://user:password@host:port/database
# Segurança
APP_SECRET=your_super_secret_key
JWT_SECRET=your_jwt_secret
# APIs de IA (Opcional)
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=AI...
# Configurações de Upload
MAX_FILE_SIZE=10485760 # 10MB
UPLOAD_PATH=/app/uploads
# No docker-compose.yml
services:
financeflow:
ports:
- "8080:3000" # Aplicação na porta 8080
postgres:
ports:
- "5433:5432" # PostgreSQL na porta 5433
# No docker-compose.yml
services:
financeflow:
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.25'
# Verificar saúde dos serviços
docker-compose ps
# Testar conectividade da base de dados
docker-compose exec postgres pg_isready -U financeflow_user
# Testar Redis
docker-compose exec redis redis-cli ping
# Logs detalhados
docker-compose logs --tail=100 -f
# Logs apenas de erros
docker-compose logs --tail=50 | grep ERROR
# Monitorizar recursos
docker stats
- Alterar passwords padrão no
.env
- Configurar HTTPS com reverse proxy (nginx/traefik)
- Restringir acesso à base de dados
- Configurar firewall adequado
- Backups regulares e testados
server {
listen 80;
server_name financeflow.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
-
Porta já em uso
# Verificar processos na porta lsof -i :3000 # Alterar porta no docker-compose.yml
-
Erro de permissões
# Corrigir permissões sudo chown -R $USER:$USER .
-
Base de dados não conecta
# Verificar logs docker-compose logs postgres # Reiniciar serviço docker-compose restart postgres
-
Aplicação não inicia
# Reconstruir imagem docker-compose build --no-cache financeflow docker-compose up -d financeflow
# CUIDADO: Remove todos os dados
docker-compose down -v
docker system prune -a
docker-compose up -d
- SSD para volumes da base de dados
- Mínimo 4GB RAM para funcionamento estável
- Backup regular dos volumes Docker
- Monitorização de recursos do sistema
Para ambientes de produção, considere:
- Load balancer para múltiplas instâncias
- Base de dados externa (RDS, etc.)
- CDN para assets estáticos
- Monitorização com Prometheus/Grafana
Para problemas ou questões:
- Verificar logs:
docker-compose logs
- Consultar documentação Docker
- Verificar configurações de rede
- Validar variáveis de ambiente
Nota: Esta aplicação foi desenvolvida para uso local/privado. Para produção, implemente medidas de segurança adicionais.