Files
XC_VM/README.md
T
Divarion_D cdfaab0b3c docs(licensing): disclose the activation model & data sent to the server
Adds docs/en/info/licensing-and-activation.md (dual-licensing, AGPL §7b
attribution check, what activation gates, how to activate, what the panel
sends to the licence server and what it never sends, provenance), wires it
into the mkdocs nav (+ ru label), and extends the README "License
Enforcement" section with the activation + data-transparency disclosure.

Makes the activation / attribution / phone-home mechanism formally disclosed
(the legal basis for enforcement on top of AGPL). English source only; ru is
generated.
2026-09-19 22:16:48 +03:00

361 lines
11 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<p align="center">
<img src="https://avatars.githubusercontent.com/u/149707645?s=400&v=4" width="220" alt="Vateron Media Logo"/>
</p>
<h1 align="center">XC_VM IPTV Panel</h1>
<p align="center">
<b>Open-source, community-driven Xtream Codes panel</b><br>
Built for modern IPTV workflows – powerful, scalable, and free.
</p>
<p align="center">
<a href="LICENSE"><img src="https://img.shields.io/github/license/Vateron-Media/XC_VM" /></a>
<a href="https://github.com/Vateron-Media/XC_VM/stargazers"><img src="https://img.shields.io/github/stars/Vateron-Media/XC_VM?style=flat" /></a>
<a href="https://github.com/Vateron-Media/XC_VM/issues"><img src="https://img.shields.io/github/issues/Vateron-Media/XC_VM" /></a>
</p>
---
# 📑 Table of Contents
<details>
<summary><strong>📘 Contents</strong></summary>
* 🏁 [Overview](#-overview)
* ⚠️ [Status](#️-status)
* 📚 [Documentation](#-documentation)
* 🔄 [Migration Guide](#-migration-guide)
* 🧱 [Technology Stack](#-technology-stack)
* 🧩 [Supported OS](#-supported-operating-systems)
* 📥 [Quick Install](#-quick-install)
* 🧰 [Service Management](#-service-management)
* 📂 [Project Structure](#-project-structure)
* 🧮 [Server Requirements & Sizing](#-server-requirements--sizing)
* ⭐ [Features](#-features)
* 🐞 [Known Limitations](#-known-limitations)
* 🤝 [Contributing](#-contributing)
* ⚠️ [Legal & Licensing Notice](#️-legal--licensing-notice)
* 📜 [License (AGPL-3.0)](#-license-agpl-30)
</details>
---
## 🚀 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
* 🇬🇧 **English Guide**
[https://vateron-media.github.io/XC_VM/](https://vateron-media.github.io/XC_VM/)
* 🇷🇺 **Руководство на русском**
[https://vateron-media.github.io/XC_VM/ru/](https://vateron-media.github.io/XC_VM/ru/)
---
## 🔄 Migration Guide
Migrating from Xtream Codes / XUI.one? Follow the step-by-step migration guide:
* 📖 **Migration Guide**
[https://vateron-media.github.io/XC_VM/info/migration_guide/](https://vateron-media.github.io/XC_VM/info/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](https://github.com/Vateron-Media/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+
```bash
# 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:
```bash
# 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
```bash
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:**
```bash
cat /home/xc_vm/bin/nginx/logs/error.log
```
**PHP-FPM log:**
```bash
cat /home/xc_vm/bin/php/var/log/php-fpm.log
```
**Verify PHP binary works:**
```bash
/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
```text.
├─ 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
```text
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!
* 🛠️ [Contributing Guide](CONTRIBUTING.md)
* 👥 [Contributors List](CONTRIBUTORS.md)
---
### ⚠️ Legal & Project Independence Notice
**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.
#### Attribution-integrity check
As permitted by **AGPL-3.0 §7(b)** (preservation of author attributions), the panel
verifies on each request that its attribution notice — the *"Vateron Media · AGPL-3.0"*
credit shown in the panel footer — is still present. If the notice has been removed, the
**management UI** (admin / reseller / player panels) is locked with an
`ATTRIBUTION_REMOVED` notice until it is restored. The check is fully reversible and
non-destructive: no data is modified, the CLI remains available, and restoring the notice
unlocks the panel on the next request. End-viewer streaming is **not** affected by this check.
Each build is also stamped with a unique build identifier (`XC_VM_BUILD_ID`) for provenance,
so a leaked or rebranded copy can be traced back to the build it originated from.
#### White-label activation (dual-licensing)
Keeping the attribution notice means **AGPL-3.0 — free, and everything works**, including
load-balancer nodes. If the attribution is **removed** (white-labelling), the panel
requires a **free, machine-bound activation key** to provision load-balancer / cluster
nodes; a single-server panel still runs locally without one. Keys are issued **free** and
self-service (one per HWID, shown in **Settings → Info** and on the dashboard) and are
**revocable** — this is accountability against rebranded resale, not monetization.
#### What the panel sends (full transparency)
A **community install (attribution intact) never contacts the licensing server.** A
white-label install contacts `https://www.xcvm.tech` only to: (a) obtain its key
(`install_id`), (b) run a weekly revocation check (`jti` + nonce), and (c) send **one daily
check-in** (`install_id`, `jti`, `env_fp`, nonce) recording which IP a HWID runs from —
evidence against a leaked copy. Every response is **Ed25519-signed** and verified. **No
stream data, viewer data, credentials, database or file contents, and no remote command
channel** are ever involved. Full detail:
[Licensing & Activation](docs/en/info/licensing-and-activation.md).
> ⚖️ You are solely responsible for how it is used.
> We take no responsibility for misuse or illegal deployments.
---