Sua plataforma de streaming gratuita e open-source
Features • Demo • Começando • Contribuindo • Arquitetura
O Superflix é uma plataforma de streaming moderna desenvolvida em Next.js 16 que permite assistir filmes, séries, animes e TV ao vivo. O projeto utiliza a API do TMDB para metadados e a SuperflixAPI para reprodução de conteúdo.
Criado por @TheusNattan - Desenvolvedor apaixonado por criar experiências incríveis.
- 🆓 100% Gratuito - Sem assinaturas, sem cobranças
- 🚀 Super Rápido - Otimizado com Next.js 16 e Turbopack
- 📱 Responsivo - Funciona perfeitamente em qualquer dispositivo
- 🌙 Dark Mode - Interface elegante e confortável
- 🔒 Open Source - Código aberto para a comunidade
- Filmes - Catálogo completo com milhares de títulos
- Séries - Episódios organizados por temporada
- Animes - Seção dedicada para fãs de anime
- TV ao Vivo - Canais brasileiros em tempo real
- 🔍 Busca Inteligente - Encontre qualquer conteúdo rapidamente
- 📅 Calendário de Lançamentos - Acompanhe novos episódios
- ❤️ Favoritos - Salve seus conteúdos preferidos
- 📊 Histórico - Continue de onde parou
- 👤 Sistema de Contas - Perfis personalizados
- 🔐 Painel Admin - Gerencie a plataforma
- Proxy Inteligente - Bypass de restrições com DNS over HTTPS
- HLS Streaming - Reprodução suave e adaptativa
- Cache Otimizado - Carregamento ultra-rápido
- PWA Ready - Instale como aplicativo
Acesse a versão live do Superflix:
- Node.js 18+ - Download
- Git - Download
- Conta TMDB - Criar conta (gratuito)
# 1. Clone o repositório
git clone https://github.com/TheusN/superflix.git
# 2. Entre na pasta do projeto
cd superflix
# 3. Instale as dependências
npm install
# 4. Configure as variáveis de ambiente
cp .env.example .env.localEdite o arquivo .env.local:
# OBRIGATÓRIO - Pegue sua chave em: https://www.themoviedb.org/settings/api
NEXT_PUBLIC_TMDB_API_KEY=sua_chave_tmdb_aqui
# OPCIONAL - Banco de dados (sem isso, usa memória)
POSTGRES_URL=postgres://usuario:senha@host:5432/database
# OPCIONAL - Segredo para JWT (tem valor padrão para dev)
JWT_SECRET=seu_segredo_super_secreto
⚠️ IMPORTANTE: Nunca compartilhe seu arquivo.env.localou faça commit dele no Git!
# Modo desenvolvimento (com hot-reload)
npm run dev
# Acesse: http://localhost:3000# Gerar build otimizado
npm run build
# Iniciar servidor de produção
npm run startsuperflix/
├── 📂 public/ # Assets estáticos (imagens, ícones)
├── 📂 src/
│ ├── 📂 app/
│ │ ├── 📂 (auth)/ # Login, Registro
│ │ ├── 📂 (main)/ # Home, Filmes, Séries, TV, etc
│ │ └── 📂 api/ # Rotas da API REST
│ │ ├── 📂 auth/ # Autenticação
│ │ ├── 📂 proxy/ # Sistema de proxy (embed, hls, asset)
│ │ └── 📂 tv/ # Canais de TV
│ ├── 📂 components/ # Componentes React reutilizáveis
│ ├── 📂 context/ # Providers (Auth, Theme, Toast)
│ ├── 📂 lib/ # Utilitários e configurações
│ ├── 📂 services/ # Integrações (TMDB, EmbedTV)
│ └── 📂 types/ # Definições TypeScript
├── 📄 .env.local # Variáveis de ambiente (criar)
├── 📄 AGENT.md # Instruções para agentes de IA
├── 📄 next.config.ts # Configuração Next.js
├── 📄 tailwind.config.ts # Configuração Tailwind
└── 📄 package.json # Dependências
Este projeto é compatível com ferramentas de vibe coding - desenvolvimento assistido por IA como Claude Code, Cursor, GitHub Copilot, etc.
O arquivo AGENT.md contém todas as instruções que os agentes de IA precisam para entender e modificar o código corretamente:
- Arquitetura do projeto
- Comandos disponíveis
- Estrutura de pastas
- Convenções de código
- Variáveis de ambiente
- Fluxo de autenticação
- Configuração do banco de dados
- Claude Code: O arquivo é lido automaticamente
- Cursor: Adicione
AGENT.mdao contexto ou use@AGENT.md - Copilot Chat: Mencione o arquivo nas conversas
- Outros: Copie o conteúdo para o prompt inicial
# Bons prompts para começar:
"Leia o AGENT.md e me explique a arquitetura do projeto"
"Adicione uma nova página de detalhes para atores"
"Corrija o bug de autenticação no middleware"
"Implemente cache de imagens no componente ContentCard"Mantenha o AGENT.md atualizado! Quando fizer mudanças significativas na arquitetura, atualize o arquivo para que a IA continue entendendo o projeto.
Contribuições são muito bem-vindas! O Superflix é um projeto da comunidade, para a comunidade.
-
Fork o repositório
# Clique em "Fork" no GitHub ou use: gh repo fork TheusN/superflix -
Clone seu fork
git clone https://github.com/SEU_USUARIO/superflix.git cd superflix -
Crie uma branch para sua feature
git checkout -b feature/minha-feature-incrivel
-
Faça suas alterações
# Desenvolva sua feature... npm run dev # Teste localmente npm run lint # Verifique erros
-
Commit suas mudanças
git add . git commit -m "feat: adiciona minha feature incrível"
-
Push para seu fork
git push origin feature/minha-feature-incrivel
-
Abra um Pull Request
- Vá para o repositório original
- Clique em "New Pull Request"
- Selecione sua branch
- Descreva suas mudanças
Usamos Conventional Commits:
| Tipo | Descrição |
|---|---|
feat: |
Nova feature |
fix: |
Correção de bug |
docs: |
Documentação |
style: |
Formatação (sem mudança de código) |
refactor: |
Refatoração |
test: |
Testes |
chore: |
Tarefas de manutenção |
- 🐛 Encontrou um bug? Abra uma issue
- 💡 Tem uma ideia? Proponha uma feature
- 📝 Melhorar docs? PRs são bem-vindos!
- 🌍 Tradução? Ajude a internacionalizar!
- 🎨 Designer? Proponha melhorias de UI/UX!
| Tecnologia | Versao | Uso |
|---|---|---|
| Next.js | 16 | Framework React com App Router |
| React | 19 | Biblioteca de UI |
| TypeScript | 5 | Tipagem estatica |
| Tailwind CSS | 4 | Estilizacao |
| Supabase | - | Banco de dados PostgreSQL |
| API | Descrição |
|---|---|
| TMDB | Metadados de filmes/séries (posters, sinopses, etc) |
| SuperflixAPI | Reprodução de conteúdo via embed |
| EmbedTV | Canais de TV ao vivo |
O Superflix utiliza um sistema inteligente de proxy para contornar restrições:
Cliente → Next.js API → DNS over HTTPS (Cloudflare) → Conteúdo
- Cloudflare DoH - Resolução DNS segura
- Interceptors JS - Reescrita de URLs em tempo real
- HLS Proxy - Streaming adaptativo
O Superflix usa Supabase como banco de dados PostgreSQL.
- Dados armazenados em memoria (perdem ao reiniciar)
- Historico e favoritos salvos no localStorage do navegador
- Ideal para testes e desenvolvimento local
- Dados persistentes no PostgreSQL via Supabase
- Sincronizacao entre dispositivos
- Historico de visualizacao
- Favoritos do usuario
- Sistema de contas/autenticacao
- Painel administrativo
- Crie uma conta em supabase.com
- Crie um novo projeto
- Obtenha as credenciais em Settings > API e Settings > Database
- Configure o
.env.local:
# Supabase
NEXT_PUBLIC_SUPABASE_URL="https://seu-projeto.supabase.co"
NEXT_PUBLIC_SUPABASE_ANON_KEY="sua-anon-key"
SUPABASE_URL="https://seu-projeto.supabase.co"
SUPABASE_SERVICE_ROLE_KEY="sua-service-role-key"
SUPABASE_JWT_SECRET="seu-jwt-secret"
# PostgreSQL (para scripts)
POSTGRES_URL="postgres://postgres.[ref]:[password]@aws-0-us-east-1.pooler.supabase.com:6543/postgres"
# JWT
JWT_SECRET="mesmo-valor-do-supabase-jwt-secret"- Crie as tabelas executando
database/schema.sqlno SQL Editor do Supabase
Veja mais detalhes em database/README.md
| Tabela | Descricao |
|---|---|
users |
Usuarios registrados |
watch_history |
Historico de visualizacao |
favorites |
Conteudos favoritos |
system_settings |
Configuracoes do sistema |
admin_logs |
Logs de acoes administrativas |
| Variavel | Tipo | Exposicao |
|---|---|---|
NEXT_PUBLIC_TMDB_API_KEY |
Publica | Exposta no cliente (normal para TMDB) |
NEXT_PUBLIC_SUPABASE_URL |
Publica | URL publica do Supabase |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Publica | Chave publica do Supabase |
SUPABASE_SERVICE_ROLE_KEY |
Privada | Nunca exposta - apenas servidor |
SUPABASE_JWT_SECRET |
Privada | Nunca exposta - apenas servidor |
JWT_SECRET |
Privada | Nunca exposta - apenas servidor |
POSTGRES_URL |
Privada | Nunca exposta - apenas servidor |
- Nunca faça commit de
.env.local- já está no.gitignore - Use JWT_SECRET forte em produção - mínimo 32 caracteres aleatórios
- POSTGRES_URL é sensível - contém usuário e senha do banco
- Senhas são hasheadas - usando bcrypt com salt
# Linux/Mac
openssl rand -base64 32
# Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"- ✅ Credenciais do banco de dados (POSTGRES_URL)
- ✅ Segredo JWT (JWT_SECRET)
- ✅ Senhas dos usuários (hasheadas com bcrypt)
- ✅ Tokens de autenticação (HttpOnly cookies)
⚠️ NEXT_PUBLIC_TMDB_API_KEY- API pública do TMDB (por design)
A chave do TMDB é pública por design - ela só permite leitura de metadados públicos de filmes/séries.
- Clique no botão acima
- Configure as variáveis de ambiente
- Deploy!
| Variavel | Obrigatorio | Descricao |
|---|---|---|
NEXT_PUBLIC_TMDB_API_KEY |
Sim | Chave da API TMDB |
NEXT_PUBLIC_SUPABASE_URL |
Sim | URL do projeto Supabase |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Sim | Chave publica do Supabase |
SUPABASE_URL |
Sim | URL do projeto Supabase (servidor) |
SUPABASE_SERVICE_ROLE_KEY |
Sim | Chave de servico do Supabase |
SUPABASE_JWT_SECRET |
Sim | Segredo JWT do Supabase |
JWT_SECRET |
Sim | Mesmo valor do SUPABASE_JWT_SECRET |
POSTGRES_URL |
Opcional | URL PostgreSQL (para scripts) |
O Superflix funciona em qualquer plataforma que suporte Next.js:
- Railway
- Render
- DigitalOcean
- AWS Amplify
- Docker
npm run dev # Servidor de desenvolvimento
npm run build # Build de producao
npm run start # Iniciar producao
npm run lint # Verificar codigo
npm run db:setup # Configurar banco de dados- TMDB - Pela incrível API de metadados
- Next.js - Framework extraordinário
- Vercel - Hospedagem e infraestrutura
- Comunidade Open Source - Por todo o suporte
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
TheusNattan - Criador do Superflix
- GitHub: @TheusN
⭐ Se você gostou do projeto, deixe uma estrela!
Feito com ❤️ por TheusNattan e contribuidores
