Initial commit: HotWives Platform completa
- Backend completo com Express, TypeScript e Prisma - Sistema de autenticação JWT - API REST com todas as funcionalidades - Sistema de mensagens e chat em tempo real (Socket.io) - Upload e gerenciamento de fotos - Sistema de perfis com verificação - Busca avançada com filtros - Sistema de eventos - Dashboard administrativo - Frontend Next.js 14 com TypeScript - Design moderno com Tailwind CSS - Componentes UI com Radix UI - Tema dark/light - Configuração Nginx pronta para produção - Scripts de instalação e deploy - Documentação completa
This commit is contained in:
287
SETUP.md
Normal file
287
SETUP.md
Normal file
@@ -0,0 +1,287 @@
|
||||
# Guia de Instalação - HotWives Platform
|
||||
|
||||
## Requisitos
|
||||
|
||||
- Ubuntu/Debian Linux
|
||||
- Node.js 18+
|
||||
- PostgreSQL 14+
|
||||
- Nginx
|
||||
- Certificado SSL (Certbot/Let's Encrypt)
|
||||
|
||||
## Instalação Automática
|
||||
|
||||
```bash
|
||||
cd /var/www/hotwives
|
||||
sudo chmod +x install.sh
|
||||
sudo ./install.sh
|
||||
```
|
||||
|
||||
## Instalação Manual
|
||||
|
||||
### 1. Instalar Dependências do Sistema
|
||||
|
||||
```bash
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install -y curl git nginx postgresql postgresql-contrib
|
||||
|
||||
# Instalar Node.js
|
||||
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo bash -
|
||||
sudo apt install -y nodejs
|
||||
```
|
||||
|
||||
### 2. Configurar PostgreSQL
|
||||
|
||||
```bash
|
||||
sudo -u postgres psql
|
||||
|
||||
# No console do PostgreSQL:
|
||||
CREATE DATABASE hotwives;
|
||||
CREATE USER hotwives WITH ENCRYPTED PASSWORD 'sua_senha_forte';
|
||||
GRANT ALL PRIVILEGES ON DATABASE hotwives TO hotwives;
|
||||
\q
|
||||
```
|
||||
|
||||
### 3. Configurar o Projeto
|
||||
|
||||
```bash
|
||||
cd /var/www/hotwives
|
||||
|
||||
# Instalar dependências raiz
|
||||
npm install
|
||||
|
||||
# Backend
|
||||
cd backend
|
||||
npm install
|
||||
cp .env.example .env
|
||||
# Edite o .env com suas configurações
|
||||
nano .env
|
||||
|
||||
# Gerar Prisma Client e executar migrações
|
||||
npx prisma generate
|
||||
npx prisma migrate deploy
|
||||
|
||||
# Build
|
||||
npm run build
|
||||
|
||||
# Frontend
|
||||
cd ../frontend
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 4. Configurar Nginx
|
||||
|
||||
```bash
|
||||
sudo cp /var/www/hotwives/nginx.conf /etc/nginx/sites-available/hotwives
|
||||
sudo ln -s /etc/nginx/sites-available/hotwives /etc/nginx/sites-enabled/
|
||||
sudo rm /etc/nginx/sites-enabled/default
|
||||
|
||||
# Testar configuração
|
||||
sudo nginx -t
|
||||
|
||||
# Reiniciar Nginx
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
||||
### 5. Configurar SSL com Let's Encrypt
|
||||
|
||||
```bash
|
||||
sudo apt install -y certbot python3-certbot-nginx
|
||||
sudo certbot --nginx -d hotwives.com.br -d www.hotwives.com.br
|
||||
```
|
||||
|
||||
### 6. Instalar PM2 para Gerenciamento de Processos
|
||||
|
||||
```bash
|
||||
sudo npm install -g pm2
|
||||
|
||||
# Iniciar aplicações
|
||||
cd /var/www/hotwives
|
||||
pm2 start ecosystem.config.js
|
||||
|
||||
# Salvar configuração
|
||||
pm2 save
|
||||
|
||||
# Configurar PM2 para iniciar no boot
|
||||
pm2 startup
|
||||
```
|
||||
|
||||
## Configuração do .env (Backend)
|
||||
|
||||
```env
|
||||
# Server
|
||||
PORT=3001
|
||||
NODE_ENV=production
|
||||
FRONTEND_URL=https://hotwives.com.br
|
||||
|
||||
# Database
|
||||
DATABASE_URL="postgresql://hotwives:sua_senha@localhost:5432/hotwives?schema=public"
|
||||
|
||||
# JWT
|
||||
JWT_SECRET=gere_uma_chave_secreta_aleatoria_forte
|
||||
JWT_EXPIRES_IN=7d
|
||||
|
||||
# Email (Gmail como exemplo)
|
||||
SMTP_HOST=smtp.gmail.com
|
||||
SMTP_PORT=587
|
||||
SMTP_USER=seu_email@gmail.com
|
||||
SMTP_PASS=sua_senha_de_app
|
||||
EMAIL_FROM=noreply@hotwives.com.br
|
||||
|
||||
# Upload
|
||||
MAX_FILE_SIZE=10485760
|
||||
```
|
||||
|
||||
## Comandos Úteis
|
||||
|
||||
### PM2
|
||||
|
||||
```bash
|
||||
# Ver status
|
||||
pm2 status
|
||||
|
||||
# Ver logs
|
||||
pm2 logs
|
||||
|
||||
# Reiniciar
|
||||
pm2 restart all
|
||||
|
||||
# Parar
|
||||
pm2 stop all
|
||||
|
||||
# Recarregar (zero downtime)
|
||||
pm2 reload all
|
||||
```
|
||||
|
||||
### Prisma
|
||||
|
||||
```bash
|
||||
cd /var/www/hotwives/backend
|
||||
|
||||
# Gerar client
|
||||
npx prisma generate
|
||||
|
||||
# Executar migrações
|
||||
npx prisma migrate deploy
|
||||
|
||||
# Abrir Prisma Studio (desenvolvimento)
|
||||
npx prisma studio
|
||||
```
|
||||
|
||||
### Nginx
|
||||
|
||||
```bash
|
||||
# Testar configuração
|
||||
sudo nginx -t
|
||||
|
||||
# Reiniciar
|
||||
sudo systemctl restart nginx
|
||||
|
||||
# Ver logs
|
||||
sudo tail -f /var/log/nginx/hotwives-error.log
|
||||
```
|
||||
|
||||
## Backup do Banco de Dados
|
||||
|
||||
```bash
|
||||
# Criar backup
|
||||
pg_dump -U hotwives hotwives > backup_$(date +%Y%m%d_%H%M%S).sql
|
||||
|
||||
# Restaurar backup
|
||||
psql -U hotwives hotwives < backup_20250101_120000.sql
|
||||
```
|
||||
|
||||
## Atualização
|
||||
|
||||
```bash
|
||||
cd /var/www/hotwives
|
||||
|
||||
# Atualizar código (Git)
|
||||
git pull origin main
|
||||
|
||||
# Backend
|
||||
cd backend
|
||||
npm install
|
||||
npx prisma migrate deploy
|
||||
npm run build
|
||||
|
||||
# Frontend
|
||||
cd ../frontend
|
||||
npm install
|
||||
npm run build
|
||||
|
||||
# Reiniciar aplicações
|
||||
pm2 reload all
|
||||
```
|
||||
|
||||
## Monitoramento
|
||||
|
||||
```bash
|
||||
# Ver uso de recursos
|
||||
pm2 monit
|
||||
|
||||
# Ver logs em tempo real
|
||||
pm2 logs
|
||||
|
||||
# Métricas do sistema
|
||||
pm2 list
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Backend não inicia
|
||||
|
||||
```bash
|
||||
cd /var/www/hotwives/backend
|
||||
npm run build
|
||||
pm2 restart hotwives-backend
|
||||
pm2 logs hotwives-backend --lines 100
|
||||
```
|
||||
|
||||
### Erro de conexão com banco de dados
|
||||
|
||||
```bash
|
||||
# Verificar se PostgreSQL está rodando
|
||||
sudo systemctl status postgresql
|
||||
|
||||
# Testar conexão
|
||||
psql -U hotwives -d hotwives -h localhost
|
||||
```
|
||||
|
||||
### Erro 502 Bad Gateway
|
||||
|
||||
```bash
|
||||
# Verificar se as aplicações estão rodando
|
||||
pm2 status
|
||||
|
||||
# Verificar logs do Nginx
|
||||
sudo tail -f /var/log/nginx/hotwives-error.log
|
||||
```
|
||||
|
||||
## Segurança
|
||||
|
||||
1. **Firewall**: Configure UFW para permitir apenas portas necessárias
|
||||
```bash
|
||||
sudo ufw allow 22 # SSH
|
||||
sudo ufw allow 80 # HTTP
|
||||
sudo ufw allow 443 # HTTPS
|
||||
sudo ufw enable
|
||||
```
|
||||
|
||||
2. **Atualizações**: Mantenha o sistema sempre atualizado
|
||||
```bash
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
```
|
||||
|
||||
3. **Backups**: Configure backups automáticos do banco de dados
|
||||
|
||||
4. **Senhas**: Use senhas fortes para PostgreSQL e JWT_SECRET
|
||||
|
||||
5. **SSL**: Renove certificados SSL automaticamente com Certbot
|
||||
|
||||
## Suporte
|
||||
|
||||
Para suporte, entre em contato através de:
|
||||
- Email: suporte@hotwives.com.br
|
||||
- Repositório: https://meurepositorio.com/sergio.correa/Hotwives.git
|
||||
|
||||
Reference in New Issue
Block a user