RDP Monster

Servidor Xtream: instalar o Xtream UI no Ubuntu

Servidor Xtream: instalar o Xtream UI no Ubuntu

O que é, de facto, um servidor Xtream

Um servidor Xtream é uma máquina Linux que executa um painel de gestão de IPTV compatível com a API do Xtream Codes. O painel faz três coisas: recebe streams ao vivo e fontes de vídeo, gere as linhas (contas de utilizador com nome, palavra-passe, data de expiração e limite de conexões) e serve tudo de volta por HTTP através de alguns endpoints bem conhecidos (player_api.php para os metadados, get.php para as playlists M3U, xmltv.php para os dados de EPG). Como quase todas as aplicações cliente de IPTV implementam esta API, \"servidor Xtream\" tornou-se sinónimo de qualquer painel que a exponha, independentemente do software que corre por baixo.

Uma frase sobre o âmbito antes da parte técnica: este guia cobre apenas infraestrutura e administração do painel, e o operador é responsável por deter os direitos de difusão de cada stream distribuído através do painel. Se os conceitos de base são novos para si, comece pela nossa introdução sobre como funciona o IPTV ao nível do protocolo. A terminologia do painel fará muito mais sentido depois disso.

Do Xtream Codes ao Xtream UI e ao XUI.one

O Xtream Codes foi o painel comercial que definiu a categoria. Em setembro de 2019, uma operação policial coordenada pelas autoridades italianas e pela Europol apreendeu a infraestrutura da empresa, e o software nunca voltou a ser vendido nem atualizado. A API do lado do cliente, porém, já era o padrão da indústria, pelo que o ecossistema sobreviveu à empresa.

Dois projetos preencheram o vazio. O Xtream UI é um fork comunitário gratuito construído sobre a última base de código pública 2.9; manteve o painel vivo durante anos, mas o seu desenvolvimento público praticamente estagnou. O XUI.one é um painel comercial de código fechado escrito por um antigo desenvolvedor do Xtream UI e é hoje o sucessor efetivamente mantido. Ambos conservam a mesma API, o mesmo modelo de linhas e as mesmas portas por omissão, razão pela qual os guias de instalação de um se aplicam, em grande medida, ao outro, e o motivo pelo qual este artigo se mantém agnóstico quanto ao fork.

Requisitos do servidor: CPU, RAM e largura de banda

Todos os forks exigem uma instalação limpa e mínima de Ubuntu LTS, e a maioria visa uma versão específica. Verifique a documentação do fork antes de encomendar o servidor, porque instalar na versão errada do Ubuntu é a causa mais comum de uma instalação estragada. O instalador implanta o seu próprio nginx, PHP e MariaDB em /home/xtreamcodes/, por isso nunca o coloque numa máquina que já execute uma stack web ou um painel de controlo de alojamento: vão competir pelas portas e pelos pacotes.

O dimensionamento resume-se a uma pergunta: está a fazer restreaming (a passar os streams intactos) ou transcodificação (a recodificá-los com ffmpeg)? O restreaming quase não consome CPU: o servidor limita-se a copiar bytes entre sockets. A transcodificação por software custa cerca de um núcleo moderno por canal 1080p, e é aí que os orçamentos explodem. Quanto à RAM, 4 GB suportam um pequeno painel de teste; 8 GB ou mais é sensato em produção, quando a cache do MariaDB e alguns processos ffmpeg se acumulam. Mantenha a base de dados em armazenamento SSD.

A largura de banda é pura aritmética: espectadores simultâneos em pico multiplicados pelo bitrate do stream, mais margem. Nenhuma configuração do painel altera essa conta.

Espectadores simultâneos em picoCPU (apenas restreaming)RAMLargura de banda a 8 Mbps por espectador
252 núcleos4 GB~200 Mbps
1004 núcleos8 GB~800 Mbps
2506-8 núcleos16 GB~2 Gbps

Estes valores pressupõem apenas restreaming e um bitrate típico de 8 Mbps em 1080p; a transcodificação multiplica a coluna do CPU, não a da largura de banda. O débito sustentado importa muito mais do que a velocidade de porta anunciada, por isso teste sob carga real. Se preferir dispensar o trabalho de dimensionamento, os nossos servidores criados para cargas de streaming estão dimensionados exatamente para este tipo de utilização com débito sustentado.

Instalar um painel do tipo Xtream UI no Ubuntu

Cada fork traz o seu próprio instalador, mas todos seguem a mesma estrutura em três passos. Os comandos abaixo são deliberadamente genéricos: descarregue o instalador apenas da página oficial de lançamentos do seu fork, nunca de um reupload aleatório, e leia o script antes de o executar como root.

Passo 1: Preparar um sistema limpo

apt update && apt upgrade -y
apt install -y wget unzip python3 net-tools
timedatectl set-timezone UTC

Reinicie se um novo kernel tiver sido instalado e defina o fuso horário com atenção: o agendamento do EPG depende do relógio do sistema, e o desvio produz guias de programação com horas erradas.

Passo 2: Executar o instalador do fork

cd /root
wget "$INSTALLER_URL" -O install.py   # from your fork's official release page
python3 install.py

O script instala a stack incluída, cria a base de dados (o Xtream UI, por exemplo, corre o seu próprio MariaDB em 127.0.0.1:7999 com uma base de dados chamada xtream_iptvpro) e imprime o URL de administração, a porta e as credenciais no final. Registe-os imediatamente: alguns forks geram um caminho ou uma porta de administração aleatórios e não os mostram uma segunda vez.

Passo 3: Primeiro login e verificações básicas

Abra http://your-server-ip:25500 num browser, inicie sessão com as credenciais geradas e mude a palavra-passe de administrador antes de tudo o resto. Depois confirme que os serviços estão realmente à escuta:

ss -tlnp | grep -E '25500|25461'

Deverá ver o nginx incluído no painel ligado a ambas as portas. A partir daí, o trabalho do lado do painel (definir o servidor principal, criar categorias e uma linha de teste) passa-se inteiramente na interface web.

Portas, reverse proxy e TLS

Os valores por omissão herdados do Xtream Codes são 25500 para o painel de administração e 25461 para a saída HTTP destinada aos clientes, a porta a que as linhas se ligam para playlists e streams. Abra apenas o que precisa e bloqueie o resto no firewall; se o seu IP de administração for estático, restrinja-lhe a porta do painel:

ufw allow 22/tcp
ufw allow 25461/tcp
ufw allow from YOUR_ADMIN_IP to any port 25500 proto tcp
ufw enable

Depois verifique o que o mundo exterior realmente vê. O nosso guia sobre como verificar portas abertas no Linux aborda ss, nmap e a diferença entre estar à escuta e estar acessível.

Muitos operadores colocam nginx ou HAProxy à frente da porta dos clientes, na 80, 443 ou 8080, porque algumas redes bloqueiam totalmente portas fora do padrão; o proxy também pode terminar o TLS do painel de administração. Uma ressalva honesta: muitas set-top boxes antigas e aplicações de IPTV continuam a comportar-se melhor em HTTP simples, por isso teste o conjunto real de clientes antes de forçar HTTPS na porta de streaming. E não confunda nada disto com segurança: mudar o painel de administração para uma porta invulgar apenas reduz o ruído dos scanners nos seus logs. O verdadeiro reforço é um firewall estrito, palavras-passe fortes e únicas, TLS na interface de administração e um sistema operativo atualizado.

Backups, monitorização e atualizações

A base de dados é o painel: streams, linhas, bouquets e a configuração do EPG vivem todos no MariaDB. Faça um dump diário e copie-o para fora do servidor:

mysqldump -h 127.0.0.1 -P 7999 -u user_iptvpro -p xtream_iptvpro | gzip > /root/xtream-db-$(date +%F).sql.gz
tar czf /root/xtream-config-$(date +%F).tar.gz /home/xtreamcodes/iptv_xtream_codes/config

Para a monitorização, o dashboard do painel já mostra as conexões ao vivo por stream; acrescente vnstat para a tendência de largura de banda e htop para detetar um processo ffmpeg descontrolado. Contagens elevadas de conexões significam também milhares de sockets abertos, por isso verifique se o instalador aumentou os limites de descritores de ficheiros. A maioria fá-lo, através de ajustes em sysctl e limits.conf, mas confirme. Por fim, seja realista quanto ao software que está a executar: um fork que já não recebe correções deve ser tratado como uma aplicação PHP legada exposta à internet. Mantenha-o num servidor dedicado que não faça mais nada, exponha o mínimo e aplique regularmente os patches do sistema operativo por baixo.

Nada disto exige hardware exótico. Exige uma máquina Ubuntu LTS limpa com acesso root e uma rede que se mantenha estável quando uma centena de sockets consome 8 Mbps cada durante toda a noite. É para isso que os nossos planos de VPS Linux foram criados: CPU e RAM dedicados, largura de banda ilimitada (fair-use), acesso administrativo total sem KYC e entrega cerca de 10 segundos após a confirmação do pagamento. Encomende, execute o instalador e pode estar no ecrã de login do painel dentro de uma hora.

Perguntas frequentes

O Xtream UI continua a ser mantido?

O desenvolvimento público do Xtream UI praticamente estagnou; o XUI.one é o sucessor ativamente mantido.
O fork gratuito Xtream UI teve os seus últimos lançamentos públicos relevantes há anos, e os canais comunitários originais ficaram em silêncio. O XUI.one, painel comercial de código fechado criado por um antigo desenvolvedor do Xtream UI, é onde o desenvolvimento ativo acontece hoje. Se ainda assim usar o Xtream UI, trate-o como software legado: mantenha-o num servidor dedicado e protegido por firewall, restrinja a porta de administração a IPs conhecidos e faça backup diário da base de dados para poder migrar rapidamente.

Qual é a diferença entre um servidor Xtream e um servidor Plex ou Jellyfin?

Plex e Jellyfin são servidores de media pessoais; um painel Xtream é middleware de distribuição de streams ao vivo para múltiplos utilizadores.
O Plex e o Jellyfin indexam uma biblioteca de media local e transmitem-na para os seus próprios dispositivos. Um painel Xtream foi construído em torno de canais ao vivo e da gestão de subscritores: recebe streams, cria linhas (contas de utilizador) com datas de expiração e limites de conexões, e expõe a API do Xtream Codes que as aplicações de IPTV esperam. Se só quer ver os seus próprios ficheiros em casa, o Plex ou o Jellyfin é a ferramenta certa. Um painel Xtream seria apenas peso morto.

Quanta largura de banda consome um stream de IPTV?

Cerca de 2-4 Mbps para SD, 5-10 Mbps para 1080p e 15-25 Mbps para 4K HEVC.
Depende do bitrate da fonte, não do painel: os canais SD ficam normalmente nos 2-4 Mbps, o 1080p em torno de 5-10 Mbps e o 4K HEVC em 15-25 Mbps. Multiplique o bitrate pelos seus espectadores simultâneos em pico para dimensionar o uplink: 100 espectadores em canais de 8 Mbps precisam de cerca de 800 Mbps de upload sustentado, mais margem. O débito sustentado importa mais do que a velocidade de porta anunciada, por isso teste o servidor sob carga real antes de entrar em produção.

Posso instalar um painel Xtream em alojamento partilhado ou ao lado do cPanel?

Não. O painel precisa de um servidor Linux dedicado com acesso root e da sua própria stack web incluída.
Os instaladores do painel implantam as suas próprias builds de nginx, PHP e MariaDB em /home/xtreamcodes/ e ligam-se a portas fixas como 25500 e 25461. O alojamento partilhado não lhe dá acesso root nem portas livres, e painéis de controlo como o cPanel ou o Plesk entram em conflito direto com a stack incluída. A plataforma mínima viável é um VPS ou servidor dedicado Ubuntu LTS limpo que não execute mais nada.

Adrien Roche, Editor de infraestrutura e hospedagem

Engenheiro de sistemas com mais de 10 anos operando frotas de Windows Server e Linux. Adrien mantém a documentação de infraestrutura do rdp.monster e escreve nossos guias sobre RDP, hospedagem VPS, administração de servidores, redes e ferramentas de privacidade.

Cadastre-se no nosso programa de revendedor

Seus dados

Se tiver alguma dúvida, contact us by clicking here !
Nome(Obrigatório)
Digite seu endereço de e-mail, você precisa ter uma conta em manager.rdp.monster !

Sua empresa

Digite o endereço do seu site, se tiver um
Explique rapidamente como você vai vender os serviços aos seus clientes. Por exemplo, conversando com pessoas em fóruns.

Usamos cookies !

Usamos cookies para melhorar sua experiência de navegação, exibir anúncios ou conteúdo personalizados e analisar nosso tráfego. Ao clicar em «Aceitar», você consente com nosso uso de cookies.