RDP Monster

Xtream Server Setup Guide: Install Xtream UI on Ubuntu

Xtream Server Setup Guide: Install Xtream UI on Ubuntu

What an Xtream server actually is

An Xtream server is a Linux machine running an IPTV management panel that speaks the Xtream Codes API. The panel does three jobs: it ingests live streams and video sources, it manages lines (user accounts with a username, password, expiry date and a connection limit), and it serves everything back out over HTTP through a handful of well-known endpoints (player_api.php for metadata, get.php for M3U playlists, xmltv.php for EPG data). Because nearly every IPTV client app implements this API, "Xtream server" has become shorthand for any panel that exposes it, whatever software actually runs underneath.

One sentence of scope before the technical part: this guide covers infrastructure and panel administration only, and the operator is responsible for holding the broadcasting rights to every stream distributed through the panel. If the underlying concepts are new to you, start with our primer on how IPTV works at the protocol level. The panel's terminology will make much more sense afterwards.

From Xtream Codes to Xtream UI and XUI.one

Xtream Codes was the commercial panel that defined the category. In September 2019, a law-enforcement operation coordinated by Italian authorities and Europol seized the company's infrastructure, and the software was never sold or updated again. The client-side API, however, was already the industry standard, so the ecosystem outlived the company.

Two projects filled the gap. Xtream UI is a free community fork built on the last public 2.9 codebase; it kept the panel alive for years, but its public development has largely stalled. XUI.one is a closed-source commercial panel written by a former Xtream UI developer and is the de facto maintained successor today. Both keep the same API, the same line model and the same default ports, which is why installation guides for one mostly apply to the other, and why this article stays fork-agnostic.

Server requirements: CPU, RAM and bandwidth

Every fork wants a fresh, minimal Ubuntu LTS installation, and most target one specific release. Check the fork's documentation before ordering the server, because installing on the wrong Ubuntu version is the most common cause of a broken install. The installer deploys its own bundled nginx, PHP and MariaDB under /home/xtreamcodes/, so never put it on a machine that already runs a web stack or a hosting control panel: they will fight over ports and packages.

Sizing comes down to one question: are you restreaming (passing streams through untouched) or transcoding (re-encoding them with ffmpeg)? Restreaming barely touches the CPU: the server mostly copies bytes between sockets. Software transcoding costs roughly one modern core per 1080p channel, which is where budgets explode. For RAM, 4 GB runs a small test panel; 8 GB or more is sensible in production once MariaDB caching and a few ffmpeg processes stack up. Keep the database on SSD storage.

Bandwidth is pure arithmetic: peak concurrent viewers multiplied by stream bitrate, plus headroom. No panel setting changes that math.

Peak concurrent viewersCPU (restream only)RAMBandwidth at 8 Mbps per viewer
252 cores4 GB~200 Mbps
1004 cores8 GB~800 Mbps
2506-8 cores16 GB~2 Gbps

These figures assume restreaming only and a typical 8 Mbps 1080p bitrate; transcoding multiplies the CPU column, not the bandwidth one. Sustained throughput matters far more than the advertised port speed, so test under real load. If you would rather skip the sizing homework, our servers built for streaming workloads are dimensioned for exactly this kind of sustained-throughput usage.

Installing an Xtream UI-style panel on Ubuntu

Every fork ships its own installer, but they all follow the same three-step shape. The commands below are deliberately generic: download the installer only from your fork's official release page, never from a random re-upload, and read the script before running it as root.

Step 1: Prepare a clean system

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

Reboot if a new kernel was installed, and set the timezone deliberately: EPG scheduling depends on the system clock, and drift produces programme guides that are off by hours.

Step 2: Run the fork's installer

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

The script installs the bundled stack, creates the database (Xtream UI, for example, runs its own MariaDB on 127.0.0.1:7999 with a database named xtream_iptvpro) and prints the admin URL, port and credentials when it finishes. Record them immediately: some forks generate a randomized admin path or port and will not display it a second time.

Step 3: First login and sanity checks

Open http://your-server-ip:25500 in a browser, log in with the generated credentials and change the admin password before anything else. Then confirm the services are actually listening:

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

You should see the panel's bundled nginx bound to both ports. From there, the panel-side work (defining the main server, creating categories and a test line) happens entirely in the web interface.

Ports, reverse proxy and TLS

The defaults inherited from Xtream Codes are 25500 for the admin panel and 25461 for client-facing HTTP output (the port lines connect to for playlists and streams). Open only what you need and firewall the rest; if your admin IP is static, restrict the panel port to it:

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

Then verify what the outside world actually sees. Our guide to checking open ports on Linux covers ss, nmap and the difference between listening and reachable.

Many operators put nginx or HAProxy in front of the client port on 80, 443 or 8080, because some networks block non-standard ports outright; the proxy can also terminate TLS for the admin panel. One honest caveat: plenty of older set-top boxes and IPTV apps still behave better over plain HTTP, so test your actual client mix before forcing HTTPS on the streaming port. And do not mistake any of this for security: moving the admin panel to an unusual port only reduces scanner noise in your logs. Real hardening is a strict firewall, strong unique passwords, TLS on the admin interface and an up-to-date OS.

Backups, monitoring and updates

The database is the panel: streams, lines, bouquets and EPG configuration all live in MariaDB. Dump it daily and copy the dump off the server:

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

For monitoring, the panel dashboard already shows live connections per stream; add vnstat for the bandwidth trend and htop to spot a runaway ffmpeg process. High connection counts also mean thousands of open sockets, so verify that the installer raised the file-descriptor limits. Most do, via sysctl and limits.conf tweaks, but check. Finally, be realistic about the software you are running: a fork that no longer receives patches should be treated as a legacy internet-facing PHP application. Keep it on a dedicated server that does nothing else, expose the minimum, and patch the OS underneath it regularly.

None of this needs exotic hardware. It needs a clean Ubuntu LTS box with root access and a network that stays flat when a hundred sockets each pull 8 Mbps all evening. That is what our Linux VPS plans are built for: dedicated CPU and RAM, unlimited (fair-use) bandwidth, full admin access with no KYC, and delivery about 10 seconds after payment confirms. Order, run the installer, and you can be at the panel login screen within the hour.

Frequently Asked Questions

Is Xtream UI still maintained?

Public development of Xtream UI has largely stalled; XUI.one is the actively maintained successor.
The free Xtream UI fork saw its last significant public releases years ago, and its original community channels have gone quiet. XUI.one, a closed-source commercial panel from a former Xtream UI developer, is where active development happens today. If you run Xtream UI anyway, treat it as legacy software: keep it on a dedicated, firewalled server, restrict the admin port to known IPs, and back up the database daily so you can migrate quickly.

What is the difference between an Xtream server and a Plex or Jellyfin server?

Plex and Jellyfin are personal media servers; an Xtream panel is multi-user live-stream distribution middleware.
Plex and Jellyfin index a local media library and stream it to your own devices. An Xtream panel is built around live channels and subscriber management: it ingests streams, creates lines (user accounts) with expiry dates and connection limits, and exposes the Xtream Codes API that IPTV apps expect. If you only want to watch your own files at home, Plex or Jellyfin is the right tool; an Xtream panel would be pointless overhead.

How much bandwidth does one IPTV stream use?

Roughly 2-4 Mbps for SD, 5-10 Mbps for 1080p, and 15-25 Mbps for 4K HEVC.
It depends on the source bitrate, not on the panel: SD channels typically run 2-4 Mbps, 1080p around 5-10 Mbps, and 4K HEVC 15-25 Mbps. Multiply the bitrate by your peak concurrent viewers to size the uplink: 100 viewers on 8 Mbps channels need about 800 Mbps of sustained upload, plus headroom. Sustained throughput matters more than the advertised port speed, so test the server under real load before going live.

Can I install an Xtream panel on shared hosting or alongside cPanel?

No, the panel needs a dedicated Linux server with root access and its own bundled web stack.
Panel installers deploy their own nginx, PHP and MariaDB builds under /home/xtreamcodes/ and bind to fixed ports such as 25500 and 25461. Shared hosting gives you neither root access nor free ports, and control panels like cPanel or Plesk conflict directly with the bundled stack. The minimum viable platform is a clean Ubuntu LTS VPS or dedicated server that runs nothing else.

Adrien Roche, Infrastructure & Hosting Editor

Systems engineer with 10+ years operating Windows Server and Linux fleets. Adrien runs the rdp.monster infrastructure documentation and writes our guides on RDP, VPS hosting, server administration, networking and privacy tooling.

Register to our reseller program

Your information

If you have any question, contact us by clicking here !
Name(Required)
Enter your email address, you must have an account on manager.rdp.monster !

Your company

Enter your website address if you have one
Quickly explain how you're going to sell services to your customers. For example, talk to people on forums.

We're using cookies!

We use cookies to enhance your browsing experience, serve personalized ads or content, and analyze our traffic. By clicking "Accept", you consent to our use of cookies.