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_connectionsas above
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 →