rootandClaude Opus 5 bb949d18b7 feat(admin): show each stream's producer, CPU and memory on the streams page
A new "Resources" column between Stream Info and Actions: which process is
producing the channel (the fanout daemon's native remuxer, ffmpeg, or PHP for
the LLOD segmenter / loopback relay), the CPU it is burning and the memory it
holds. With the native remuxer now an option per stream, "what does this
channel actually cost" and "which backend is it on" are the two questions the
list could not answer.

ProcessManager reads both from /proc/PID/stat (fields 14/15 and 24, with the
page size derived rather than assumed — 64K pages are normal on arm64). CPU
there is cumulative, so a percentage needs two readings: cron:streams samples
each producer once a pass and folds cpu/mem/producer into the stream's
progress_info, carrying the previous reading in the same JSON to subtract from.
cpuPercent() returns null rather than a wild figure when the pair says nothing
— no previous sample, same instant, or a counter that went backwards because
the producer restarted. Only the node running a stream can read its own /proc,
so the sampling happens there and reaches the panel in the row the cron already
writes; MAIN just renders it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UZP7fc2Hz36wbPmuLd9F9o
2026-09-11 10:58:50 +00:00
2026-09-10 17:31:22 +03:00
2025-07-10 20:01:56 +03:00

Vateron Media Logo

XC_VM IPTV Panel

Open-source, community-driven Xtream Codes panel
Built for modern IPTV workflows – powerful, scalable, and free.


📑 Table of Contents

📘 Contents

🚀 Overview

XC_VM is an open-source IPTV platform based on Xtream Codes. It enables:

  • 📺 Live & VOD streaming
  • 🔀 Load balancing
  • 📊 Full user/reseller control
  • 🎚️ Transcoding & EPG
  • 🔐 Hardened security fixes

✅ 100% free. No license checks. No server locks.


⚠️ Status

BETA SOFTWARE — actively developed


📚 Documentation


🔄 Migration Guide

Migrating from Xtream Codes / XUI.one? Follow the step-by-step migration guide:


🧱 Technology Stack

Component Version Description
PHP 8.1.33 Backend runtime
Nginx 1.24 Web server & reverse proxy
FFmpeg 8.0, 7.1, 4.0 Media transcoding & processing
MariaDB 11.4 SQL database engine
KeyDB 6.3.4 Cache & session storage (Redis)

🐧 Supported Operating Systems

XC_VM supports multiple Linux distributions. Distribution-specific binaries (PHP, Nginx) are downloaded automatically from XC_VM_Binaries during installation.

Ubuntu

Version Codename Status
20.04 Focal Fossa ⚠️ Outdated — installation possible, but some packages may need to be installed manually
22.04 Jammy Jellyfish ✅ Recommended
24.04 Noble Numbat ✅ Recommended

Debian

Version Codename Status
11 Bullseye ✅ Supported
12 Bookworm ✅ Recommended
13 Trixie ✅ Supported

RHEL-compatible (Rocky Linux, AlmaLinux, CentOS, RHEL)

Version Status
8 🚧 Not yet supported
9 🚧 Not yet supported

⚠️ RHEL-family support is planned but not yet available. The installer recognizes these distributions, but pre-built binaries are not provided yet.


💡 Recommendations

For new installations:

  • 🟢 Ubuntu 22.04 / 24.04 LTS
  • 🟢 Debian 12

⚠️ Ubuntu 18.04 is in legacy mode — it works but receives no priority fixes.


📥 Quick Install

✅ Ubuntu 22.04+, Debian 11+

# 1. Update system
sudo apt update && sudo apt full-upgrade -y

# 2. Install dependencies
sudo apt install -y curl wget python3 unzip

# 3. Download latest release
latest_version=$(curl -s https://api.github.com/repos/Vateron-Media/XC_VM/releases/latest | grep '"tag_name":' | cut -d '"' -f 4)
wget "https://github.com/Vateron-Media/XC_VM/releases/download/${latest_version}/XC_VM.zip"

# 4. Unpack and install
unzip XC_VM.zip
sudo python3 install

🧪 Beta Install

To install the latest beta (pre-release) version:

# 1. Update system
sudo apt update && sudo apt full-upgrade -y

# 2. Install dependencies
sudo apt install -y curl wget python3-pip unzip

# 3. Download latest beta release
beta_version=$(curl -s https://api.github.com/repos/Vateron-Media/XC_VM/releases | grep -m1 '"tag_name":' | cut -d '"' -f 4)
wget "https://github.com/Vateron-Media/XC_VM/releases/download/${beta_version}/XC_VM.zip"

# 4. Unpack and install
unzip XC_VM.zip
sudo python3 install

⚠️ Beta versions may contain unstable features. Use on test servers only.


🧰 Service Management

sudo systemctl start xc_vm     # Start
sudo systemctl stop xc_vm      # Stop
sudo systemctl restart xc_vm   # Restart
sudo systemctl status xc_vm    # Status
sudo /home/xc_vm/bin/nginx/sbin/nginx -s reload    # Reload Nginx config
journalctl -u xc_vm -f         # Live logs

🔍 Troubleshooting — Panel Won't Start

If the panel fails to start, check the following logs and commands:

Nginx error log:

cat /home/xc_vm/bin/nginx/logs/error.log

PHP-FPM log:

cat /home/xc_vm/bin/php/var/log/php-fpm.log

Verify PHP binary works:

/home/xc_vm/bin/php/bin/php -v

If PHP fails to run, the panel cannot start at all — fix PHP issues first before investigating Nginx.


📂 Project Structure

├─ docs/        # 📚 Project documentation
├─ lb_configs/  # ⚙️ Configurations for building Load Balancer (LB)
└─ src/         # 💻 Main project code

🧮 Server Requirements & Sizing

🔧 Minimum Specs

Component Recommendation
CPU 6+ cores (Xeon/Ryzen)
RAM 16–32 GB
Disk SSD/NVMe, 480+ GB
Network Dedicated 1 Gbps port
OS Ubuntu 22.04+, Debian 12+ (clean install)

📊 Planning Formulae

  • Bandwidth (Mbps) = Channels × Bitrate
  • Max Users = Bandwidth ÷ Stream Bitrate
Example:
HD bitrate = 4 Mbps
1 Gbps = ~940 usable Mbps

→ Max Channels: 940 ÷ 4 = ~235
→ Max Users:    940 ÷ 4 = ~235

⚠️ 10 users watching the same channel = 10× bandwidth (unless caching or multicast used)


💻 RAM & CPU Usage

Resource Load per Stream
RAM 50–100 MB
CPU (transcoded) ~1 core

✅ Features

  • ✅ No server restrictions
  • ✅ EPG importer
  • ✅ VOD management
  • ✅ User/reseller panel
  • ✅ Security patches
  • ✅ Clean UI

🔧 Known Limitations

  • ❌ Requires Linux knowledge
  • ❌ Community-based support
  • ❌ Some bugs in transcoding module (in progress)

🤝 Contributing

We welcome community help!


XC_VM is an independent software project and is not affiliated with or endorsed by XUI.one.

All backend systems, core logic, and infrastructure of XC_VM have been independently developed without using source code from XUI.one or related projects.

The administrative interface (UI/UX) is inspired by general industry practices and partially by XUI.one in terms of usability concepts only. No proprietary source code or protected assets have been intentionally reused.


📜 License Enforcement (AGPL-3.0)

XC_VM is distributed under the GNU Affero General Public License v3.0 (AGPL-3.0).

Under this license:

  • Redistribution or modification is permitted only under the same license (AGPL-3.0)
  • Any modified version must remain open-source
  • Providing XC_VM as a service requires making the source code available
  • Copyright and attribution must be preserved

Any attempt to redistribute this software under a different license, remove attribution, or obscure the origin of the project constitutes a violation of the license terms.

⚖️ You are solely responsible for how it is used. We take no responsibility for misuse or illegal deployments.


S
Description
XC_VM - open, transparent, and community-first. IPTV backend tools with integrated runtime environment.
Readme AGPL-3.0
603 MiB
Languages
PHP 80%
JavaScript 9.3%
CSS 7.9%
Python 1.2%
TypeScript 0.8%
Other 0.7%