XUI.ONE is the most popular actively-maintained successor to the original Xtream Codes panel. It's the right choice in 2026 if you're starting a new IPTV operation or migrating from Xtream Codes — better stability, regular updates, native HLS/MPEG-DASH support, and a cleaner admin UI.

1. Server requirements

  • OS: Ubuntu 20.04 LTS (recommended) or 22.04 LTS
  • RAM: 4 GB minimum, 16 GB for 500+ users
  • CPU: 4 vCPU minimum, 8 vCPU for transcoding workloads
  • Disk: 100 GB SSD (NVMe strongly preferred for VOD/catch-up)
  • Bandwidth: 1 Gbps unmetered, 10 Gbps for serious operations
  • Network: Public IPv4, ports 80, 443, 8080, 8805 reachable

2. Initial server setup

apt update && apt upgrade -y
apt install -y wget curl nano sudo software-properties-common
hostnamectl set-hostname iptv.yourdomain.com
timedatectl set-timezone UTC
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 8080/tcp
ufw allow 8805/tcp
ufw enable

3. Disable AppArmor & conflicting services

XUI.ONE uses tmpfs and direct port binding that conflicts with the default AppArmor policies on Ubuntu. Disable AppArmor for the install:

systemctl stop apparmor
systemctl disable apparmor
apt remove --purge -y apache2 nginx mysql-server postfix
apt autoremove -y

4. Run the official installer

cd /tmp
wget https://xui.one/installer/install.tar.gz
tar -xzf install.tar.gz
cd install
chmod +x install.sh
./install.sh

The installer asks for:

  • Admin email: Used for license + system alerts
  • Admin password: Strong, 16+ characters
  • MariaDB root password: Generate a separate strong password
  • Server timezone: Match your customer base

Installation takes 20–35 minutes. Don't interrupt it — partial installs are painful to recover.

5. License activation

Visit http://your-server-ip:8080. Log in with admin credentials. The license screen appears first — paste your XUI.ONE license key.

If activation fails:

curl -v https://api.xui.one/license
date  # confirm clock is correct
nslookup api.xui.one

6. Database performance tuning

XUI.ONE uses MariaDB. Default settings will bottleneck around 100 users. Edit /etc/mysql/mariadb.conf.d/50-server.cnf:

[mysqld]
innodb_buffer_pool_size = 4G
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
max_connections = 1000
thread_cache_size = 50
table_open_cache = 4000
query_cache_type = 0  # XUI.ONE doesn't benefit from query cache
tmp_table_size = 256M
max_heap_table_size = 256M
systemctl restart mariadb

7. Adding sources

Navigate to Streams → Stream Manager → Add Stream. XUI.ONE supports:

  • M3U8 / HLS: Standard playlist URLs
  • RTMP / RTMPS: Live RTMP feeds
  • MPEG-TS over UDP/HTTP: Multicast or unicast TS
  • RTSP: IP camera feeds (uncommon for IPTV)
  • Local files: VOD library

Bulk import via M3U: Tools → Import M3U Playlist. Map the EXTINF group-title field to your XUI.ONE category structure before importing.

8. EPG configuration

EPG (Electronic Program Guide) is what makes the panel feel professional — channels with EPG data show "now playing" and full program schedules in customer apps.

Inside EPG → EPG Manager:

  • Add your XMLTV source URL (provided by your supplier or use a free aggregator)
  • Set update frequency to every 6 hours
  • Map XMLTV channel IDs to your panel's channel IDs (this is the part that breaks for most beginners)

Validate your XMLTV source first with our EPG validator — it'll tell you channel/program counts and date ranges before you waste hours mapping a broken EPG.

9. SSL setup

XUI.ONE has built-in Let's Encrypt support. Inside Server Settings → SSL:

  • Enter your domain (must already point to your server's IP)
  • Click "Generate Certificate"
  • Wait 30–60 seconds for activation

The panel will switch to HTTPS automatically. Update your customer apps with the https:// URL.

10. Common XUI.ONE errors

  • "Stream offline" but source works in VLC: Usually a User-Agent issue. Edit the stream and set User-Agent to VLC/3.0.0 LibVLC/3.0.0
  • High CPU on idle: Often the EPG cron is stuck. Check /var/log/xui/epg.log
  • Streams disconnect after exactly 60 seconds: Reverse proxy timeout. If you're behind Cloudflare, switch to grey cloud (DNS only) for the streaming subdomain
  • "Too many connections" error in MariaDB: Increase max_connections as above
// Save hours
We install XUI.ONE on your server in under 90 minutes for $49. Includes performance tuning, SSL setup, and 30 days of post-install support. Order managed install →