Este projeto é um sistema completo de gerenciamento de streaming com integração ao WHMCS e servidor Wowza.
- Login/Registro com JWT
- Middleware de autenticação
- Integração com WHMCS para criação automática de contas
- Pastas: Organização de vídeos por pastas
- Vídeos: Upload via SSH, listagem e reprodução
- Playlists: Criação e gerenciamento de playlists
- Agendamentos: Sistema de agendamento de transmissões
- Comerciais: Configuração de inserção de comerciais
- NOVO: Upload direto para servidor Wowza via SSH
- NOVO: Estrutura de pastas automática por usuário
- NOVO: Verificação de espaço em disco antes do upload
- Iniciar Transmissão: Interface completa para iniciar streams
- Múltiplas Plataformas: YouTube, Facebook, Instagram, Twitch, etc.
- Configurações Avançadas: Logos, qualidade, bitrate
- Relay RTMP: Sistema de relay 24/7
- Espectadores: Análise detalhada de audiência
- Geolocalização: Mapa mundial de espectadores
- Estatísticas: Tempo real e histórico
- Download YouTube: Baixar vídeos do YouTube
- Migração FTP: Migrar vídeos de servidores FTP
- Players: Múltiplos tipos de players para diferentes dispositivos
- Configuração automática de aplicações
- Push para múltiplas plataformas
- Gerenciamento de streams
- Estatísticas em tempo real
- NOVO: Upload direto via SSH para servidores Wowza
- NOVO: Estrutura de pastas organizada por usuário
- NOVO: Gerenciamento automático de diretórios remotos
Host: 104.251.209.68
Porta: 35689
Usuário: admin
Senha: Adr1an@
Database: db_SamCast
Host: 51.222.156.223
Porta: 6980
Usuário: admin
Senha: FK38Ca2SuE6jvJXed97VMn
Aplicação: live
# Nova estrutura seguindo padrão de referência:
# Estrutura de diretórios no servidor:
# /home/streaming/
# ├── {usuario1}/
# │ ├── {pasta1}/
# │ │ └── video1.mp4
# │ ├── {pasta2}/
# │ │ └── video2.mp4
# │ ├── logos/
# │ ├── recordings/
# └── {usuario2}/
# └── {pasta}/
# └── video.mp4
#
# Configurações do Wowza:
# /usr/local/WowzaStreamingEngine-4.8.0/conf/
# ├── {usuario1}/
# │ ├── Application.xml
# │ ├── aliasmap.play.txt
# │ ├── aliasmap.stream.txt
# │ └── publish.password
# └── {usuario2}/
# ├── Application.xml
# ├── aliasmap.play.txt
# ├── aliasmap.stream.txt
# └── publish.password
/home/streaming/
├── {usuario1}/
│ ├── .ftpquota # Controle de quota em bytes
│ ├── playlists_agendamentos.smil # Arquivo SMIL para agendamentos
│ ├── {pasta1}/
│ │ ├── video1.mp4
│ │ └── video2.avi
│ ├── logos/
│ │ └── logo.png
│ └── recordings/
│ └── gravacao_live.mp4
└── {usuario2}/
├── .ftpquota
├── playlists_agendamentos.smil
└── default/
└── video.mp4
# Banco de dados
DB_HOST=104.251.209.68
DB_PORT=35689
DB_USER=admin
DB_PASSWORD=Adr1an@
DB_NAME=db_SamCast
# Wowza
WOWZA_HOST=51.222.156.223
WOWZA_PORT=6980
WOWZA_USER=admin
WOWZA_PASSWORD=FK38Ca2SuE6jvJXed97VMn
WOWZA_APPLICATION=live
# JWT
JWT_SECRET=sua_chave_secreta_super_segura_aqui
POST /api/auth/login
- LoginPOST /api/auth/register
- RegistroGET /api/auth/me
- Dados do usuário
GET /api/streaming/status
- Status da transmissãoPOST /api/streaming/start
- Iniciar transmissãoPOST /api/streaming/stop
- Parar transmissãoGET /api/streaming/platforms
- Plataformas disponíveisPOST /api/streaming/configure-platform
- Configurar plataforma
GET /api/relay/status
- Status do relayPOST /api/relay/start
- Iniciar relayPOST /api/relay/stop
- Parar relayPOST /api/relay/validate-url
- Validar URL
GET /api/folders
- Listar pastasGET /api/videos
- Listar vídeosGET /api/playlists
- Listar playlistsGET /api/agendamentos
- Listar agendamentosGET /api/comerciais
- Configurações de comerciais
POST /api/downloadyoutube
- Download do YouTubePOST /api/ftp/connect
- Conectar FTPPOST /api/ftp/migrate
- Migrar vídeos FTP
POST /api/whmcs/webhook
- Webhook do WHMCSGET /api/whmcs/test
- Teste da integração
- Node.js 18+
- Acesso ao banco MySQL configurado
- Servidor Wowza configurado
- NOVO: Acesso SSH aos servidores Wowza
# Instalar dependências
npm install
# Instalar dependências do backend
cd backend
npm install
cd ..
# Executar frontend e backend
npm run dev
# Ou separadamente:
npm run dev:frontend # Frontend na porta 3000
npm run dev:backend # Backend na porta 3001
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001/api
- Health Check: http://localhost:3001/api/health
Após o deploy, o sistema estará disponível em:
- Frontend: http://samhost.wcore.com.br
- Backend API: http://samhost.wcore.com.br:3001/api
- Health Check: http://samhost.wcore.com.br:3001/api/health
- Player iFrame: http://samhost.wcore.com.br:3001/api/player-port/iframe
- Streaming RTMP: rtmp://samhost.wcore.com.br:1935/{usuario}
- Streaming HLS: http://samhost.wcore.com.br:1935/{usuario}/{usuario}_live/playlist.m3u8
- Vídeos VOD: http://samhost.wcore.com.br:1935/{usuario}/_definst_/mp4:{pasta}/{arquivo}/playlist.m3u8
- Configuração Wowza: Cada usuário tem sua própria aplicação
- Copie o arquivo
stmvideoadvance.php
para/modules/servers/
- Configure o servidor no WHMCS:
- Name: Nome do servidor
- Hostname: URL da API (ex: http://localhost:3001)
- IP Address: Chave API (não usado atualmente)
Configure o webhook no WHMCS para apontar para:
http://seu-dominio.com/api/whmcs/webhook
Configure os produtos com as seguintes opções:
- Espectadores: Número máximo de espectadores
- Bitrate: Limite de bitrate
- Espaço FTP: Espaço em megabytes
- Aplicação: live, tvstation, vod, ipcamera
- Idioma: pt-br, en-us, es
- Visão geral das transmissões
- Player universal integrado
- Estatísticas em tempo real
- Atalhos para principais funcionalidades
- Configuração de múltiplas plataformas
- Upload e gerenciamento de logos
- Configurações avançadas de transmissão
- Preview em tempo real
- Upload de vídeos com drag & drop
- Organização por pastas
- Player integrado
- Suporte a múltiplos formatos
- Criação com drag & drop
- Reordenação de vídeos
- Preview de playlists
- Integração com agendamentos
- Calendário visual
- Agendamento recorrente
- Múltiplas frequências
- Playlist de finalização
- Mapa mundial em tempo real
- Análise por país/dispositivo
- Histórico de audiência
- Exportação de dados
- Player universal responsivo
- Múltiplos tipos de incorporação
- Configurações personalizáveis
- Códigos prontos para uso
- Autenticação JWT
- Validação de propriedade de recursos
- Sanitização de uploads
- Rate limiting (recomendado para produção)
- CORS configurado
- Health check endpoint
- Logs estruturados
- Métricas de performance
- Alertas de erro (recomendado para produção)
- Configure as variáveis de ambiente
- Execute as migrações do banco
- Configure o servidor web (Nginx/Apache)
- Configure SSL/TLS
- Configure monitoramento
# Dockerfile exemplo para produção
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3001
CMD ["npm", "start"]
- ✅ Upload direto via SSH para Wowza
- ✅ Estrutura de pastas organizada por usuário
- ✅ Gerenciamento automático de diretórios remotos
- ✅ Verificação de espaço em disco
- ✅ Implementar cache Redis
- ✅ Adicionar testes automatizados
- ✅ Configurar CI/CD
- ✅ Implementar logs estruturados
- ✅ Adicionar métricas de performance
- ✅ Configurar backup automático
- Fork o projeto
- Crie uma branch para sua feature
- Commit suas mudanças
- Push para a branch
- Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.