Guia de Deploy
Este guia explica como fazer o deploy da aplicação Movie Favorites em diferentes plataformas, incluindo configurações para backend (Django), frontend (React) e banco de dados (PostgreSQL).
Sumário
  - Deploy no Render
- Deploy no Railway
- Configuração de Domínio Personalizado
- Variáveis de Ambiente
- Solução de Problemas
1. Deploy no Render
Pré-requisitos
  - Uma conta na Render
- Git instalado localmente
- Conta no GitHub, GitLab ou Bitbucket (para integração contínua)
Passo a Passo para o Deploy
1. Preparação do Código
  - Faça um fork deste repositório para a sua conta do GitHub/GitLab/Bitbucket
- Clone o repositório para sua máquina local
- Certifique-se de que todas as alterações foram commitadas e enviadas para o repositório remoto
2. Criar o Banco de Dados na Render
  - Acesse o Painel da Render
- Clque em “New +” e selecione “PostgreSQL”
- Preencha os campos:
    
      - Name: movie-db
- Database: movie_db
- User: movie_user
- Region: Escolha a região mais próxima de você
- Plan: Free
 
- Clique em “Create Database”
- Anote as credenciais fornecidas (você precisará delas mais tarde)
3. Configurar o Backend (Django)
  - No painel da Render, clique em “New +” e selecione “Web Service”
- Conecte sua conta do GitHub/GitLab/Bitbucket e selecione o repositório
- Preencha os campos:
    
      - Name: movie-api
- Region: Escolha a mesma região do banco de dados
- Branch: main(ou a branch que deseja fazer deploy)
- Root Directory: (deixe em branco)
- Build Command: pip install -r backend/requirements.txt && python backend/manage.py migrate && python backend/manage.py collectstatic --noinput
- Start Command: gunicorn movie_project.wsgi:application
 
- Na seção “Advanced”, clique em “Add Environment Variable” e adicione:
    
      - PYTHON_VERSION:- 3.10.0
- DJANGO_SETTINGS_MODULE:- movie_project.settings.production
- DJANGO_ALLOWED_HOSTS:- movie-api.onrender.com
- CORS_ALLOWED_ORIGINS:- https://movie-favorites.onrender.com
- DEBUG:- False
- SECRET_KEY: Gere uma chave segura com:- python -c "import secrets; print(secrets.token_urlsafe(50))"
- DATABASE_URL: Cole a URL de conexão do banco de dados criado no passo 2
 
- Clique em “Create Web Service”
4. Configurar o Frontend (React)
  - No painel da Render, clique em “New +” e selecione “Static Site”
- Conecte sua conta do GitHub/GitLab/Bitbucket e selecione o mesmo repositório
- Preencha os campos:
    
      - Name: movie-favorites
- Branch: main(ou a branch que deseja fazer deploy)
- Root Directory: (deixe em branco)
- Build Command: cd frontend && npm install && npm run build
- Publish Directory: frontend/dist
 
- Na seção “Environment Variables”, adicione:
    
      - VITE_API_URL:- https://movie-api.onrender.com(substitua pelo URL do seu backend)
 
- Clique em “Create Static Site”
5. Atualizar Configurações do Backend
  - Após o deploy do frontend, anote a URL gerada (algo como https://movie-favorites.onrender.com)
- Volte para as configurações do serviço movie-api
- Atualize a variável de ambiente CORS_ALLOWED_ORIGINScom a URL do frontend
- Reinicie o serviço para aplicar as alterações
6. Testar a Aplicação
  - Acesse a URL do frontend (algo como https://movie-favorites.onrender.com)
- Verifique se a aplicação está funcionando corretamente
- Teste as funcionalidades que dependem do backend
Configurações Adicionais
Variáveis de Ambiente Recomendadas para Produção
Para o serviço movie-api, considere adicionar estas variáveis de ambiente adicionais para melhorar a segurança:
  - SECURE_SSL_REDIRECT:- True
- SESSION_COOKIE_SECURE:- True
- CSRF_COOKIE_SECURE:- True
- SECURE_BROWSER_XSS_FILTER:- True
- SECURE_CONTENT_TYPE_NOSNIFF:- True
- X_FRAME_OPTIONS:- DENY
- SECURE_HSTS_SECONDS:- 31536000
- SECURE_HSTS_INCLUDE_SUBDOMAINS:- True
- SECURE_HSTS_PRELOAD:- True
Domínios Personalizados
Se desejar usar um domínio personalizado:
  - Vá para as configurações do serviço na Render
- Na seção “Custom Domains”, adicione seu domínio
- Siga as instruções para configurar os registros DNS
Solução de Problemas
Migrações do Banco de Dados
Se precisar executar migrações adicionais após o deploy:
  - Acesse o serviço movie-apino painel da Render
- Vá para a aba “Shell”
- Execute: python backend/manage.py migrate
Logs
Para ver os logs da aplicação:
  - Acesse o serviço no painel da Render
- Vá para a aba “Logs”
- Verifique os logs em caso de erros
Acesso ao Banco de Dados
Para acessar o banco de dados PostgreSQL:
  - Acesse o banco de dados no painel da Render
- Use as credenciais fornecidas
- Você pode usar o psql ou uma ferramenta como DBeaver para se conectar
Atualizações Futuras
Para atualizar a aplicação:
  - Faça as alterações no código
- Commit e push para o repositório
- O Render fará o deploy automático (se configurado)
- Se necessário, execute migrações de banco de dados
2. Deploy no Railway
O Railway oferece uma maneira simples de fazer deploy tanto do frontend quanto do backend, com banco de dados PostgreSQL incluso.
Pré-requisitos
  - Conta no Railway
- Git instalado localmente
- Conta no GitHub, GitLab ou Bitbucket
Passo a Passo
  - Importe seu repositório
    
      - Acesse o Painel do Railway
- Clique em “New Project” e selecione “Deploy from GitHub repo”
- Escolha seu repositório e a branch desejada
 
- Configure o Backend
    
      - Adicione as seguintes variáveis de ambiente:
        DJANGO_SETTINGS_MODULE=movie_project.settings.production
DJANGO_SECRET_KEY=sua_chave_secreta_aqui
CORS_ALLOWED_ORIGINS=https://seu-frontend.railway.app
 
- Configure o comando de build: cd backend && pip install -r requirements.txt
- Configure o comando de start: gunicorn movie_project.wsgi:application
- Adicione um banco de dados PostgreSQL no painel do Railway
- Conecte o banco de dados ao seu serviço Django
 
- Configure o Frontend
    
      - Crie um novo serviço para o frontend
- Configure o diretório raiz: frontend
- Configure o comando de build: npm install && npm run build
- Configure o diretório de saída: dist
- Adicione as variáveis de ambiente:
        VITE_API_BASE_URL=https://seu-backend.railway.app
VITE_TMDB_API_KEY=sua_chave_da_tmdb
 
 
- Implante
    
      - O Railway fará o deploy automático a cada push
- Acesse a URL fornecida para testar a aplicação
 
Suporte
Em caso de problemas, consulte a documentação da Render, documentação do Railway ou entre em contato com o suporte da respectiva plataforma.