Preloader
Installation Guide

How to Install XUI.ONE IPTV Panel - The Complete 2026 Guide

A clear, no-fluff walkthrough for installing the XUI.ONE panel on a fresh Ubuntu server, with the exact commands, fixes, and production-ready tips.


What Is XUI.ONE and Why Is Everyone Searching for It?

XUI.ONE is a free, continued fork of the original Xtream UI project, which itself was a community rebuild of the legendary Xtream Codes panel after its 2019 takedown. If you have landed here searching for “how to install XUI.ONE”, “XUI panel install”, or “XUI one ubuntu setup”, you are in the right place.

XUI.ONE gives small IPTV operators a starting point with a web-based admin dashboard, MAG emulation, HLS/RTMP output, a reseller system, and built-in transcoding through FFmpeg. It is popular because it is free and feature-rich on paper. But like every free panel, it comes with caveats that we will cover at the end of this guide.

Fair disclosure: We maintain the Xtream-Masters OTT Panel, a modern, commercial alternative. This article is a genuine installation tutorial for XUI.ONE — not a disguised sales page. After the full install, we compare the two so you can choose with full information.

Before You Start: Server Requirements for XUI.ONE

XUI.ONE is not a lightweight piece of software. Even an empty panel with no streams added consumes noticeable RAM due to PHP-FPM workers and its DB schema. Minimum specs we recommend:

  • Operating System: Ubuntu 20.04 LTS (recommended), Ubuntu 22.04 is possible with workarounds.
  • CPU: 4 vCPU minimum for a small panel; 8+ vCPU for anything past 100 concurrent users.
  • RAM: 8 GB minimum, 16 GB is the realistic starting point for production.
  • Disk: 40 GB SSD, 100 GB+ if you plan to run VOD.
  • Network: 1 Gbps port (10 Gbps for resellers with 500+ concurrent lines).
  • Access: A clean root SSH session. XUI.ONE will not install cleanly alongside cPanel, Plesk, or an existing LAMP stack.
Important: XUI.ONE does not officially support Ubuntu 24.04 at the time of writing. Installing on 24.04 requires several Python 2 and OpenSSL 1.1 compatibility patches. If you want 24.04 specifically, see our dedicated XUI.ONE Ubuntu 24.04 install guide.

1Prepare Your Server

Log in to your server as root over SSH. If your provider gave you a non-root user, switch to root first:

sudo -i

Update the package index and install the basic tools the installer needs:

apt-get update apt-get upgrade -y apt-get install -y nano wget curl unzip sudo software-properties-common

Set a proper hostname (some XUI.ONE scripts misbehave with the default cloud hostname):

hostnamectl set-hostname xuipanel.yourdomain.tld echo "127.0.0.1 xuipanel.yourdomain.tld" >> /etc/hosts

Disable ufw during installation (you will re-enable it afterwards):

ufw disable

Reboot once to make sure kernel updates are applied:

reboot

2Install MariaDB & Create the Database

XUI.ONE uses MariaDB (a drop-in MySQL replacement). Install the stable version:

apt-get install -y mariadb-server mariadb-client systemctl enable mariadb systemctl start mariadb

Run the secure installation wizard and answer the prompts:

mysql_secure_installation
  • Enter current root password: press Enter (none yet).
  • Switch to unix_socket authentication: N.
  • Change root password: Y → enter a strong password and save it somewhere safe.
  • Remove anonymous users: Y.
  • Disallow remote root login: Y.
  • Remove test database: Y.
  • Reload privilege tables: Y.

Create the XUI.ONE database and its user:

mysql -u root -p
CREATE DATABASE xui_one DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'xui_user'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD_HERE'; GRANT ALL PRIVILEGES ON xui_one.* TO 'xui_user'@'localhost'; FLUSH PRIVILEGES; EXIT;

Open the MariaDB config and allow larger packets (XUI.ONE ships large migration files):

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Under the [mysqld] section add or update these lines:

max_allowed_packet=256M innodb_buffer_pool_size=1G wait_timeout=28800 max_connections=500

Save and restart MariaDB:

systemctl restart mariadb

3Run the XUI.ONE Installer

XUI.ONE is distributed via a shell installer. Grab the current copy and run it:

cd /tmp wget -O install.sh https://xui.one/install.sh chmod +x install.sh bash install.sh
Note: If the XUI.ONE mirror returns a 404 or times out (it has happened several times), use our community mirror:
wget -O install.sh https://xtream-masters.com/guide/resources.php?file=xui-one/install.sh chmod +x install.sh bash install.sh

The installer will prompt you for:

  1. Installation type → choose main for the primary admin panel. Pick load_balancer only if this server will only receive streams.
  2. MySQL host127.0.0.1.
  3. MySQL root password → the one you set in step 2.
  4. Admin panel port → default 8080 is fine (or change for security).
  5. Client port → default 2086 for the HLS/HTTP output.
  6. Time zone → set to your country (Europe/London, America/New_York, etc.).

The installer downloads FFmpeg, Nginx, PHP, the web UI, and seeds the database. On an average VPS expect this to take 5 to 10 minutes. Do not close the SSH session during this step.

4First Login & Initial Setup

When the installer finishes, it prints your URLs. Open them in a browser:

Admin panel: http://YOUR_SERVER_IP:8080 Client URL: http://YOUR_SERVER_IP:2086

The default credentials are:

  • Username: admin
  • Password: admin
Change these immediately. XUI.ONE is aggressively crawled by bots the moment the port opens. Go to Management → Admins and set a strong password, and consider changing the admin port from 8080 to something non-standard.

Once in, walk through these initial settings:

  • Settings → General: Set your panel name, default language, and timezone.
  • Settings → Servers: Verify the main server appears with the correct public IP.
  • Settings → Transcoding profiles: Disable any profile you are not using to save CPU.
  • Management → Packages: Create at least one user package before you onboard any customers.

5Post-Install Fixes (Essential)

Fresh XUI.ONE installs ship with a few rough edges that will bite you in production. Apply these fixes now, not later.

Fix 1: File Descriptor Limits

XUI.ONE opens one file descriptor per stream. The default Ubuntu limit (1024) caps you around 300 concurrent users.

nano /etc/security/limits.conf

Add at the end:

* soft nofile 655350 * hard nofile 655350 root soft nofile 655350 root hard nofile 655350

Also edit /etc/systemd/system.conf and /etc/systemd/user.conf and set:

DefaultLimitNOFILE=655350

Reboot for the change to take effect.

Fix 2: TCP Tuning for High Concurrency

nano /etc/sysctl.conf

Append:

net.core.somaxconn = 65535 net.core.netdev_max_backlog = 65535 net.ipv4.tcp_max_syn_backlog = 65535 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 1024 65535

Apply:

sysctl -p

Fix 3: PHP-FPM Workers

XUI.ONE uses a bundled PHP-FPM in /home/xui/content/php/etc/php-fpm.conf. Open it and increase pool size:

pm = dynamic pm.max_children = 200 pm.start_servers = 20 pm.min_spare_servers = 10 pm.max_spare_servers = 30 pm.max_requests = 1000

Fix 4: Enable UFW with the Right Ports

ufw allow 22/tcp ufw allow 8080/tcp ufw allow 2086/tcp ufw allow 2095/tcp ufw allow 25461/tcp ufw --force enable

Fix 5: Daily Database Backup Cron

mkdir -p /root/backups echo '0 3 * * * root mysqldump -u root -pYOURPASS xui_one | gzip > /root/backups/xui_one_$(date +\%F).sql.gz' > /etc/cron.d/xui-backup echo '0 4 * * * root find /root/backups -name "*.sql.gz" -mtime +14 -delete' >> /etc/cron.d/xui-backup

Common XUI.ONE Installation Errors & Fixes

“Port 8080 is already in use”

Another service (Apache, Tomcat, a leftover Nginx) is bound to 8080. Identify it and stop it:

lsof -i :8080 systemctl stop apache2 || systemctl stop tomcat9

“Cannot connect to MySQL”

Either MariaDB is not running or the root password was entered incorrectly. Verify:

systemctl status mariadb mysql -u root -p -e "SELECT 1;"

“FFmpeg: command not found” after install

The bundled FFmpeg did not link. Install the distro version as a fallback:

apt-get install -y ffmpeg ln -sf $(which ffmpeg) /home/xui/content/bin/ffmpeg/ffmpeg

“Blank white page on first login”

Almost always a PHP-FPM crash. Check the XUI.ONE PHP log:

tail -n 100 /home/xui/logs/php/error.log

The most common cause is missing php-mcrypt or an incompatible libssl. On 22.04+ install the compatibility package:

wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.22_amd64.deb dpkg -i libssl1.1_1.1.1f-1ubuntu2.22_amd64.deb

“Streams show offline but FFmpeg is running”

The classic GeoIP breakage. Reinstall the MMDB file:

chattr -i /home/xui/content/GeoLite2.mmdb 2>/dev/null wget -q https://xtream-masters.com/guide/resources.php?file=xui/GeoLite2.mmdb -O /home/xui/content/GeoLite2.mmdb chattr +i /home/xui/content/GeoLite2.mmdb

XUI.ONE Limitations You Should Know Before Going Live

At this point your XUI.ONE server is up, secured, and tuned. This is a good result. But before you onboard paying customers, here is the unvarnished truth about what XUI.ONE cannot do:

  • No active security development. Patches arrive unpredictably. Several CVE-class issues in its embedded Nginx and PHP-FPM remain unfixed.
  • No built-in DDoS protection. Layer 7 floods against /c/ and /live/ endpoints can take the entire panel down within seconds.
  • No DRM. If you plan to restream premium MPD/DASH content with Widevine keys, XUI.ONE has no key pipeline, no named-pipe handling, no license rotation.
  • Weak anti-sharing. The default “Max Connections” field is trivially defeated by shared accounts. There is no device binding, no ActiveCode, no fingerprinting.
  • Single point of failure. Without a built-in load balancer orchestrator and encrypted cloud backup, a dead server means a dead service.
  • Memory leaks. On a 16 GB server under real load, RAM typically climbs until an OOM kill restarts PHP-FPM. See our dedicated XUI.ONE memory leak fix.
  • CPU spikes. Transcoding through the bundled FFmpeg profiles is not optimized. See our XUI.ONE high CPU fix.

None of this makes XUI.ONE useless — it is a perfectly reasonable lab panel to learn IPTV operations on. It stops being reasonable the moment you depend on it for income.

Nicely done! Your XUI.ONE panel is installed, secured, and tuned. You can now add servers, create packages, and onboard users.

Ready to Outgrow XUI.ONE?

XUI.ONE is a solid starting panel, but the ceiling is low. Once you cross a few hundred concurrent users, the security gaps, memory leaks, and lack of DRM start costing you real money and real customers.

The Xtream-Masters OTT Panel was built by engineers who ran XUI.ONE in production for years and got tired of patching the same bugs. It installs in under 10 minutes, migrates your XUI.ONE database automatically, and includes DDoS protection, DRM, anti-sharing, encrypted cloud backup, and unlimited load balancers in a single license.

Professional Admin Panel

Xtream-Masters OTT Panel

The Modern, Secure, Fully-Supported Successor to XUI.ONE

Drop-in replacement for XUI.ONE with one-click database migration, built-in DDoS protection, DRM on load balancers, ActiveCode anti-sharing, and a support team that actually answers.

IPTV Admin Panel €39.99/Month
  • Main server license includes unlimited load balancers
  • One-click migration from XUI.ONE, Xtream UI, Xtream Codes, Streamcreed
  • DDoS protection, ActiveCode anti-sharing, DRM on LBs
  • Ubuntu 20.04, 22.04, 24.04 all supported
  • Encrypted cloud backup & auto issue fixing

Start Your IPTV Business the Right Way

Get Your License Now
Why Operators Migrate from XUI.ONE

What Xtream-Masters Does That XUI.ONE Cannot

Built from scratch with modern Go and C core code. Everything XUI.ONE was promised to become.

Secure

Built-In DDoS Protection

Self-developed Layer 7 filter, playlist probing blocker, brute-force mitigation, and GeoIP gatekeeping. No Cloudflare required.

  • Layer 7 protection
  • Probe blocker
  • GeoIP rules
Smart

Auto Stream Repair

The panel detects audio loss, video loss, frozen frames, and infinite loops, then repairs the pipeline in seconds without operator intervention.

  • Audio/video watchdog
  • Loop detection
  • Probsize tuning
Performance

3x Lower CPU and RAM

Optimized binaries replace bloated PHP workers. Typical migration cuts server RAM by half at the same concurrency.

  • Low RAM usage
  • Event-load stable
  • C core engine

Core Features & Capabilities

Everything you wanted XUI.ONE to do, implemented by a maintained engineering team.

🚀

Optimized Performance Core

Enhanced binary and optimized code to minimize RAM and CPU consumption, ensuring super stability for handling large event loads with ease.

🗂️

Category Management

Allow users to modify categories through reordering, renaming, and adding/removing options in reseller and client panels.

👁️‍🗨️

Real-time VideoLog

Track connection utilization and, upon surpassing the limit, present the VideoLog with live data instead of showing a playback error.

🔑

DRM on Load Balancer

With IPTV and DRM integrated, you can easily install DRM on your IPTV load balancer with a single click and run DRM IPTV simultaneously.

📊

Smart Stream Analyzer

On-demand channels identify source problems, and auto-correct audio interruptions by adjusting probsize.

🤝

Official Reseller API

Grow your enterprise by integrating a specialized API designed for resellers to streamline order processing.

⚙️

Client Subscription cPanel

A personalized control panel for each client, enabling clients to manage content and update passwords independently.

🛡️

Server Guard Security

Every server benefits from enhanced security measures to defend against playlist probing, brute force attacks, and Layer 7 DDoS.

📂

Auto M3U Content Sync

Automatically add complete categories to your server through your provider's M3U link. especially useful for managing event categories.

☁️

xDrive Encrypted Cloud Backup

Automated xDrive Encrypted Cloud Backups ensure you can restore your panel and data instantly if the server fails.

Support Center

XUI.ONE Installation - Frequently Asked Questions

Answers to the questions we see most on XUI.ONE installations and migrations.

All Questions
Installation
Migration
Technical
01

Is XUI.ONE actually free to use commercially?

XUI.ONE is free to download and install, but it is not open-source under a permissive license. Commercial use is tolerated but not contractually guaranteed, and there is no SLA. For any customer-facing business we strongly recommend a licensed, supported panel.

02

Which Ubuntu version should I pick for XUI.ONE?

Ubuntu 20.04 LTS is still the sweet spot for XUI.ONE. It ships Python 2, OpenSSL 1.1, and libcurl 7.68 which match what the panel was built against. 22.04 works with compatibility patches; 24.04 works with significant patching. If you want zero drama, stick to 20.04 until you migrate to a modern panel.

03

What is the difference between XUI.ONE, Xtream UI, and Xtream Codes?

Xtream Codes was the original paid IPTV panel that was taken down in 2019 after European raids. Xtream UI is a community fork that kept the last leaked version alive. XUI.ONE is a more actively maintained rebrand of the same codebase, with some UI changes. See our complete comparison for the full history.

04

Can I migrate my XUI.ONE users to Xtream-Masters later?

Yes. Xtream-Masters ships an automatic migration tool. Take a mysqldump of your XUI.ONE database, upload it to the new CMS, pick “Migrate by URL”, and the panel rewrites users, lines, packages, bouquets, and categories into the new schema. Resellers and their downlines are preserved.

05

Why is my XUI.ONE CPU hitting 100 percent with only 50 users?

Three usual suspects: (1) transcoding profiles you do not need are active, (2) PHP-FPM child count is too high for the CPU, (3) a runaway FFmpeg worker is in an infinite loop. The full playbook is in our XUI.ONE high CPU fix.

06

Does XUI.ONE support DRM (Widevine, PlayReady)?

No. XUI.ONE has no DRM pipeline, no named-pipe handling for Widevine key delivery, and no way to persist MPD license rotations. If you need to restream DRM-protected content you must move to a panel that has DRM built in, such as the Xtream-Masters OTT Panel.

07

How do I add a load balancer to XUI.ONE?

Install the XUI.ONE panel on a second server but choose load_balancer at the install prompt, enter the main server's public IP and MySQL password, and the installer links the two. See our dedicated XUI.ONE load balancer guide.

08

Is it safe to use a “cracked” XUI.ONE or Xtream Codes copy?

No. Cracked panels circulating on forums contain known backdoors that ship user credentials and MySQL dumps to third-party endpoints. Several have crypto-miners embedded. Read our XUI.ONE crack install risks article before using any such copy.

Ready to Graduate From Free Panels?

Hundreds of operators have migrated from XUI.ONE to Xtream-Masters and cut their infrastructure bill in half.

Purchase License - €39.99/Month Download Review
Important Legal Notice
Xtream-Masters is a software development company. We build and license professional software tools — we do not host, store, stream, index, or distribute any audio, video, playlist, channel, or DRM-protected content of any kind. Every product we sell is an empty technical platform; all content processed through our software is supplied, configured, and controlled solely by the end user, who must hold the necessary rights and comply with applicable law. Copyright or DMCA notices must be directed to the operator or stream origin of the URL concerned — not to Xtream-Masters. See our Terms, Privacy Policy, and Refund Policy for full details.