diff --git a/README.md b/README.md index 6bd3bd6dc..4299f9df7 100644 --- a/README.md +++ b/README.md @@ -14,18 +14,43 @@

+--- + +# 📑 Table of Contents + +
+📘 Contents + +* 🏁 [Overview](#-overview) +* ⚠️ [Status](#️-status) +* 📚 [Documentation](#-documentation) +* 🧱 [Technology Stack](#-technology-stack) +* 🧩 [Ubuntu Support](#-supported-ubuntu-versions) +* 📥 [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) +* 📜 [License](#-license) +* ⚖️ [Legal Disclaimer](#-legal-disclaimer) + +
+ + --- ## 🚀 Overview -**XC_VM** is an open-source IPTV platform based on Xtream Codes. +**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 +* 📺 Live & VOD streaming +* 🔀 Load balancing +* 📊 Full user/reseller control +* 🎚️ Transcoding & EPG +* 🔐 Hardened security fixes > ✅ 100% free. No license checks. No server locks. @@ -33,20 +58,30 @@ It enables: ## ⚠️ Status -> **BETA SOFTWARE** — actively developed +> **BETA SOFTWARE** — actively developed + +--- + +## 📚 Documentation + +* 🇬🇧 **English Guide** + [https://vateron-media.github.io/XC_VM_Docs/#/en-us/](https://vateron-media.github.io/XC_VM_Docs/#/en-us/) + +* 🇷🇺 **Руководство на русском** + [https://vateron-media.github.io/XC_VM_Docs/#/ru-ru/](https://vateron-media.github.io/XC_VM_Docs/#/ru-ru/) --- ## 🧱 Technology Stack -| Component | Version | Description | -|------------|---------|---------------------------------| -| PHP | 8.2 | Backend runtime | -| Nginx | 1.24 | Web server & reverse proxy | -| FFmpeg | 8.0 | Media transcoding & processing | -| MariaDB | 10.6+ | SQL database engine | -| KeyDB | 6.3.4 | Cache & session storage (Redis) | -| yt-dlp | 2025.07.21 | Audio/Video downloader | +| Component | Version | Description | +| --------- | ---------- | ------------------------------- | +| PHP | 8.2 | Backend runtime | +| Nginx | 1.24 | Web server & reverse proxy | +| FFmpeg | 8.0 | Media transcoding & processing | +| MariaDB | 10.6+ | SQL database engine | +| KeyDB | 6.3.4 | Cache & session storage (Redis) | +| yt-dlp | 2025.07.21 | Audio/Video downloader | --- @@ -83,7 +118,7 @@ wget "https://github.com/Vateron-Media/XC_VM/releases/download/${latest_version} # 4. Unpack and install unzip XC_VM.zip sudo python3 install -```` +``` --- @@ -100,21 +135,13 @@ journalctl -u xc_vm -f # Live logs --- -## 📚 Documentation - -* 🇬🇧 [English Guide](docs/en/main-page.md) -* 🇷🇺 [Руководство на русском](docs/ru/main-page.md) - ---- - ## 📂 Project Structure ```text. - ├─ docs/ # 📚 Project documentation ├─ lb_configs/ # ⚙️ Configurations for building Load Balancer (LB) └─ src/ # 💻 Main project code -```` +``` --- @@ -155,18 +182,18 @@ HD bitrate = 4 Mbps | Resource | Load per Stream | | ---------------- | --------------- | | RAM | 50–100 MB | -| CPU (transcoded) | \~1 core | +| CPU (transcoded) | ~1 core | --- ## ✅ Features -* ✅ **No server restrictions** -* ✅ **EPG importer** -* ✅ **VOD management** -* ✅ **User/reseller panel** -* ✅ **Security patches** -* ✅ **Clean UI** +* ✅ No server restrictions +* ✅ EPG importer +* ✅ VOD management +* ✅ User/reseller panel +* ✅ Security patches +* ✅ Clean UI --- diff --git a/docs/en/api/playlist.md b/docs/en/api/playlist.md deleted file mode 100644 index d6a6e0f47..000000000 --- a/docs/en/api/playlist.md +++ /dev/null @@ -1,126 +0,0 @@ -

📺 Get Playlist

- -

- This API provides authentication and playlist generation features for XC_VM. - Clients can authenticate using a username/password or token, after which a personalized playlist is generated. -

- -

- ⬅️ Back to main page -

- ---- - -## 📚 Navigation - -* [📂 File Location](#file-location) -* [🔑 Authentication](#authentication) -* [🚀 Endpoints](#endpoints) -* [❌ Error Codes](#error-codes) -* [🧾 Notes](#notes) - ---- - -## 📂 File Location - -The main API file is located at: - -```bash -/home/xc_vm/wwwdir/playlist.php -``` - ---- - -## 🔑 Authentication - -The API requires authentication either via username and password or via token. -This ensures secure access to the content. - -### Base URL - -```http -http://:80/playlist -``` - ---- - -## 🚀 Endpoints - -### 1. Authentication and Playlist Generation - -**Method & Endpoint:** - -```http -GET / -``` - -**Query Parameters:** - -| Parameter | Type | Required | Description | -| --------- | ------- | -------- | ------------------------------------------------------------------------------------------------- | -| username | string | Yes* | Username for authentication (required if `token` is not used). | -| password | string | Yes* | Password for authentication (required if `token` is not used). | -| token | string | Yes* | Authentication token (required if username and password are not used). | -| type | string | No | Device type (default: `m3u_plus`). | -| key | string | No | Content type (`live` — live TV, `movies` — movies, `radio_streams` — radio, `series` — TV shows). | -| output | string | No | Output format (`hls` or `m3u`). | -| nocache | boolean | No | If true, disables caching. | - -> 💡 *Yes* — one option is required: either username/password or token. - -**Example Requests:** - -```bash -curl -X GET "http://:80/playlist/username/password/type&output=hls&key=live" -``` - -```bash -curl -X GET "http://:80/playlist/token/type&output=hls&key=live" -``` - -**Response:** - -* Playlist file in the requested format (M3U or HLS). - ---- - -## ❌ Error Codes - -If an error occurs, the API returns the corresponding error codes for easier troubleshooting. - -| Error Code | Description | -| ------------------------ | ------------------------------------- | -| NO_CREDENTIALS | Missing authentication data. | -| INVALID_CREDENTIALS | Invalid username, password, or token. | -| BLOCKED_USER_AGENT | User agent is blocked. | -| EXPIRED | Account has expired. | -| DEVICE_NOT_ALLOWED | Device type is not allowed. | -| BANNED | User is banned. | -| DISABLED | Account is disabled. | -| EMPTY_USER_AGENT | User agent is required but missing. | -| NOT_IN_ALLOWED_IPS | IP address is not allowed. | -| NOT_IN_ALLOWED_COUNTRY | Country is not allowed. | -| NOT_IN_ALLOWED_UAS | User agent is not allowed. | -| ISP_BLOCKED | ISP is blocked. | -| ASN_BLOCKED | ASN restriction applied. | -| DOWNLOAD_LIMIT_REACHED | Too many requests. | -| GENERATE_PLAYLIST_FAILED | Failed to generate playlist. | - -> ⚠️ **Tip:** Check server logs for more details if errors occur. - ---- - -## 🧾 Notes - -* **Query Parameters:** Make sure all parameters are provided correctly to avoid authentication errors. -* **Restrictions:** The API applies filters by user agent, IP address, and country to enhance security. -* **Rate Limiting:** Request limits are enforced to prevent server overload. -* **Recommendations:** Use tools like cURL or Postman for testing. In production, integrate this API into your application for automated playlist generation. - -> 💬 If you have integration questions, open an issue in the [repository](https://github.com/Vateron-Media/XC_VM/issues). - ---- - -

- ⬅️ Back to main page -

diff --git a/docs/en/api/system_api.md b/docs/en/api/system_api.md deleted file mode 100644 index 0cb0d2bef..000000000 --- a/docs/en/api/system_api.md +++ /dev/null @@ -1,211 +0,0 @@ -

📡 System API (Method Verification Required)

- -

- This API provides various system functionalities, including log viewing, video-on-demand (VOD) and stream management, statistics retrieval, background command execution, and more. -

- -

- ⬅️ Back to main page -

- ---- - -## File Location - -``` -/home/xc_vm/wwwdir/api.php -``` - -## API Architecture Overview - -**Base URI:** `http://:25461/api.php` -**Authentication:** `password` parameter matching the `live_streaming_pass` configuration -**Example:** -`http://:25461/api.php?&password=` - ---- - -## Main API Endpoints - -### 1. VOD Management - -#### **GET** `/api.php?action=vod` - -**Description:** Starts or stops Video-on-Demand (VOD) streams. -**Parameters:** - -| Parameter | Type | Required | Description | -| ---------- | ----------------- | -------- | -------------------------------------- | -| stream_ids | array of integers | yes | List of stream IDs. | -| function | string | yes | Action to perform (`start` or `stop`). | - ---- - -### 2. Live Stream Management - -#### **GET** `/api.php?action=stream` - -**Description:** Starts or stops live streams. -**Parameters:** - -| Parameter | Type | Required | Description | -| ---------- | ----------------- | -------- | -------------------------------------- | -| stream_ids | array of integers | yes | List of stream IDs. | -| function | string | yes | Action to perform (`start` or `stop`). | - ---- - -### 3. System Telemetry - -#### **GET** `/api.php?action=stats` - -**Description:** Retrieves system statistics. -**Response:** - -```json -{ - "cpu": 8.32, - "cpu_cores": 56, - "cpu_avg": 8.86, - "cpu_name": "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz", - ... -} -``` - ---- - -### 4. Process Lifecycle Check - -#### **GET** `/api.php?action=pidsAreRunning` - -**Description:** Checks whether specified process IDs (PIDs) are currently running. -**Parameters:** - -| Parameter | Type | Required | Description | -| --------- | ----------------- | -------- | ----------------------- | -| pids | array of integers | yes | List of PIDs to verify. | -| program | string | yes | Program name. | - ---- - -### 5. Get File - -#### **GET** `/api.php?action=getFile` - -**Description:** Downloads the specified file. -**Parameters:** - -| Parameter | Type | Required | Description | -| --------- | ------ | -------- | ----------------- | -| filename | string | yes | Path to the file. | - -**Response:** - -* File contents. - ---- - -### 6. Directory Listing - -#### **GET** `/api.php?action=viewDir` - -**Description:** Retrieves a directory listing. -**Parameters:** - -| Parameter | Type | Required | Description | -| --------- | ------ | -------- | ---------------------- | -| dir | string | yes | Path to the directory. | - -**Response:** - -```html - -``` - ---- - -### 7. Connection Redirection - -#### **GET** `/api.php?action=redirect_connection` - -**Description:** Redirects a connection based on the activity ID and stream ID. -**Parameters:** - -| Parameter | Type | Required | Description | -| ----------- | ------- | -------- | ------------ | -| activity_id | integer | yes | Activity ID. | -| stream_id | integer | yes | Stream ID. | - ---- - -### 8. Send Signal - -#### **GET** `/api.php?action=signal_send` - -**Description:** Sends a signal message to trigger an action. -**Parameters:** - -| Parameter | Type | Required | Description | -| ----------- | ------- | -------- | ------------------- | -| message | string | yes | Message or command. | -| activity_id | integer | yes | Activity ID. | - ---- - -### 9. Clear Temporary Folder - -#### **GET** `/api.php?action=free_temp` - -**Description:** Deletes temporary files and executes a caching script. - ---- - -### 10. Clear Streams Folder - -#### **GET** `/api.php?action=free_streams` - -**Description:** Clears the streams directory. - ---- - -### 11. Get Free Disk Space - -#### **GET** `/api.php?action=get_free_space` - -**Description:** Returns information about available disk space. - ---- - -### 12. Get Process PIDs - -#### **GET** `/api.php?action=get_pids` - -**Description:** Returns a list of running process IDs. - ---- - -### 13. Kill Process by PID - -#### **GET** `/api.php?action=kill_pid` - -**Description:** Terminates a process by its PID. - ---- - -## Error Codes - -| Code | Description | -| -------------------- | --------------------------- | -| INVALID_API_PASSWORD | Invalid API password. | -| API_IP_NOT_ALLOWED | IP address not allowed. | -| INVALID_REQUEST | Invalid request parameters. | - ---- - -## Notes - -* All requests must be authenticated using the correct API password. -* Some actions may require additional permissions or may be restricted depending on the server configuration. diff --git a/docs/en/api/xtreamcodes_api.md b/docs/en/api/xtreamcodes_api.md deleted file mode 100644 index 803ec4d7a..000000000 --- a/docs/en/api/xtreamcodes_api.md +++ /dev/null @@ -1,456 +0,0 @@ -

📡 XtreamCodes API

- -

- The API provides access to IPTV streams (Live TV, Radio), VOD (Movies), Series, and EPG (TV guide) for applications compatible with XtreamCodes. - It is a core component for integration with XC_VM. -

- -

- ⬅️ Back to Main Page -

- ---- - -## 📚 Navigation - -* [📂 File Location](#file-location) -* [📑 Overview](#overview) -* [🔑 Authorization](#authorization) -* [📺 Live TV (TV & Radio)](#live-tv-tv--radio) -* [🎬 VOD (Movies)](#vod-movies) -* [📽 Series](#series) -* [🎞 Media Access](#media-access) -* [🧾 Notes](#notes) - ---- - -## 📂 File Location - -The main API file is located at: - -``` -/home/xc_vm/wwwdir/player_api.php -``` - ---- - -## 📑 Overview - -The API is divided into key sections for easier integration. -Each endpoint includes example requests and responses. - ---- - -## 🔑 Authorization - -Authorization is the first step to access content. -It validates user credentials and returns server information. - -### Request - -```http -GET /player_api?username={username}&password={password} -``` - -### Example Response - -```json -{ - "user_info": { - "username": "testxc", - "password": "testxc", - "message": "Welcome to XC_VM", - "auth": 1, - "status": "Active", - "exp_date": null, - "is_trial": 0, - "created_at": 1757353729, - "max_connections": 1, - "allowed_output_formats": [ - "m3u8", - "ts", - "rtmp" - ] - }, - "server_info": { - "xui": true, - "version": "1.1.0", - "url": "176.124.192.118", - "port": "80", - "https_port": "443", - "server_protocol": "http", - "rtmp_port": "8880", - "timestamp_now": 1757442189, - "time_now": "2025-09-09 19:23:09", - "timezone": "Europe/London" - } -} -``` - -> 💡 **Tip:** Use the obtained data for subsequent requests to avoid repeated authentication. - ---- - -## 📺 Live TV (TV & Radio) - -Endpoints for working with live streams, including categories, streams, and EPG. - -### Get All Live Categories - -```http -GET /player_api?username={username}&password={password}&action=get_live_categories -``` - -**Example Response** - -```json -[ - { - "category_id": "1", - "category_name": "News", - "parent_id": 0 - }, - { - "category_id": "2", - "category_name": "Sports", - "parent_id": 0 - } -] -``` - -### Get All Live Streams - -```http -GET /player_api?username={username}&password={password}&action=get_live_streams -``` - -**Example Response** - -```json -[ - { - "num": 1, - "name": "BBC News", - "stream_type": "live", - "stream_id": 101, - "stream_icon": "http://176.124.192.118/images/bbc.png", - "epg_channel_id": "bbc.news.uk", - "added": "1660568200", - "category_id": "1", - "custom_sid": "", - "tv_archive": 0, - "direct_source": "", - "tv_archive_duration": 0 - } -] -``` - -### Get Streams by Category - -```http -GET /player_api?username={username}&password={password}&action=get_live_streams&category_id={id} -``` - -### Get Channel Short EPG - -```http -GET /player_api?username={username}&password={password}&action=get_short_epg&stream_id={id}&limit={N} -``` - -**Example Response** - -```json -{ - "epg_listings": [ - { - "id": 1, - "title": "Morning News", - "start": "2022-08-15 07:00:00", - "end": "2022-08-15 08:00:00", - "description": "Daily morning news update." - } - ] -} -``` - -### Get Full Channel Schedule - -```http -GET /player_api?username={username}&password={password}&action=get_simple_data_table&stream_id={id} -``` - -### Get EPG for All Channels (XMLTV) - -```http -GET /xmltv.php?username={username}&password={password} -``` - -**Example Response (XMLTV)** - -```xml - - - BBC News - - - Morning News - Daily morning news update. - - -``` - ---- - -## 🎬 VOD (Movies) - -Endpoints for Video on Demand, including categories and movie details. - -### Get Movie Categories - -```http -GET /player_api?username={username}&password={password}&action=get_vod_categories -``` - -**Example Response** - -```json -[ - { - "category_id": "10", - "category_name": "Action", - "parent_id": 0 - }, - { - "category_id": "11", - "category_name": "Drama", - "parent_id": 0 - } -] -``` - -> ⚠️ **Note:** The full list of categories may be large; only fragments are shown in examples. - -### Get All VOD Streams - -```http -GET /player_api?username={username}&password={password}&action=get_vod_streams -``` - -**Example Response** - -```json -[ - { - "num": 1, - "name": "The Dark Knight (2008)", - "title": "The Dark Knight", - "year": 2008, - "stream_type": "movie", - "stream_id": 1, - "stream_icon": "http://176.124.192.118:80/images/...jpg", - "rating": 8.5, - "rating_5based": 4.3, - "added": 1757343129, - "plot": "Batman raises the stakes in his war on crime. With the ...", - "cast": "Christian Bale, Heath Ledger, Aaron Eckhart, Michael Caine, Maggie Gyllenhaal", - "director": "Christopher Nolan, Christopher Nolan, Steve Gehrke", - "genre": "Drama, Action, Crime", - "release_date": "2008-07-16", - "youtube_trailer": "kmJLuwP3MbY", - "episode_run_time": "152", - "category_id": "1", - "category_ids": [1, 2], - "container_extension": "mp4", - "custom_sid": "", - "direct_source": "" - } -] -``` - -### Get Movies by Category - -```http -GET /player_api?username={username}&password={password}&action=get_vod_streams&category_id={id} -``` - -### Get Movie Info - -```http -GET /player_api?username={username}&password={password}&action=get_vod_info&vod_id={id} -``` - ---- - -## 📽 Series - -Endpoints for managing TV shows, including categories, seasons, and episodes. - -### Get Series Categories - -```http -GET /player_api?username={username}&password={password}&action=get_series_categories -``` - -### Get All Series - -```http -GET /player_api?username={username}&password={password}&action=get_series -``` - -**Example Response** - -```json -[ - { - "num": 1, - "name": "Braceface (2001)", - "title": "Braceface", - "year": 2001, - "stream_type": "series", - "series_id": 1, - "cover": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljpT6mCZeHa4zLXMQZ2eaTpGZUSOucptPKyuP5tgpEZm0.jpg", - "plot": "The show, set in Elkford, British Columbia, is based around Sharon Spitz, who is a junior high school student with braces that get in her way of leading a normal teenage life. In the first season, she is enrolled at Mary Pickford Junior High.", - "cast": "Stacey DePass", - "director": "Charles E. Bastien", - "genre": "Drama, Animation, Comedy", - "release_date": "2001-06-02", - "releaseDate": "2001-06-02", - "last_modified": "1757348651", - "rating": "7", - "rating_5based": 3.5, - "backdrop_path": [ - "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCADBzwKB171qpiTTqrZdeATBaSzxZEgi9EPIvh5kU_50ecbH2L-yDt1PIfqijKTIMg.jpg" - ], - "youtube_trailer": null, - "episode_run_time": 25, - "category_id": "4", - "category_ids": [4] - } -] -``` - ---- - -### Series by Category - -```http -GET /player_api?username={username}&password={password}&action=get_series&category_id={id} -``` - -### Get Series Info - -```http -GET /player_api?username={username}&password={password}&action=get_series_info&series_id={id} -``` - -**Example Response** - -```json -{ - "seasons": [ - { - "air_date": "2001-06-02", - "episode_count": 26, - "id": 4937, - "name": "Season 1", - "overview": "", - "season_number": 1, - "vote_average": 4.5, - "cover": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljJBrZ7sNEJHE6hlqofFOJSRKiMRvSj08-T6iTQVWvj2I.jpg", - "cover_big": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljJBrZ7sNEJHE6hlqofFOJSRKiMRvSj08-T6iTQVWvj2I.jpg" - } - ], - "info": { - "name": "Braceface (2001)", - "title": "Braceface", - "year": 2001, - "cover": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljpT6mCZeHa4zLXMQZ2eaTpGZUSOucptPKyuP5tgpEZm0.jpg", - "plot": "The show, set in Elkford, British Columbia, is based around Sharon Spitz, who is a junior high school student with braces that get in her way of leading a normal teenage life. In the first season, she is enrolled at Mary Pickford Junior High.", - "cast": "Stacey DePass", - "director": "Charles E. Bastien", - "genre": "Drama, Animation, Comedy", - "release_date": "2001-06-02", - "releaseDate": "2001-06-02", - "last_modified": "1757348651", - "rating": "7", - "rating_5based": 3.5, - "backdrop_path": [ - "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCADBzwKB171qpiTTqrZdeATBaSzxZEgi9EPIvh5kU_50ecbH2L-yDt1PIfqijKTIMg.jpg" - ], - "youtube_trailer": null, - "episode_run_time": 25, - "category_id": "4", - "category_ids": [4] - }, - "episodes": { - "1": [ - { - "id": "2", - "episode_num": "1", - "title": "Braceface - S01E01 - Brace Yourself", - "container_extension": "mp4", - "info": { - "release_date": "2001-06-02", - "plot": "Sharon Spitz, a 13-year-old 8th grader gets braces the day before picture day. During the procedure, a thunderstorm causes a power outage, and something strange happens with Sharon's braces, making her do all sorts of weird things!", - "duration_secs": 649, - "duration": "00:10:49", - "movie_image": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCADBzwKB171qpiTTqrZdeARCK8Ch0a6wlNxuIHhbJ3c1Dg_AqkwSsH-qdpnCvcMsiy6U85vvi1bs1xDOddBeOEQ.jpg", - "bitrate": 2791, - "rating": "5", - "season": "1", - "tmdb_id": "105800", - "cover_big": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCADBzwKB171qpiTTqrZdeARCK8Ch0a6wlNxuIHhbJ3c1Dg_AqkwSsH-qdpnCvcMsiy6U85vvi1bs1xDOddBeOEQ.jpg" - }, - "subtitles": [], - "custom_sid": "", - "added": 1757348651, - "season": 1, - "direct_source": "" - } - ] - } -} -``` - ---- - -## 🎞 Media Access - -After authorization, you can access direct links to media files. - -* **Live TV (channel):** - -```http -http://176.124.192.118/live/{username}/{password}/{stream_id}.ts -``` - -* **Movie (VOD):** - -```http -http://176.124.192.118/movie/{username}/{password}/{vod_id}.mp4 -``` - -* **Episode:** - -```http -http://176.124.192.118/series/{username}/{password}/{episode_id}.mp4 -``` - -> ⚠️ **Important:** On the first request, a redirect occurs to `/auth/...` for authentication before content is served. - ---- - -## 🧾 Notes - -* **Output Formats:** Supported formats — `m3u8`, `ts`, `rtmp`. Choose based on your device. -* **Security:** All requests require valid authorization; monitor logs for access errors. -* **Integration:** Use tools like Postman for testing. - Implement response caching in your application for better performance. - -> 💬 If you have integration issues, please open an issue in the [repository](https://github.com/Vateron-Media/XC_VM/issues). - ---- - -

- ⬅️ Back to Main Page -

diff --git a/docs/en/builds/build_binaries.md b/docs/en/builds/build_binaries.md deleted file mode 100644 index 7c189f9ea..000000000 --- a/docs/en/builds/build_binaries.md +++ /dev/null @@ -1,321 +0,0 @@ -

🧱 XC_VM — Building Binary Files

- -

- This guide explains how to build binary files for XC_VM. - It is intended for developers and system administrators who want to customize the system. -

- -

- ⬅️ Back to Main Page -

- ---- - -## 📚 Navigation - -* [🔧 Prerequisites](#prerequisites) -* [🌐 Building NGINX](#building-nginx) -* [📺 Building NGINX with RTMP](#building-nginx-with-rtmp) -* [🐘 Building PHP-FPM](#building-php-fpm) -* [📦 Installing PHP Extensions](#installing-php-extensions) -* [⚙️ Building the `network` Binary](#building-the-network-binary) -* [✅ Conclusion](#conclusion) - ---- - -## 🔧 Prerequisites - -> ⚠️ **Warning:** All steps should be performed **on the server** where `xc_vm` is installed. - -### 1. Install Dependencies - -Install the necessary packages for building. This ensures all required tools and libraries are available. - -```bash -sudo apt-get install -y \ - build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev \ - libssl-dev libgd-dev libxml2 libxml2-dev uuid-dev libxslt1-dev \ - unzip wget curl git -``` - ---- - -## 🌐 Building NGINX - -### 1. Download Source Files - -#### OpenSSL - -```bash -wget https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz -tar -xzvf openssl-3.5.1.tar.gz -``` - -#### Zlib - -```bash -wget https://zlib.net/zlib-1.3.1.tar.gz -tar -xzvf zlib-1.3.1.tar.gz -``` - -#### PCRE - -```bash -wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz -tar -xzvf pcre-8.45.tar.gz -``` - -#### FLV Module - -```bash -wget https://github.com/winshining/nginx-http-flv-module/archive/refs/tags/v1.2.12.zip -unzip v1.2.12.zip -``` - -#### Nginx - -```bash -wget https://nginx.org/download/nginx-1.28.0.tar.gz -tar -zxvf nginx-1.28.0.tar.gz -cd nginx-1.28.0 -``` - -### 2. Configure Build - -Configure a static build with required modules: - -```bash -./configure \ - --prefix=/home/xc_vm/bin/nginx \ - --with-compat \ - --with-http_auth_request_module \ - --with-file-aio \ - --with-threads \ - --with-http_gzip_static_module \ - --with-http_realip_module \ - --with-http_flv_module \ - --with-http_mp4_module \ - --with-http_secure_link_module \ - --with-http_slice_module \ - --with-http_ssl_module \ - --with-http_stub_status_module \ - --with-http_sub_module \ - --with-http_v2_module \ - --with-cc-opt='-static -static-libgcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' \ - --with-ld-opt='-static -Wl,-z,relro -Wl,-z,now -pie' \ - --with-pcre=../pcre-8.45 \ - --with-pcre-jit \ - --with-zlib=../zlib-1.3.1 \ - --with-openssl=../openssl-3.5.1 \ - --with-openssl-opt=no-nextprotoneg -``` - -### 3. Build and Install - -```bash -make -make install -``` - ---- - -## 📺 Building NGINX with RTMP - -### 1. Download RTMP Module - -```bash -wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz -tar -xzvf v1.2.2.tar.gz -``` - -### 2. Configure Build - -```bash -cd nginx-1.28.0 -./configure \ - --prefix=/home/xc_vm/bin/nginx_rtmp \ - --add-module=../nginx-http-flv-module-1.2.12 \ - --with-compat \ - --with-http_auth_request_module \ - --with-file-aio \ - --with-threads \ - --with-http_gzip_static_module \ - --with-http_realip_module \ - --with-http_flv_module \ - --with-http_mp4_module \ - --with-http_secure_link_module \ - --with-http_slice_module \ - --with-http_ssl_module \ - --with-http_stub_status_module \ - --with-http_sub_module \ - --with-http_v2_module \ - --with-cc-opt='-static -static-libgcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' \ - --with-ld-opt='-static -Wl,-z,relro -Wl,-z,now -pie' -``` - -### 3. Build and Install - -```bash -make -make install -``` - -### 4. Rename Executable - -```bash -mv /home/xc_vm/bin/nginx_rtmp/sbin/nginx /home/xc_vm/bin/nginx_rtmp/sbin/nginx_rtmp -``` - ---- - -## 🐘 Building PHP-FPM - -### 1. Install Dependencies - -```bash -sudo apt-get install -y \ - libcurl4-gnutls-dev libbz2-dev libzip-dev autoconf automake \ - libtool m4 gcc make pkg-config libmaxminddb-dev libssh2-1-dev -``` - -### 2. Download PHP Source - -```bash -wget -O php-8.1.33.tar.gz http://php.net/get/php-8.1.33.tar.gz/from/this/mirror -tar -xzvf php-8.1.33.tar.gz -cd php-8.1.33 -``` - -### 3. Configure Build - -```bash -./configure \ - --prefix=/home/xc_vm/bin/php \ - --with-fpm-user=xc_vm \ - --with-fpm-group=xc_vm \ - --enable-gd \ - --with-jpeg \ - --with-freetype \ - --enable-static \ - --disable-shared \ - --enable-opcache \ - --enable-fpm \ - --without-sqlite3 \ - --without-pdo-sqlite \ - --enable-mysqlnd \ - --with-mysqli \ - --with-curl \ - --disable-cgi \ - --with-zlib \ - --enable-sockets \ - --with-openssl \ - --enable-shmop \ - --enable-sysvsem \ - --enable-sysvshm \ - --enable-sysvmsg \ - --enable-calendar \ - --disable-rpath \ - --enable-inline-optimization \ - --enable-pcntl \ - --enable-mbregex \ - --enable-exif \ - --enable-bcmath \ - --with-mhash \ - --with-gettext \ - --with-xmlrpc \ - --with-xsl \ - --with-libxml \ - --with-pdo-mysql \ - --disable-mbregex \ - --with-pear -``` - -### 4. Build and Install - -```bash -make -make install -``` - ---- - -## 📦 Installing PHP Extensions - -Use the built-in `pecl` to install extensions: - -```bash -/home/xc_vm/bin/php/bin/pecl install maxminddb -/home/xc_vm/bin/php/bin/pecl install ssh2 -/home/xc_vm/bin/php/bin/pecl install igbinary -/home/xc_vm/bin/php/bin/pecl install redis -``` - -### Configuring Redis Extension - -During PECL installation, you will be prompted: - -``` -enable igbinary serializer support? [no] : yes -enable lzf compression support? [no] : -enable zstd compression support? [no] : -enable msgpack serializer support? [no] : -enable lz4 compression? [no] : -use system liblz4? [yes] : -``` - -Recommended answers: `yes` for igbinary, others optional. - ---- - -## ⚙️ Building the `network` Binary - -### 1. Install `PyInstaller` (one-time) - -```bash -pip install -U pyinstaller -``` - -### 2. Build Binary - -```bash -cd /home/xc_vm/bin -pyinstaller --onefile network.py -``` - -The executable will be located in: - -```bash -/home/xc_vm/bin/dist/network -``` - -### 3. Move Binary to Final Location - -```bash -mv /home/xc_vm/bin/dist/network /home/xc_vm/bin/network -``` - -### 4. Clean Temporary Directories - -```bash -rm -rf build dist network.spec __pycache__ -``` - ---- - -## ✅ Conclusion - -After completing all steps, you will have your own statically built binaries: - -* `nginx` -* `nginx_rtmp` -* `php-fpm` -* `pecl` extensions -* `network` (Python script binary) - -> 💡 **Tip:** If issues occur, check build logs or open an [issue](https://github.com/Vateron-Media/XC_VM/issues). - -

- ⬅️ Back to Main Page -

- ---- \ No newline at end of file diff --git a/docs/en/builds/build_ffmpeg.md b/docs/en/builds/build_ffmpeg.md deleted file mode 100644 index 53e0fafc1..000000000 --- a/docs/en/builds/build_ffmpeg.md +++ /dev/null @@ -1,320 +0,0 @@ -Вот английский перевод руководства по сборке FFmpeg для XC_VM: - ---- - -

🚀 XC_VM — FFmpeg Build Guide

- -

- This guide explains how to build FFmpeg with NVIDIA hardware acceleration (NVENC/CUVID) and statically link libraries for full portability within the XC_VM project. -

- -

- ⬅️ Back to Main Page -

- ---- - -## 📚 Navigation - -* [📋 Requirements](#requirements) -* [🔧 Configuration](#configuration) -* [🛠 Install Build Tools](#install-build-tools) -* [🎶 Compile and Include Codecs](#compile-and-include-codecs) -* [🖥 NVIDIA & CUDA Installation](#nvidia--cuda-installation) -* [🔨 FFmpeg Build](#ffmpeg-build) -* [📦 Installation](#installation) -* [✅ Verification](#verification) -* [🧾 Notes](#notes) -* [🔄 Version Compatibility](#version-compatibility) - ---- - -## 📋 Requirements - -* **Ubuntu 22.04 or newer** — recommended OS for a stable build. -* NVIDIA GPU with **NVENC support** (optional but recommended for hardware acceleration). -* ~15 GB of free disk space for sources and temporary files. -* Stable internet connection to download dependencies. - -> 💡 **Tip:** Ensure your system is updated before starting to avoid package conflicts. - ---- - -## 🔧 Configuration - -Set environment variables to customize the build, allowing easy adjustments to versions and paths: - -```bash -# FFmpeg version to build -export FFMPEG_VERSION="8.0" - -# Installation directory -export INSTALL_DIR="/home/xc_vm/bin/ffmpeg_bin" - -# Build directory -export BUILD_DIR="$HOME/ffmpeg_sources" - -# CUDA version -export CUDA_VERSION="12-2" - -# NVIDIA driver version -export NVIDIA_DRIVER_VERSION="535" -``` - ---- - -## 🛠 Install Build Tools - -Update the system and install essential development packages: - -```bash -sudo apt-get update -qq && sudo apt-get -y install \ - autoconf automake build-essential cmake git-core \ - libass-dev libfreetype6-dev libgnutls28-dev libmp3lame-dev \ - libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev \ - libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev \ - meson ninja-build pkg-config texinfo wget yasm \ - zlib1g-dev mercurial nasm libssl-dev software-properties-common -``` - ---- - -## 🎶 Compile and Include Codecs - -Build libraries from source for static integration into FFmpeg, supporting popular formats without external dependencies. - -### 2.1 Create Build Directory - -```bash -mkdir -p ${BUILD_DIR:-~/ffmpeg_sources} && cd ${BUILD_DIR:-~/ffmpeg_sources} -``` - -### 2.2 H.264 (libx264) - -```bash -git clone https://code.videolan.org/videolan/x264.git -cd x264 -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared --enable-pic -make -j$(nproc) -sudo make install -cd .. -``` - -### 2.3 H.265 (libx265) - -```bash -git clone https://bitbucket.org/multicoreware/x265_git.git -cd x265_git/build -cmake ../source -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR:-$HOME/ffmpeg_build}" -DENABLE_SHARED=OFF -make -j$(nproc) -sudo make install -cd ../.. -``` - -### 2.4 VP8/VP9 (libvpx) - -```bash -git clone https://chromium.googlesource.com/webm/libvpx -cd libvpx -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared --enable-pic -make -j$(nproc) -sudo make install -cd .. -``` - -### 2.5 Opus Audio (libopus) - -```bash -wget https://downloads.xiph.org/releases/opus/opus-1.5.2.tar.gz -tar -xvzf opus-1.5.2.tar.gz -cd opus-1.5.2 -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared -make -j$(nproc) -sudo make install -cd .. -``` - -### 2.6 Additional Libraries - -* **libass** (subtitles) -* **libfreetype** (fonts) -* **libvorbis** (audio) -* **libmp3lame** (MP3) -* **libtheora** (Theora) -* **librtmp** (RTMP) -* **libunistring** (required by gnutls and librtmp) -* **bzip2** - -*(Use the same build commands as in the Russian version, adjusting paths as needed.)* - ---- - -## 🖥 NVIDIA & CUDA Installation - -Install NVIDIA drivers and CUDA for hardware acceleration. - -### 3.1 NVIDIA Driver Installation - -```bash -sudo add-apt-repository ppa:graphics-drivers/ppa -sudo apt update -sudo apt install nvidia-driver-${NVIDIA_DRIVER_VERSION:-535} -``` - -> ⚠️ **Important:** Reboot after installation and verify GPU compatibility. - -### 3.2 CUDA Toolkit Installation - -```bash -wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb -sudo dpkg -i cuda-keyring_1.0-1_all.deb -sudo apt update -sudo apt install -y cuda-toolkit-${CUDA_VERSION:-12-2} -``` - -### 3.3 NVENC Headers - -```bash -cd ${BUILD_DIR:-~/ffmpeg_sources} -git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git -cd nv-codec-headers -make -sudo make PREFIX="${INSTALL_DIR:-$HOME/ffmpeg_build}" install -cd .. -``` - -### 3.4 Optional NVIDIA Tools - -```bash -sudo apt install -y nvidia-cuda-toolkit nvidia-cuda-dev -``` - ---- - -## 🔨 FFmpeg Build - -### 4.1 Download Source - -```bash -cd ${BUILD_DIR:-~/ffmpeg_sources} -wget https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION:-8.0}.tar.bz2 -tar xjvf ffmpeg-${FFMPEG_VERSION:-8.0}.tar.bz2 -cd ffmpeg-${FFMPEG_VERSION:-8.0} -``` - -### 4.2 Configuration - -```bash -export PATH="${INSTALL_DIR:-$HOME/bin}:$PATH" -export PKG_CONFIG_PATH="${INSTALL_DIR:-$HOME/ffmpeg_build}/lib/pkgconfig" - -./configure \ - --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" \ - --pkg-config-flags="--static" \ - --extra-cflags="-I${INSTALL_DIR:-$HOME/ffmpeg_build}/include -I/usr/local/cuda/include" \ - --extra-ldflags="-L${INSTALL_DIR:-$HOME/ffmpeg_build}/lib -L/usr/local/cuda/lib64 -Wl,-Bstatic -lcrypto -lssl -Wl,-Bdynamic" \ - --extra-version=XCVM \ - --extra-libs="-lsupc++ -lgmp -lz -lunistring -lpthread -lm -lrt -ldl" \ - --bindir="${INSTALL_DIR:-$HOME/bin}" \ - --enable-gpl \ - --enable-gnutls \ - --enable-libass \ - --enable-libfreetype \ - --enable-libmp3lame \ - --enable-libopus \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libx264 \ - --enable-libx265 \ - --enable-librtmp \ - --enable-libtheora \ - --enable-bzlib \ - --enable-fontconfig \ - --enable-zlib \ - --enable-nvenc \ - --enable-ffnvcodec \ - --enable-cuvid \ - --enable-version3 \ - --enable-nonfree \ - --enable-pthreads \ - --enable-runtime-cpudetect \ - --enable-gray \ - --disable-alsa \ - --disable-indev=alsa \ - --disable-outdev=alsa \ - --disable-ffplay \ - --disable-doc \ - --disable-debug \ - --disable-autodetect \ - --enable-static \ - --enable-muxer=hls \ - --enable-muxer=dash \ - --enable-demuxer=hls \ - --extra-cflags=--static \ - --target-os=linux -``` - -### 4.3 Compile - -```bash -make -j$(nproc) -``` - ---- - -## 📦 Installation - -```bash -mkdir -p ${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ -cp ffmpeg ffprobe ${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ -``` - ---- - -## ✅ Verification - -Check version and NVIDIA support: - -```bash -${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ffmpeg -version -${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ffprobe -version -``` - -Check NVENC and CUVID support: - -```bash -${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ffmpeg -encoders | grep nvenc -${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ffmpeg -decoders | grep cuvid -``` - ---- - -## 📝 Notes - -1. All libraries are statically linked into the FFmpeg binary, ensuring full portability. -2. The NVIDIA driver must be compatible with your GPU. -3. A **reboot** may be required after installing drivers. -4. Building FFmpeg is CPU- and memory-intensive. -5. The resulting binary will be large due to included dependencies. -6. Adjust environment variables to match your system. -7. Configuration flags may need adjustments for different FFmpeg versions. - ---- - -## 🔄 Version Compatibility - -| FFmpeg Version | Recommended CUDA | Notes | -|----------------|------------------|------------------| -| 8.x | 12.2+ | Latest features | -| 7.x | 12.0+ | Stable | -| 6.x | 11.8+ | Outdated | - -Check the [FFmpeg documentation](https://ffmpeg.org/) for specific version requirements. - ---- - -

- ⬅️ Назад на главную -

- ---- \ No newline at end of file diff --git a/docs/en/faq.md b/docs/en/faq.md deleted file mode 100644 index a43ed2cf8..000000000 --- a/docs/en/faq.md +++ /dev/null @@ -1,78 +0,0 @@ -

❓ FAQ — Frequently Asked Questions

- -

- Here you’ll find answers to the most common questions and issues when working with XC_VM. -

- ---- - -## ⚙️ Stream Issues - -
-❌ My stream doesn’t start on MAIN or LB - ---- - -### 🔍 Diagnostics - -Connect to your server console and run the following command: - -```bash -sudo -u xc_vm /home/xc_vm/bin/php/bin/php /home/xc_vm/includes/cli/monitor.php 291 -```` - -> 🧩 Where `291` is your **stream ID** (replace it with your own). - ---- - -### 📄 What the command does - -The **monitor.php** script tries to start the stream manually and displays an error if it fails. - ---- - -### ⚠️ Possible causes - -#### 1️⃣ Missing system libraries - -If the output contains an error like: - -``` -error while loading shared libraries: libxyz.so.1: cannot open shared object file -``` - -Install the missing library with: - -```bash -sudo apt install -``` - -After installation, rerun the test. - -> 💬 Let me know if a library needs to be added to the installation script. - ---- - -#### 2️⃣ Error not related to libraries - -If the error is of another type — send its output so I can help diagnose it. - ---- - -### 🧾 Summary - -1. Run the diagnostic command. -2. Check for any errors. -3. Install missing libraries if necessary. -4. Report any other errors for further analysis. - ---- - -
- ---- - -📘 *This page is updated over time. If you discover a new common issue — please suggest it in [Issues](https://github.com/Vateron-Media/XC_VM/issues).* - ---- - diff --git a/docs/en/main-page.md b/docs/en/main-page.md deleted file mode 100644 index 9a0fdb70e..000000000 --- a/docs/en/main-page.md +++ /dev/null @@ -1,53 +0,0 @@ -

📚 XC_VM Documentation

- -

- Welcome to the official XC_VM documentation!
- Here you’ll find everything you need to work with the project — from API guides to build and update instructions. -

- ---- - -## 🔌 API Reference - -| Section | Description | -|:---------|:-------------| -| [System API](api/system_api.md) | Core system endpoints and utilities. | -| [Get Playlist](api/playlist.md) | Generate and download user playlists. | -| [XtreamCodes API](api/xtreamcodes_api.md) | Integration with XtreamCodes-compatible systems. | - ---- - -## 🛠 Build & Compilation - -| Section | Description | -|:---------|:-------------| -| [Binaries](builds/build_binaries.md) | Instructions for building core binary components. | -| [FFmpeg](builds/build_ffmpeg.md) | Guide to building and configuring FFmpeg for XC_VM. | - ---- - -## 🔄 Update & Release - -| Section | Description | -|:---------|:-------------| -| [Panel Update](update.md) | Step-by-step guide for upgrading XC_VM to the latest version. | -| [Pre-Release Checklist](updates_checklist.md) | A checklist to follow before publishing a new release. | - ---- - -## 📦 Additional Resources - -| Section | Description | -|:---------|:-------------| -| [Migration Guide](migration_guide.md) | Step-by-step guide for migrating from XUI, Xtream Codes, and similar panels. | -| [FAQ](faq.md) | Frequently asked questions and troubleshooting. | - ---- - -

- - 🔗 Back to Repository - -

- ---- diff --git a/docs/en/migration_guide.md b/docs/en/migration_guide.md deleted file mode 100644 index a6712f969..000000000 --- a/docs/en/migration_guide.md +++ /dev/null @@ -1,118 +0,0 @@ -

🧭 XC_VM Migration Guide

- -

- Easily migrate from compatible IPTV systems using the built-in XC_VM migration tool. -

- -

- ⬅️ Back to Main Page -

- ---- - -## 📚 Navigation - -* [⚙️ Before You Start](#before-you-start) -* [🚀 Migration Steps](#migration-steps) -* [🔑 Restoring Access After Migration](#restoring-access-after-migration) -* [🧩 Post-Migration](#post-migration) -* [🖥️ Load Balancer Preparation](#load-balancer-preparation) - ---- - -## ⚙️ Before You Start - -> 💡 **Recommendation:** -> It’s best to perform migration on a **fresh XC_VM installation**. - -If you decide to use an **existing installation**, note the following: - -* XC_VM **will delete all tables** in your main database that match the data found in your migration database. -* Always **create backups** before performing migration. - ---- - -## 🚀 Migration Steps - -### 1. Upload Backup - -Upload your existing database backup to the XC_VM server via **SFTP**. -In this example, it is located at: - -``` -/tmp/backup.sql -``` - -### 2. Restore Backup to Migration Database - -Use the tools script to clear the existing migration database and restore the backup: - -```bash -/home/xc_vm/tools migration "/tmp/backup.sql" -``` - -### 3. Start Migration - -If the restoration completed without errors, you can start the migration using one of two methods: - -#### 🧩 Option 1 — Command Line (Recommended) - -Run the migration manually: - -```bash -/home/xc_vm/bin/php/bin/php /home/xc_vm/includes/cli/migrate.php -``` - -#### 🌐 Option 2 — Web Installer - -If you prefer not to use the command line, you can return to the **web installer** via the link provided during panel setup. -Select the **“Migration”** option and follow the on-screen instructions to complete the process interactively. - -You will see real-time progress updates while XC_VM migrates your data. -Once complete, you will be able to log in to your system. - ---- - -## 🔑 Restoring Access After Migration - -If you cannot log in (e.g., due to missing username/password or invalid access code), you can use **rescue tools**: - -### Create a Rescue Access Code - -```bash -/home/xc_vm/tools access -``` - -### Create an Administrator to Restore Access - -```bash -/home/xc_vm/tools user -``` - -> ⚠️ After logging in, immediately **change the access code and administrator credentials**. - ---- - -## 🧩 Post-Migration - -* Load balancers will initially appear **disabled**. -* All streams will **automatically stop** for safety. - -### Next Steps - -1. Reinstall load balancers and **manually start streams** after confirming migration. -2. Review and update **XC_VM default settings**. -3. Check main server data — domains, SSL configuration, etc. -4. Ensure everything matches your environment and settings. - ---- - -## 🖥️ Load Balancer Preparation - -You will need to reinstall the OS on the load balancers. - ---- - -

- ⬅️ Back to Main Page -

diff --git a/docs/en/update.md b/docs/en/update.md deleted file mode 100644 index 21c30f32d..000000000 --- a/docs/en/update.md +++ /dev/null @@ -1,90 +0,0 @@ -

🔄 XC_VM Update Guide

- -

- This document describes the process of updating XC_VM via the web control panel. Follow these steps to safely update the system and avoid errors. -

- -

- ⬅️ Back to Main Page -

- ---- - -## 📚 Navigation - -* [⚙️ Before You Start](#before-you-start) -* [🪜 Step-by-Step Instructions](#step-by-step-instructions) -* [🧠 Notes and Recommendations](#notes-and-recommendations) - ---- - -## ⚙️ Before You Start - -Make sure all necessary resources are ready before updating. This helps prevent issues and data loss. - -* 🔑 **Administrator access** to the control panel. -* 🌐 **Stable internet connection**. -* 💾 **Server data backup** *(strongly recommended before starting)*. - -> ⚠️ **Important:** Do not interrupt the update process to avoid system corruption. - ---- - -## 🪜 Step-by-Step Instructions - -Follow these steps to update via the panel. Each step is illustrated with a screenshot for convenience. - -### 1️⃣ Go to the **“Servers”** Section - -* Log in to the control panel. -* Select **Servers** from the main menu. - - ![Servers](../img/update1.png) - -### 2️⃣ Select **“Manage Servers”** - -* In the **Servers** section, click **Manage Servers** to open the list of available servers. - - ![Manage Servers](../img/update2.png) - -### 3️⃣ Open the **“Actions”** Menu - -* Locate the server you want to update. -* Click the **Actions** button — usually a dropdown menu or an icon next to the server. - - ![Actions Menu](../img/update3.png) - -### 4️⃣ Go to **“Server Tools”** - -* In the **Actions** menu, select **Server Tools** to open server management utilities. - - ![Server Tools](../img/update4.png) - -### 5️⃣ Run **“Update Server”** - -* In **Server Tools**, click **Update Server**. -* Confirm the action if prompted (password may be required). -* Wait for the update to complete — **do not interrupt the process** to avoid errors. - - ![Update Server](../img/update5.png) - ---- - -## 🧠 Notes and Recommendations - -> 🕒 **Update Duration** -> Depends on server size and internet speed. Usually takes from a few minutes up to an hour. - -> ✅ **Post-Update Check** -> After completion, verify server status, restart services, and ensure everything is working correctly. - -> ⚠️ **Update Errors** -> If errors occur, check server logs (e.g., in `/home/xc_vm/logs/`). If the problem persists, create an issue in the [repository](https://github.com/Vateron-Media/XC_VM/issues). - ---- - -

- ⬅️ Back to Main Page -

- ---- \ No newline at end of file diff --git a/docs/en/updates_checklist.md b/docs/en/updates_checklist.md deleted file mode 100644 index 1fa1c06f1..000000000 --- a/docs/en/updates_checklist.md +++ /dev/null @@ -1,142 +0,0 @@ -

✅ XC_VM Release Preparation Checklist

- -

- This document describes the process of creating an XC_VM release — a step-by-step guide for developers on updating the version, building archives, and publishing on GitHub. -

- -

- ⬅️ Back to Main Page -

- ---- - -## 📚 Navigation - -* [🔢 1. Update Version](#1-update-version) -* [🧹 2. Deleted Files](#2-deleted-files) -* [⚙️ 3. Build Archives](#3-build-archives) -* [📝 4. Changelog](#4-changelog) -* [🚀 5. GitHub Release](#5-github-release) - ---- - -## 🔢 1. Update Version - -* Set the **new `XC_VM_VERSION` value** in the following files: - -**Files to edit:** - -``` -src/www/constants.php -src/www/stream/init.php -``` - -**Auto-update command:** - -```bash -find -type f -name "*.php" -exec sed -i \ -"s/define('XC_VM_VERSION', '[0-9]\+\.[0-9]\+\.[0-9]\+');/define('XC_VM_VERSION', 'X.Y.Z');/g" {} \; -``` - -**Commit the changes with a message:** - -```bash -git add . -git commit -m "Bump version to X.Y.Z" -git push -``` - -> 💡 **Tip:** Replace `X.Y.Z` with the actual version, e.g., `1.2.3`. - ---- - -## 🧹 2. Deleted Files - -* Generate a list of deleted files: - -```bash -make delete_files_list -``` - -* Open the file `dist/deleted_files.txt`. -* Copy the contents to `src/includes/cli/update.php` **after the comment** `// Update checkpoint` - -> ⚠️ **Important:** Ensure paths are correct to avoid deleting critical files. - ---- - -## ⚙️ 3. Build Archives - -* Run the following commands sequentially: - -```bash -make new -make lb -make main -make main_update -make lb_update -``` - -* Make sure the following files are created in `dist/`: - - * `loadbalancer.tar.gz` — LB installation archive - * `loadbalancer_update.tar.gz` — LB update archive - * `XC_VM.zip` — MAIN installation archive - * `update.tar.gz` — MAIN update archive - * `hashes.md5` — file with checksums - -> 🧰 **Check:** After building, verify archive integrity with `md5sum -c hashes.md5`. - ---- - -## 📝 4. Changelog - -Generate the changelog from git first: - -```bash -git log --pretty=format:"- %s (%h)" X.Y.Z..main > dist/changes.md -``` - -* **Then add current release changes** using this JSON: - -[https://github.com/Vateron-Media/XC_VM_Update/blob/main/changelog.json](https://github.com/Vateron-Media/XC_VM_Update/blob/main/changelog.json) - -* Add current release changes in JSON format: - -```json -[ - { - "version": "X.Y.Z", - "changes": [ - "Description of change 1", - "Description of change 2" - ] - } -] -``` - -> 💬 **Recommendation:** Keep descriptions concise and informative, focusing on key improvements and fixes. - ---- - -## 🚀 5. GitHub Release - -* Create a new release on [GitHub Releases](https://github.com/Vateron-Media/XC_VM/releases). - -* Attach the following files: - - * `dist/loadbalancer.tar.gz` - * `dist/XC_VM.zip` - * `dist/update.tar.gz` - * `dist/loadbalancer_update.tar.gz` - * `dist/hashes.md5` - -* Include the changelog in the release description. - -> ✅ **Completion:** After publishing, verify that all files are downloadable and checksums match. - ---- - -

- ⬅️ Back to Main Page -

diff --git a/docs/img/update1.png b/docs/img/update1.png deleted file mode 100644 index 64693ca7d..000000000 Binary files a/docs/img/update1.png and /dev/null differ diff --git a/docs/img/update2.png b/docs/img/update2.png deleted file mode 100644 index 57d3995e1..000000000 Binary files a/docs/img/update2.png and /dev/null differ diff --git a/docs/img/update3.png b/docs/img/update3.png deleted file mode 100644 index 52b9dc2e3..000000000 Binary files a/docs/img/update3.png and /dev/null differ diff --git a/docs/img/update4.png b/docs/img/update4.png deleted file mode 100644 index 0efeb2d67..000000000 Binary files a/docs/img/update4.png and /dev/null differ diff --git a/docs/img/update5.png b/docs/img/update5.png deleted file mode 100644 index cf4dcf706..000000000 Binary files a/docs/img/update5.png and /dev/null differ diff --git a/docs/ru/administration/ssl-generation.md b/docs/ru/administration/ssl-generation.md deleted file mode 100644 index 8002d37bb..000000000 --- a/docs/ru/administration/ssl-generation.md +++ /dev/null @@ -1,160 +0,0 @@ -

🔒 Генерация SSL-сертификата для Nginx в XC_VM

- -

- В этом документе описан процесс создания самоподписанного SSL-сертификата. Следуйте шагам, чтобы настроить безопасное HTTPS-соединение. -

- -

- ⬅️ Назад на главную -

- ---- - -## 📚 Навигация - -* [📘 Введение](#-введение) -* [🧭 Расположение конфигурации](#-расположение-конфигурации) -* [🧱 Шаг 1. Создание приватного ключа](#-шаг-1-создание-приватного-ключа) -* [⚙️ Шаг 2. Создание конфигурационного файла servercnf](#️-шаг-2-создание-конфигурационного-файла-servercnf) -* [🔑 Шаг 3. Генерация самоподписанного SSL-сертификата](#-шаг-3-генерация-самоподписанного-ssl-сертификата) -* [📂 Итоговые файлы](#-итоговые-файлы) -* [✅ Результат](#-результат) -* [⚠️ Примечания](#️-примечания) - ---- - -## 📘 Введение - -**SSL (Secure Sockets Layer)** используется для шифрования соединений между клиентом и сервером, обеспечивая безопасность данных и доверие пользователей. -В этой инструкции показано, как создать **самоподписанный SSL-сертификат** для встроенного **Nginx** в проекте **XC_VM**. - ---- - -## 🧭 Расположение конфигурации - -Все SSL-файлы (ключ, сертификат и конфигурация) хранятся в директории: - -```bash -/home/xc_vm/bin/nginx/conf -``` - -Перед началом работы перейдите в неё: - -```bash -cd /home/xc_vm/bin/nginx/conf -``` - ---- - -## 🧱 Шаг 1. Создание приватного ключа - -Сгенерируйте **RSA-приватный ключ** (2048 бит): - -```bash -openssl genrsa -out server.key 2048 -``` - -📄 После выполнения появится файл `server.key`, содержащий **закрытый ключ**. -Храните его **в секрете** — этот файл используется для подписи SSL-сертификата. - ---- - -## ⚙️ Шаг 2. Создание конфигурационного файла `server.cnf` - -Создайте файл конфигурации с параметрами сертификата: - -```bash -cat > server.cnf << EOF -[req] -distinguished_name = req_distinguished_name -x509_extensions = v3_req -prompt = no - -[req_distinguished_name] -C = RU -ST = Moscow -L = Moscow -O = XC_VM -OU = XC_VM -CN = XC_VM - -[v3_req] -keyUsage = keyEncipherment, dataEncipherment -extendedKeyUsage = serverAuth -subjectAltName = @alt_names - -[alt_names] -DNS.1 = XC_VM -EOF -``` - -📘 **Описание параметров:** - -| Поле | Значение | Назначение | -| ------- | -------- | ------------------------------- | -| `C` | RU | Страна (Country) | -| `ST` | Moscow | Регион (State) | -| `L` | Moscow | Город (Locality) | -| `O` | XC_VM | Организация | -| `OU` | XC_VM | Отдел / подразделение | -| `CN` | XC_VM | Имя хоста (Common Name) | -| `DNS.1` | XC_VM | Альтернативное имя домена (SAN) | - -> 💡 **Совет:** можно указать реальное доменное имя, например `DNS.1 = example.com`, чтобы избежать предупреждений в браузере. - ---- - -## 🔑 Шаг 3. Генерация самоподписанного SSL-сертификата - -Сгенерируйте сертификат с помощью созданного ключа и конфигурации: - -```bash -openssl req -new -x509 -key server.key -out server.crt -days 3650 -config server.cnf -``` - -📆 **Пояснения:** - -* `-new -x509` — создаёт новый самоподписанный сертификат. -* `-days 3650` — срок действия сертификата (10 лет). -* `-config server.cnf` — использование конфигурационного файла. -* Результатом будет файл `server.crt`. - ---- - -## 📂 Итоговые файлы - -После всех шагов в `/home/xc_vm/bin/nginx/conf` должны находиться: - -| Файл | Назначение | -| ------------ | ------------------------------ | -| `server.key` | Приватный ключ | -| `server.crt` | Самоподписанный SSL-сертификат | -| `server.cnf` | Конфигурация сертификата | - ---- - -## ✅ Результат - -Теперь ваш **XC_VM Nginx сервер** доступен по протоколу **HTTPS**, используя созданный самоподписанный сертификат. -Браузеры могут предупреждать о «недоверенном сертификате» — это нормально для самоподписанных SSL. - ---- - -## ⚠️ Примечания - -* Самоподписанные сертификаты подходят **для внутреннего использования или тестирования**. -* Для публичных доменов используйте сертификаты от **доверенных центров** (например, [Let's Encrypt](https://letsencrypt.org/)). -* При изменении доменного имени (`CN` или `DNS.1`) необходимо **сгенерировать сертификат заново**. -* Чтобы проверить сертификат, выполните: - -```bash -openssl x509 -in server.crt -text -noout -``` - ---- - -

- ⬅️ Назад на главную -

- ---- \ No newline at end of file diff --git a/docs/ru/administration/update-system.md b/docs/ru/administration/update-system.md deleted file mode 100644 index 6c280a541..000000000 --- a/docs/ru/administration/update-system.md +++ /dev/null @@ -1,177 +0,0 @@ -

⚙️ Механизм обновлений в XC_VM

- -

- Система обновлений XC_VM реализована как многоуровневый процесс — от веб-интерфейса до системных скриптов. - Такой подход обеспечивает надёжность, автоматизацию и целостность данных при обновлении панели. -

- -

- ⬅️ Назад на главную -

- ---- - -## 📚 Навигация - -* [🔁 1. Инициация обновления](#-1-инициация-обновления) -* [🕒 2. Запуск через CRON](#-2-запуск-через-cron) -* [🧠 3. Управление обновлением (PHP-уровень)](#-3-управление-обновлением-php-уровень) -* [🐍 4. Системное обновление (Python-уровень)](#-4-системное-обновление-python-уровень) -* [🔄 5. Завершение обновления](#-5-завершение-обновления) -* [✅ 6. Итоговая схема работы](#-6-итоговая-схема-работы) -* [🧩 Ключевые особенности](#-ключевые-особенности) - ---- - -## 🔁 1. Инициация обновления - -Процесс начинается с **нажатия кнопки "Обновить"** в веб-интерфейсе панели. - -* Создаётся сигнал `update`, который записывается в таблицу `signals` базы данных. -* Этот сигнал выступает **триггером**, запускающим дальнейший процесс обновления. - ---- - -## 🕒 2. Запуск через CRON - -Каждую **минуту** выполняется системное задание CRON: - -```bash -php /home/xc_vm/includes/cli/root_signals.php -``` - -Скрипт `root_signals.php` проверяет наличие новых сигналов и при обнаружении `update` запускает: - -```bash -/home/xc_vm/bin/php/bin/php /home/xc_vm/includes/cli/update.php update -``` - -> ⚙️ Этот механизм позволяет выполнять обновления **автоматически**, без ручного вмешательства администратора. - ---- - -## 🧠 3. Управление обновлением (PHP-уровень) - -Основная логика находится в: - -``` -/home/xc_vm/includes/cli/update.php -``` - -На этом этапе выполняются следующие действия: - -1. Определение **текущей версии панели** (`MAIN` или `LB`). -2. Получение данных о новой версии с **GitHub**: - - * Ссылка на архив обновления. - * Контрольная сумма (хеш) для проверки целостности. -3. Скачивание архива во временную директорию. -4. Проверка соответствия хеш-суммы. -5. Запуск системного обновления с помощью Python: - -```bash -sudo /usr/bin/python3 /home/xc_vm/update "/home/xc_vm/tmp/.update.tar.gz" "HASH" > /dev/null 2>&1 & -``` - ---- - -## 🐍 4. Системное обновление (Python-уровень) - -После вызова передача управления переходит к скрипту: - -``` -/home/xc_vm/update -``` - -Он выполняет операции на уровне системы: - -1. **Повторная проверка контрольной суммы** архива. -2. **Остановка панели**, чтобы избежать конфликтов при обновлении. -3. **Распаковка** обновления в каталог: - - ```bash - /home/xc_vm/ - ``` -4. **Настройка прав доступа:** - - ```bash - chown -R xc_vm:xc_vm /home/xc_vm/ - ``` -5. **Запуск пост-обновления:** - - ```bash - /home/xc_vm/bin/php/bin/php /home/xc_vm/includes/cli/update.php post-update - ``` -6. **Перезапуск панели** в рабочем режиме. - ---- - -## 🔄 5. Завершение обновления - -Финальные действия снова выполняются в `update.php`: - -1. Проверка, **включено ли автообновление LB**: - - * Если обновлялся `MAIN`, создаются сигналы обновления для всех Load Balancer’ов. -2. Обновление **версии панели** в базе данных. -3. Удаление устаревших файлов. -4. Повторное выравнивание прав: - - ```bash - chown -R xc_vm:xc_vm /home/xc_vm/ - ``` -5. Перезагрузка системных демонов: - - ```bash - sudo systemctl daemon-reload - ``` -6. Проверка статуса панели: - - ```bash - sudo /home/xc_vm/status - ``` -7. Завершение процесса обновления. - ---- - -## ✅ 6. Итоговая схема работы - -```text -[ Веб-интерфейс ] - │ - ▼ -[ БД: сигнал update ] - │ - ▼ -[ CRON → root_signals.php ] - │ - ▼ -[ update.php (PHP) ] - │ - ▼ -[ update (Python) ] - │ - ▼ -[ post-update → update.php ] - │ - ▼ -[ Завершение, рестарт демонов, обновление версии ] -``` - ---- - -## 🧩 Ключевые особенности - -* 🔒 **Двойная проверка целостности** (на уровне PHP и Python). -* 🧠 **Автоматическое распространение обновлений** между MAIN и LB. -* 🧹 **Очистка устаревших файлов** и выравнивание прав доступа. -* 🔄 **Безопасный перезапуск панели** после установки. -* ⚙️ **Гибкость и автономность** за счёт CRON и сигналов. - ---- - -

- ⬅️ Назад на главную -

- ---- \ No newline at end of file diff --git a/docs/ru/api/playlist.md b/docs/ru/api/playlist.md deleted file mode 100644 index a3fc17336..000000000 --- a/docs/ru/api/playlist.md +++ /dev/null @@ -1,124 +0,0 @@ -

📺 Получить список воспроизведения

- -

- Этот API предоставляет функции аутентификации и создания плейлистов для XC_VM. Клиенты могут аутентифицироваться с помощью имени пользователя/пароля или токена, после чего генерируется персонализированный плейлист. -

- -

- ⬅️ Назад на главную -

- ---- - -## 📚 Навигация - -- [📂 Расположение файла](#расположение-файла) -- [🔑 Аутентификация](#аутентификация) -- [🚀 Конечные точки](#конечные-точки) -- [❌ Коды ошибок](#коды-ошибок) -- [🧾 Примечания](#примечания) - ---- - -## 📂 Расположение файла - -Основной файл API расположен по следующему пути: - -```bash -/home/xc_vm/wwwdir/playlist.php -``` - ---- - -## 🔑 Аутентификация - -API требует аутентификацию либо через имя пользователя и пароль, либо через токен. Это обеспечивает безопасность доступа к контенту. - -### Базовый URL - -```http -http://<ваш-домен>:80/playlist -``` - ---- - -## 🚀 Конечные точки - -### 1. Аутентификация и создание плейлиста - -**Метод и конечная точка:** - -```http -GET / -``` - -**Параметры запроса:** - -| Параметр | Тип | Требуется | Описание | -|------------|----------|-----------|----------| -| username | string | Yes* | Имя пользователя для аутентификации (обязательно, если не используется `token`). | -| password | string | Yes* | Пароль для аутентификации (требуется, если `token` не используется). | -| token | string | Yes* | Токен аутентификации (требуется, если имя пользователя и пароль не используются). | -| type | string | No | Тип устройства (по умолчанию: `m3u_plus`). | -| key | string | No | Тип контента (live — прямой эфир, movies — фильмы, radio_streams — радио, series — сериалы). | -| output | string | No | Формат вывода (hls или m3u). | -| nocache | boolean | No | Если true, отключается кэширование. | - -> 💡 *Yes* — обязательно один из вариантов: либо username/password, либо token. - -**Примеры запросов:** - -```bash -curl -X GET "http://:80/playlist/username/password/type&output=hls&key=live" -``` - -```bash -curl -X GET "http://:80/playlist/token/type&output=hls&key=live" -``` - -**Ответ:** - -- Файл плейлиста в указанном формате (M3U или HLS). - ---- - -## ❌ Коды ошибок - -В случае ошибок API возвращает соответствующие коды для диагностики проблем. - -| Код ошибки | Описание | -|-------------------------|----------| -| NO_CREDENTIALS | Отсутствуют данные аутентификации. | -| INVALID_CREDENTIALS | Неверное имя пользователя, пароль или токен. | -| BLOCKED_USER_AGENT | Агент пользователя заблокирован. | -| EXPIRED | Срок действия учетной записи истек. | -| DEVICE_NOT_ALLOWED | Тип устройства не разрешен. | -| BANNED | Пользователь заблокирован. | -| DISABLED | Учетная запись отключена. | -| EMPTY_USER_AGENT | Агент пользователя необходим, но отсутствует. | -| NOT_IN_ALLOWED_IPS | IP-адрес не разрешен. | -| NOT_IN_ALLOWED_COUNTRY | Страна не разрешена. | -| NOT_IN_ALLOWED_UAS | Агент пользователя не разрешен. | -| ISP_BLOCKED | Провайдер заблокирован. | -| ASN_BLOCKED | Применено ограничение ASN. | -| DOWNLOAD_LIMIT_REACHED | Слишком много запросов. | -| GENERATE_PLAYLIST_FAILED | Не удалось сгенерировать список воспроизведения. | - -> ⚠️ **Совет:** Проверьте логи сервера для дополнительных деталей при возникновении ошибок. - ---- - -## 🧾 Примечания - -- **Параметры запроса:** Убедитесь, что все параметры указаны корректно, чтобы избежать ошибок аутентификации. -- **Ограничения:** API применяет фильтры по агенту пользователя, IP-адресу и стране для повышения безопасности. -- **Защита от перегрузки:** Установлены лимиты на количество запросов, чтобы предотвратить чрезмерную нагрузку на сервер. -- **Рекомендации:** Для тестирования используйте инструменты вроде cURL или Postman. В продакшене интегрируйте с вашим приложением для автоматизированной генерации плейлистов. - -> 💬 Если возникнут вопросы по интеграции, создайте issue в [репозитории](https://github.com/Vateron-Media/XC_VM/issues). - ---- - -

- ⬅️ Назад на главную -

\ No newline at end of file diff --git a/docs/ru/api/system_api.md b/docs/ru/api/system_api.md deleted file mode 100644 index d6d968171..000000000 --- a/docs/ru/api/system_api.md +++ /dev/null @@ -1,164 +0,0 @@ -

📡 Системный API (Требуется проверка методов)

- -

- Этот API предоставляет различные функциональные возможности, включая просмотр журналов, управление видео по запросу (VOD) и потоками, получение статистики, выполнение фоновых команд и многое другое. -

- -

- ⬅️ Назад на главную -

- ---- - -## Расположение файлов -``` -/home/xc_vm/wwwdir/api.php -``` - -## Обзор архитектуры API -**Базовый URI**: `http://:25461/api.php` -**Аутентификация**: `password` параметр, соответствующий конфигурации `live_streaming_pass` -**Пример**: `http://:25461/api.php?&password=` - ---- - -## Основные конечные точки API - -### 1. Управление VOD -#### **GET** `/api.php?action=vod` -**Описание:** Запуск или остановка потоков видео по запросу (VOD). -**Параметры:** -| Параметр | Тип | Требуется | Описание | -|------------|----------|----------|-------------| -|stream_ids |массив целых чисел |yes |Список идентификаторов потоков. | -|function |string |yes |Действие, которое необходимо выполнить (`start` или `stop`)| - ---- - -### 2. Управление трансляций -#### **GET** `/api.php?action=stream` -**Описание:** Запуск или остановка прямых трансляций. -**Параметры:** -| Параметр | Тип | Требуется | Описание | -|------------|----------|----------|-------------| -|stream_ids |массив целых чисел |yes |Список идентификаторов потоков. | -|function |string |yes |Действие, которое необходимо выполнить (`start` или `stop`)| - ---- - -### 3. Телеметрия системы -#### **GET** `/api.php?action=stats` -**Описание:** Получает системную статистику. -**Ответ:** -```json -{ - "cpu": 8.32, - "cpu_cores": 56, - "cpu_avg": 8.86, - "cpu_name": "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz", - ..., -} -``` - ---- - -### 4. Проверка жизненного цикла процесса -#### **GET** `/api.php?action=pidsAreRunning` -**Описание:** Проверяет, запущены ли заданные идентификаторы процессов (PID). -| Параметр | Тип | Требуется | Описание | -|------------|----------|----------|-------------| -|pids |массив целых чисел | yes | Список PID для проверки. | -|program |string |yes |Имя программы. | - ---- - -### 5. Получение файла -#### **GET** `/api.php?action=getFile` -**Описание:** Загружает указанный файл. -**Параметры:** -| Параметр | Тип | Требуется | Описание | -|------------|----------|----------|-------------| -|filename |string |yes |Путь к файлу.| -**Ответ:** -- Содержимое файла. - ---- - -### 6. Список содержимого каталога -#### **GET** `/api.php?action=viewDir` -**Описание:** Получает список каталогов. -**Параметры:** -| Параметр | Тип | Требуется | Описание | -|------------|----------|----------|-------------| -|dir |string |yes |Путь к каталогу.| -**Ответ:** -```html - -``` - ---- - -### 7. Перенаправление соединения -#### **GET** `/api.php?action=redirect_connection` -**Описание:** Перенаправляет соединение на основе идентификатора активности и идентификатора потока. -**Параметры:** -| Параметр | Тип | Обязательный | Описание | -|------------|----------|----------|-------------| -|activity_id |целое число |да |Идентификатор активности. | -|stream_id |целое число |да |Идентификатор потока. | - ---- - -### 8. Отправить сигнал -#### **GET** `/api.php?action=signal_send` -**Описание:** Отправляет сигнальное сообщение для выполнения действия. -**Параметры:** -| Параметр | Тип | Обязательный | Описание | -|------------|----------|----------|-------------| -|message |строка |да |Предложение для отмены. | -|activity_id |целое число |да |Идентификатор активности.| - - ---- - -### 9. Очистить папку с временными файлами -#### **GET** `/api.php?action=free_temp` -**Описание:** Удаляет временные файлы и запускает скрипт для кэширования. - ---- - -### 10. Очистить папку трансляций -#### **GET** `/api.php?action=free_streams` -**Описание:** Очищает папку потоков. - ---- - -### 11. Получить свободное место -#### **GET** `/api.php?action=get_free_space` -**Описание:** Возвращает информацию о свободном дисковом пространстве. - ---- - -### 12. Получить PID -#### **GET** `/api.php?action=get_pids` -**Описание:** Возвращает список запущенных процессов. - ---- -### 13. Завершить процес по PID -#### **GET** `/api.php?action=kill_pid` -**Описание:** Убивает процесс по PID. - ---- - -## Коды ошибок -| Код | Описание | -|----------------------|-------------| -| INVALID_API_PASSWORD | Пароль API неверен | -| API_IP_NOT_ALLOWED | IP-адрес не разрешен | -| INVALID_REQUEST | Неверные параметры запроса | -## Примечания -- Все запросы должны быть аутентифицированы с помощью правильного пароля API. -- Некоторые действия могут потребовать дополнительных разрешений или ограничений в зависимости от конфигурации сервера. diff --git a/docs/ru/api/xtreamcodes_api.md b/docs/ru/api/xtreamcodes_api.md deleted file mode 100644 index b494ab29f..000000000 --- a/docs/ru/api/xtreamcodes_api.md +++ /dev/null @@ -1,518 +0,0 @@ -

📡 XtreamCodes API

- -

- API предоставляет доступ к IPTV-потокам (Live TV, Радио), VOD (фильмы), сериалам и EPG (телепрограмма) в приложениях, совместимых с XtreamCodes. Это ключевой компонент для интеграции с XC_VM. -

- -

- ⬅️ Назад на главную -

- ---- - -## 📚 Навигация - -- [📂 Расположение файлов](#расположение-файлов) -- [📑 Содержание](#содержание) -- [🔑 Авторизация](#авторизация) -- [📺 Live TV (ТВ и Радио)](#live-tv-тв-и-радио) -- [🎬 VOD (Фильмы)](#vod-фильмы) -- [📽 Сериалы](#сериалы) -- [🎞 Получение медиаконтента](#получение-медиаконтента) -- [🧾 Примечания](#примечания) - ---- - -## 📂 Расположение файлов - -Основной файл API расположен по следующему пути: - -``` -/home/xc_vm/wwwdir/player_api.php -``` - ---- - -## 📑 Содержание - -API разделен на ключевые разделы для удобства интеграции. Каждый эндпоинт описан с примерами запросов и ответов. - ---- - -## 🔑 Авторизация - -Авторизация — первый шаг для доступа к контенту. Она подтверждает учетные данные пользователя и возвращает информацию о сервере. - -### Запрос - -```http -GET /player_api?username={username}&password={password} -``` - -### Пример ответа - -```json -{ - "user_info": { - "username": "testxc", - "password": "testxc", - "message": "Welcome to XC_VM", - "auth": 1, - "status": "Active", - "exp_date": null, - "is_trial": 0, - "created_at": 1757353729, - "max_connections": 1, - "allowed_output_formats": [ - "m3u8", - "ts", - "rtmp" - ] - }, - "server_info": { - "xui": true, - "version": "1.1.0", - "url": "176.124.192.118", - "port": "80", - "https_port": "443", - "server_protocol": "http", - "rtmp_port": "8880", - "timestamp_now": 1757442189, - "time_now": "2025-09-09 19:23:09", - "timezone": "Europe/London" - } -} -``` - -> 💡 **Совет:** Используйте полученные данные для последующих запросов, чтобы избежать повторной авторизации. - ---- - -## 📺 Live TV (ТВ и Радио) - -Раздел для работы с живыми трансляциями, включая категории, стримы и EPG. - -### Получить все категории Live - -```http -GET /player_api?username={username}&password={password}&action=get_live_categories -``` - -**Пример ответа** - -```json -[ - { - "category_id": "1", - "category_name": "News", - "parent_id": 0 - }, - { - "category_id": "2", - "category_name": "Sports", - "parent_id": 0 - } -] -``` - -### Получить все Live-стримы - -```http -GET /player_api?username={username}&password={password}&action=get_live_streams -``` - -**Пример ответа** - -```json -[ - { - "num": 1, - "name": "BBC News", - "stream_type": "live", - "stream_id": 101, - "stream_icon": "http://176.124.192.118/images/bbc.png", - "epg_channel_id": "bbc.news.uk", - "added": "1660568200", - "category_id": "1", - "custom_sid": "", - "tv_archive": 0, - "direct_source": "", - "tv_archive_duration": 0 - } -] -``` - -### Получить стримы категории - -```http -GET /player_api?username={username}&password={password}&action=get_live_streams&category_id={id} -``` - -### Получить EPG канала (краткая программа) - -```http -GET /player_api?username={username}&password={password}&action=get_short_epg&stream_id={id}&limit={N} -``` - -**Пример ответа** - -```json -{ - "epg_listings": [ - { - "id": 1, - "title": "Morning News", - "start": "2022-08-15 07:00:00", - "end": "2022-08-15 08:00:00", - "description": "Daily morning news update." - } - ] -} -``` - -### Получить полную программу канала - -```http -GET /player_api?username={username}&password={password}&action=get_simple_data_table&stream_id={id} -``` - -### EPG для всех каналов (XMLTV) - -```http -GET /xmltv.php?username={username}&password={password} -``` - -**Пример ответа (XMLTV)** - -```xml - - - BBC News - - - Morning News - Daily morning news update. - - -``` - ---- - -## 🎬 VOD (Фильмы) - -Раздел для видео по запросу, включая категории и информацию о фильмах. - -### Категории фильмов - -```http -GET /player_api?username={username}&password={password}&action=get_vod_categories -``` - -**Пример ответа** - -```json -[ - { - "category_id": "10", - "category_name": "Action", - "parent_id": 0 - }, - { - "category_id": "11", - "category_name": "Drama", - "parent_id": 0 - } -] -``` - -> ⚠️ **Примечание:** Полный список категорий может быть большим; в примерах показаны только фрагменты. - -### Получить все VOD-стримы - -```http -GET /player_api?username={username}&password={password}&action=get_vod_streams -``` - -**Пример ответа** - -```json -[ - { - "num": 1, - "name": "The Dark Knight (2008)", - "title": "The Dark Knight", - "year": 2008, - "stream_type": "movie", - "stream_id": 1, - "stream_icon": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljuWhs_Jbsg3Nu1tBcV0ErgPL_v9ei3c1fI0mNI7C5eos.jpg", - "rating": 8.5, - "rating_5based": 4.3, - "added": 1757343129, - "plot": "Batman raises the stakes in his war on crime. With the help of Lt. Jim Gordon and District Attorney Harvey Dent, Batman sets out to dismantle the remaining criminal organizations that plague the streets. The partnership proves to be effective, but they soon find themselves prey to a reign of chaos unleashed by a rising criminal mastermind known to the terrified citizens of Gotham as the Joker.", - "cast": "Christian Bale, Heath Ledger, Aaron Eckhart, Michael Caine, Maggie Gyllenhaal", - "director": "Christopher Nolan, Christopher Nolan, Steve Gehrke", - "genre": "Drama, Action, Crime", - "release_date": "2008-07-16", - "youtube_trailer": "kmJLuwP3MbY", - "episode_run_time": "152", - "category_id": "1", - "category_ids": [1, 2], - "container_extension": "mp4", - "custom_sid": "", - "direct_source": "" - } -] -``` - ---- - -### Фильмы по категории - -```http -GET /player_api?username={username}&password={password}&action=get_vod_streams&category_id={id} -``` - -### Информация о фильме - -```http -GET /player_api?username={username}&password={password}&action=get_vod_info&vod_id={id} -``` - -**Пример ответа** - -```json -{ - "info": { - "kinopoisk_url": "https://www.themoviedb.org/movie/155", - "tmdb_id": 155, - "name": "The Dark Knight", - "o_name": "The Dark Knight", - "cover_big": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljuWhs_Jbsg3Nu1tBcV0ErgPL_v9ei3c1fI0mNI7C5eos.jpg", - "movie_image": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljuWhs_Jbsg3Nu1tBcV0ErgPL_v9ei3c1fI0mNI7C5eos.jpg", - "release_date": "2008-07-16", - "episode_run_time": 152, - "youtube_trailer": "kmJLuwP3MbY", - "director": "Christopher Nolan, Christopher Nolan, Steve Gehrke", - "actors": "Christian Bale, Heath Ledger, Aaron Eckhart, Michael Caine, Maggie Gyllenhaal", - "cast": "Christian Bale, Heath Ledger, Aaron Eckhart, Michael Caine, Maggie Gyllenhaal", - "description": "Batman raises the stakes in his war on crime. With the help of Lt. Jim Gordon and District Attorney Harvey Dent, Batman sets out to dismantle the remaining criminal organizations that plague the streets. The partnership proves to be effective, but they soon find themselves prey to a reign of chaos unleashed by a rising criminal mastermind known to the terrified citizens of Gotham as the Joker.", - "plot": "Batman raises the stakes in his war on crime. With the help of Lt. Jim Gordon and District Attorney Harvey Dent, Batman sets out to dismantle the remaining criminal organizations that plague the streets. The partnership proves to be effective, but they soon find themselves prey to a reign of chaos unleashed by a rising criminal mastermind known to the terrified citizens of Gotham as the Joker.", - "age": "", - "mpaa_rating": "", - "rating_count_kinopoisk": 0, - "country": "United Kingdom", - "genre": "Drama, Action, Crime", - "backdrop_path": [ - "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCADBzwKB171qpiTTqrZdeATVLqPvNOO1tw6QZZproFAJRjrtA4EzIxoMJZlI2R3OlQ.jpg" - ], - "duration_secs": 9120, - "duration": "02:32:00", - "bitrate": 0, - "rating": 8.52, - "releasedate": "2008-07-16", - "subtitles": [] - }, - "movie_data": { - "stream_id": 1, - "name": "The Dark Knight (2008)", - "title": "The Dark Knight", - "year": 2008, - "added": 1757343129, - "category_id": "1", - "category_ids": [1, 2], - "container_extension": "mp4", - "custom_sid": "", - "direct_source": "" - } -} -``` - ---- - -## 📽 Сериалы - -Раздел для работы с сериалами, включая категории, сезоны и эпизоды. - -### Категории сериалов - -```http -GET /player_api?username={username}&password={password}&action=get_series_categories -``` - -**Пример ответа** - -```json -[ - { - "category_id": "20", - "category_name": "Drama", - "parent_id": 0 - } -] -``` - ---- - -### Все сериалы - -```http -GET /player_api?username={username}&password={password}&action=get_series -``` - -**Пример ответа** - -```json -[ - { - "num": 1, - "name": "Braceface (2001)", - "title": "Braceface", - "year": 2001, - "stream_type": "series", - "series_id": 1, - "cover": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljpT6mCZeHa4zLXMQZ2eaTpGZUSOucptPKyuP5tgpEZm0.jpg", - "plot": "The show, set in Elkford, British Columbia, is based around Sharon Spitz, who is a junior high school student with braces that get in her way of leading a normal teenage life. In the first season, she is enrolled at Mary Pickford Junior High.", - "cast": "Stacey DePass", - "director": "Charles E. Bastien", - "genre": "Drama, Animation, Comedy", - "release_date": "2001-06-02", - "releaseDate": "2001-06-02", - "last_modified": "1757348651", - "rating": "7", - "rating_5based": 3.5, - "backdrop_path": [ - "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCADBzwKB171qpiTTqrZdeATBaSzxZEgi9EPIvh5kU_50ecbH2L-yDt1PIfqijKTIMg.jpg" - ], - "youtube_trailer": null, - "episode_run_time": 25, - "category_id": "4", - "category_ids": [4] - } -] -``` - ---- - -### Сериалы по категории - -```http -GET /player_api?username={username}&password={password}&action=get_series&category_id={id} -``` - -### Информация о сериале - -```http -GET /player_api?username={username}&password={password}&action=get_series_info&series_id={id} -``` - -**Пример ответа** - -```json -{ - "seasons": [ - { - "air_date": "2001-06-02", - "episode_count": 26, - "id": 4937, - "name": "Season 1", - "overview": "", - "season_number": 1, - "vote_average": 4.5, - "cover": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljJBrZ7sNEJHE6hlqofFOJSRKiMRvSj08-T6iTQVWvj2I.jpg", - "cover_big": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljJBrZ7sNEJHE6hlqofFOJSRKiMRvSj08-T6iTQVWvj2I.jpg" - } - ], - "info": { - "name": "Braceface (2001)", - "title": "Braceface", - "year": 2001, - "cover": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCLaoCzC2XshRjzbEF-0-ISX3OBAKZPN21ASjMFFF_OljpT6mCZeHa4zLXMQZ2eaTpGZUSOucptPKyuP5tgpEZm0.jpg", - "plot": "The show, set in Elkford, British Columbia, is based around Sharon Spitz, who is a junior high school student with braces that get in her way of leading a normal teenage life. In the first season, she is enrolled at Mary Pickford Junior High.", - "cast": "Stacey DePass", - "director": "Charles E. Bastien", - "genre": "Drama, Animation, Comedy", - "release_date": "2001-06-02", - "releaseDate": "2001-06-02", - "last_modified": "1757348651", - "rating": "7", - "rating_5based": 3.5, - "backdrop_path": [ - "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCADBzwKB171qpiTTqrZdeATBaSzxZEgi9EPIvh5kU_50ecbH2L-yDt1PIfqijKTIMg.jpg" - ], - "youtube_trailer": null, - "episode_run_time": 25, - "category_id": "4", - "category_ids": [4] - }, - "episodes": { - "1": [ - { - "id": "2", - "episode_num": "1", - "title": "Braceface - S01E01 - Brace Yourself", - "container_extension": "mp4", - "info": { - "release_date": "2001-06-02", - "plot": "Sharon Spitz, a 13-year-old 8th grader get's braces the day before picture day. When getting braces at the ortadontist, there is a thunder storm and the power go's out. Something happens with Sharon's braces and now its making her do all sorts of weird things!", - "duration_secs": 649, - "duration": "00:10:49", - "movie_image": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCADBzwKB171qpiTTqrZdeARCK8Ch0a6wlNxuIHhbJ3c1Dg_AqkwSsH-qdpnCvcMsiy6U85vvi1bs1xDOddBeOEQ.jpg", - "bitrate": 2791, - "rating": "5", - "season": "1", - "tmdb_id": "105800", - "cover_big": "http://176.124.192.118:80/images/7pQr8EhEi05VXRmZc5QfCADBzwKB171qpiTTqrZdeARCK8Ch0a6wlNxuIHhbJ3c1Dg_AqkwSsH-qdpnCvcMsiy6U85vvi1bs1xDOddBeOEQ.jpg" - }, - "subtitles": [], - "custom_sid": "", - "added": 1757348651, - "season": 1, - "direct_source": "" - } - ] - } -} -``` - ---- - -## 🎞 Получение медиаконтента - -Получите прямые ссылки на медиафайлы после авторизации. - -* **Live TV (канал):** - -```http -http://176.124.192.118/live/{username}/{password}/{stream_id}.ts -``` - -* **Фильм (VOD):** - -```http -http://176.124.192.118/movie/{username}/{password}/{vod_id}.mp4 -``` - -* **Серия:** - -```http -http://176.124.192.118/series/{username}/{password}/{episode_id}.mp4 -``` - -> ⚠️ **Важно:** При первом запросе происходит редирект на `/auth/...` для авторизации, после чего отдаётся контент. - ---- - -## 🧾 Примечания - -- **Форматы вывода:** Поддерживаются m3u8, ts, rtmp — выбирайте в зависимости от устройства. -- **Безопасность:** Все запросы требуют авторизации; мониторьте логи на предмет ошибок. -- **Интеграция:** Для тестирования используйте инструменты вроде Postman. В приложении реализуйте кэширование ответов для оптимизации. - - -> 💬 Если возникнут вопросы по интеграции, создайте issue в [репозитории](https://github.com/Vateron-Media/XC_VM/issues). - ---- - -

- ⬅️ Назад на главную -

\ No newline at end of file diff --git a/docs/ru/builds/build_binaries.md b/docs/ru/builds/build_binaries.md deleted file mode 100644 index caffeec1a..000000000 --- a/docs/ru/builds/build_binaries.md +++ /dev/null @@ -1,320 +0,0 @@ -

🧱 XC_VM — Сборка бинарных файлов

- -

- Это руководство поможет собрать бинарные файлы для XC_VM. Процесс подходит для разработчиков и администраторов, желающих настроить систему под свои нужды. -

- -

- ⬅️ Назад на главную -

- ---- - -## 📚 Навигация - -- [🔧 Предварительная подготовка](#предварительная-подготовка) -- [🌐 Сборка NGINX](#сборка-nginx) -- [📺 Сборка NGINX с RTMP](#сборка-nginx-с-rtmp) -- [🐘 Сборка PHP-FPM](#сборка-php-fpm) -- [📦 Установка PHP-расширений](#установка-php-расширений) -- [⚙️ Сборка бинарника network](#сборка-бинарника-network) -- [✅ Заключение](#заключение) - ---- - -## 🔧 Предварительная подготовка - -> ⚠️ **Внимание:** Все действия выполняются **на сервере**, где установлен `xc_vm`. - -### 1. Установите зависимости - -Установите необходимые пакеты для сборки. Это обеспечит наличие всех инструментов и библиотек. - -```bash -sudo apt-get install -y \ - build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev \ - libssl-dev libgd-dev libxml2 libxml2-dev uuid-dev libxslt1-dev \ - unzip wget curl git -``` - ---- - -## 🌐 Сборка NGINX - -### 1. Загрузите исходники - -#### OpenSSL - -```bash -wget https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz -tar -xzvf openssl-3.5.1.tar.gz -``` - -#### Zlib - -```bash -wget https://zlib.net/zlib-1.3.1.tar.gz -tar -xzvf zlib-1.3.1.tar.gz -``` - -#### PCRE - -```bash -wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz -tar -xzvf pcre-8.45.tar.gz -``` - -#### FLV-модуль - -```bash -wget https://github.com/winshining/nginx-http-flv-module/archive/refs/tags/v1.2.12.zip -unzip v1.2.12.zip -``` - -#### Nginx - -```bash -wget https://nginx.org/download/nginx-1.28.0.tar.gz -tar -zxvf nginx-1.28.0.tar.gz -cd nginx-1.28.0 -``` - -### 2. Настройка сборки - -Настройте конфигурацию для статической сборки с необходимыми модулями. - -```bash -./configure \ - --prefix=/home/xc_vm/bin/nginx \ - --with-compat \ - --with-http_auth_request_module \ - --with-file-aio \ - --with-threads \ - --with-http_gzip_static_module \ - --with-http_realip_module \ - --with-http_flv_module \ - --with-http_mp4_module \ - --with-http_secure_link_module \ - --with-http_slice_module \ - --with-http_ssl_module \ - --with-http_stub_status_module \ - --with-http_sub_module \ - --with-http_v2_module \ - --with-cc-opt='-static -static-libgcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' \ - --with-ld-opt='-static -Wl,-z,relro -Wl,-z,now -pie' \ - --with-pcre=../pcre-8.45 \ - --with-pcre-jit \ - --with-zlib=../zlib-1.3.1 \ - --with-openssl=../openssl-3.5.1 \ - --with-openssl-opt=no-nextprotoneg -``` - -### 3. Сборка и установка - -```bash -make -make install -``` - ---- - -## 📺 Сборка NGINX с RTMP - -### 1. Загрузите RTMP-модуль - -```bash -wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz -tar -xzvf v1.2.2.tar.gz -``` - -### 2. Сконфигурируйте сборку - -```bash -cd nginx-1.28.0 -./configure \ - --prefix=/home/xc_vm/bin/nginx_rtmp \ - --add-module=../nginx-http-flv-module-1.2.12 \ - --with-compat \ - --with-http_auth_request_module \ - --with-file-aio \ - --with-threads \ - --with-http_gzip_static_module \ - --with-http_realip_module \ - --with-http_flv_module \ - --with-http_mp4_module \ - --with-http_secure_link_module \ - --with-http_slice_module \ - --with-http_ssl_module \ - --with-http_stub_status_module \ - --with-http_sub_module \ - --with-http_v2_module \ - --with-cc-opt='-static -static-libgcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' \ - --with-ld-opt='-static -Wl,-z,relro -Wl,-z,now -pie' -``` - -### 3. Сборка и установка - -```bash -make -make install -``` - -### 4. Переименование исполняемого файла - -```bash -mv /home/xc_vm/bin/nginx_rtmp/sbin/nginx /home/xc_vm/bin/nginx_rtmp/sbin/nginx_rtmp -``` - ---- - -## 🐘 Сборка PHP-FPM - -### 1. Установите зависимости - -```bash -sudo apt-get install -y \ - libcurl4-gnutls-dev libbz2-dev libzip-dev autoconf automake \ - libtool m4 gcc make pkg-config libmaxminddb-dev libssh2-1-dev -``` - -### 2. Загрузите исходники - -```bash -wget -O php-8.1.33.tar.gz http://php.net/get/php-8.1.33.tar.gz/from/this/mirror -tar -xzvf php-8.1.33.tar.gz -cd php-8.1.33 -``` - -### 3. Настройка сборки - -```bash -./configure \ - --prefix=/home/xc_vm/bin/php \ - --with-fpm-user=xc_vm \ - --with-fpm-group=xc_vm \ - --enable-gd \ - --with-jpeg \ - --with-freetype \ - --enable-static \ - --disable-shared \ - --enable-opcache \ - --enable-fpm \ - --without-sqlite3 \ - --without-pdo-sqlite \ - --enable-mysqlnd \ - --with-mysqli \ - --with-curl \ - --disable-cgi \ - --with-zlib \ - --enable-sockets \ - --with-openssl \ - --enable-shmop \ - --enable-sysvsem \ - --enable-sysvshm \ - --enable-sysvmsg \ - --enable-calendar \ - --disable-rpath \ - --enable-inline-optimization \ - --enable-pcntl \ - --enable-mbregex \ - --enable-exif \ - --enable-bcmath \ - --with-mhash \ - --with-gettext \ - --with-xmlrpc \ - --with-xsl \ - --with-libxml \ - --with-pdo-mysql \ - --disable-mbregex \ - --with-pear -``` - -### 4. Сборка и установка - -```bash -make -make install -``` - ---- - -## 📦 Установка PHP-расширений - -Используйте встроенный `pecl` из вашей сборки PHP для установки расширений. - -```bash -/home/xc_vm/bin/php/bin/pecl install maxminddb -/home/xc_vm/bin/php/bin/pecl install ssh2 -/home/xc_vm/bin/php/bin/pecl install igbinary -/home/xc_vm/bin/php/bin/pecl install redis -``` - -### Настройка Redis-расширения - -Во время установки PECL задаёт вопросы: - -``` -enable igbinary serializer support? [no] : yes -enable lzf compression support? [no] : -enable zstd compression support? [no] : -enable msgpack serializer support? [no] : -enable lz4 compression? [no] : -use system liblz4? [yes] : -``` - -Рекомендуемые ответы: `yes` на igbinary, остальные — по желанию. - ---- - -## ⚙️ Сборка бинарника network - -### 1. Установите `PyInstaller` (однократно) - -```bash -pip install -U pyinstaller -``` - -### 2. Соберите бинарный файл - -```bash -cd /home/xc_vm/bin -pyinstaller --onefile network.py -``` - -После сборки исполняемый файл появится в директории: - -```bash -/home/xc_vm/bin/dist/network -``` - -### 3. Переместите бинарник в нужное место - -```bash -mv /home/xc_vm/bin/dist/network /home/xc_vm/bin/network -``` - -### 4. Очистите временные директории - -```bash -rm -rf build dist network.spec __pycache__ -``` - ---- - -## ✅ Заключение - -После завершения всех шагов вы получите собственные статически собранные бинарные файлы: - -- `nginx` -- `nginx_rtmp` -- `php-fpm` -- `pecl`-расширения -- `network` (бинарник Python-скрипта) - -> 💡 **Совет:** Если возникнут проблемы, проверьте логи сборки или обратитесь в [Issues](https://github.com/Vateron-Media/XC_VM/issues). - -

- ⬅️ Назад на главную -

- ---- \ No newline at end of file diff --git a/docs/ru/builds/build_ffmpeg.md b/docs/ru/builds/build_ffmpeg.md deleted file mode 100644 index e60f9e63f..000000000 --- a/docs/ru/builds/build_ffmpeg.md +++ /dev/null @@ -1,400 +0,0 @@ -

🚀 XC_VM — Сборка FFmpeg

- -

- Это руководство по сборке FFmpeg с аппаратным ускорением NVIDIA (NVENC/CUVID) и статической интеграцией библиотек для полной переносимости в рамках проекта XC_VM. -

- -

- ⬅️ Назад на главную -

- ---- - -## 📚 Навигация - -- [📋 Требования](#требования) -- [🔧 Конфигурация](#конфигурация) -- [🛠 Установка инструментов для сборки](#установка-инструментов-для-сборки) -- [🎶 Сборка и включение кодеков](#сборка-и-включение-кодеков) -- [🖥 Установка NVIDIA и CUDA](#установка-nvidia-и-cuda) -- [🔨 Сборка FFmpeg](#сборка-ffmpeg) -- [📦 Установка](#установка) -- [✅ Проверка](#проверка) -- [🧾 Примечания](#примечания) -- [🔄 Совместимость версий](#совместимость-версий) - ---- - -## 📋 Требования - -* **Ubuntu 22.04 или новее** — рекомендованная ОС для стабильной сборки. -* Видеокарта NVIDIA с поддержкой **NVENC** (опционально, но рекомендуется для аппаратного ускорения). -* ~15 ГБ свободного места на диске для исходников и временных файлов. -* Стабильное интернет-соединение для загрузки зависимостей. - -> 💡 **Совет:** Убедитесь, что система обновлена перед началом, чтобы избежать конфликтов пакетов. - ---- - -## 🔧 Конфигурация - -Установите переменные окружения для кастомизации сборки. Это позволит легко изменить версии и пути. - -```bash -# Версия FFmpeg для сборки -export FFMPEG_VERSION="8.0" - -# Директория для установки -export INSTALL_DIR="/home/xc_vm/bin/ffmpeg_bin" - -# Директория для сборки -export BUILD_DIR="$HOME/ffmpeg_sources" - -# Версия CUDA -export CUDA_VERSION="12-2" - -# Версия драйвера NVIDIA -export NVIDIA_DRIVER_VERSION="535" -``` - ---- - -## 🛠 Установка инструментов для сборки - -Обновите систему и установите базовые пакеты для разработки. Это обеспечит наличие всех необходимых инструментов. - -```bash -sudo apt-get update -qq && sudo apt-get -y install \ - autoconf automake build-essential cmake git-core \ - libass-dev libfreetype6-dev libgnutls28-dev libmp3lame-dev \ - libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev \ - libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev \ - meson ninja-build pkg-config texinfo wget yasm \ - zlib1g-dev mercurial nasm libssl-dev software-properties-common -``` - ---- - -## 🎶 Сборка и включение кодеков - -Соберите библиотеки из исходников для статической интеграции в FFmpeg. Это обеспечит поддержку популярных форматов без внешних зависимостей. - -### 2.1 Создание директории для сборки - -```bash -mkdir -p ${BUILD_DIR:-~/ffmpeg_sources} && cd ${BUILD_DIR:-~/ffmpeg_sources} -``` - -### 2.2 H.264 (libx264) - -```bash -git clone https://code.videolan.org/videolan/x264.git -cd x264 -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared --enable-pic -make -j$(nproc) -sudo make install -cd .. -``` - -### 2.3 H.265 (libx265) - -```bash -git clone https://bitbucket.org/multicoreware/x265_git.git -cd x265_git/build -cmake ../source -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR:-$HOME/ffmpeg_build}" -DENABLE_SHARED=OFF -make -j$(nproc) -sudo make install -cd ../.. -``` - -### 2.4 VP8/VP9 (libvpx) - -```bash -git clone https://chromium.googlesource.com/webm/libvpx -cd libvpx -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared --enable-pic -make -j$(nproc) -sudo make install -cd .. -``` - -### 2.5 Opus Audio (libopus) - -```bash -wget https://downloads.xiph.org/releases/opus/opus-1.5.2.tar.gz -tar -xvzf opus-1.5.2.tar.gz -cd opus-1.5.2 -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared -make -j$(nproc) -sudo make install -cd .. -``` - -### 2.6 Дополнительные библиотеки - -- **libass** (субтитры): - -```bash -git clone https://github.com/libass/libass.git -cd libass -./autogen.sh -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared -make -j$(nproc) -sudo make install -cd .. -``` - -- **libfreetype** (шрифты): - -```bash -wget https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.gz -tar -xvzf freetype-2.13.2.tar.gz -cd freetype-2.13.2 -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared -make -j$(nproc) -sudo make install -cd .. -``` - -- **libvorbis** (аудио): - -```bash -wget https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz -tar -xvf libvorbis-1.3.7.tar.xz -cd libvorbis-1.3.7 -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared -make -j$(nproc) -sudo make install -cd .. -``` - -- **libmp3lame** (MP3): - -```bash -wget https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz -tar -xvzf lame-3.100.tar.gz -cd lame-3.100 -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared -make -j$(nproc) -sudo make install -cd .. -``` - -- **libtheora** (Theora): - -```bash -git clone https://github.com/xiph/theora.git -cd theora -./autogen.sh -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared -make -j$(nproc) -sudo make install -cd .. -``` - -- **librtmp** (RTMP): - -```bash -git clone git://git.ffmpeg.org/rtmpdump -cd rtmpdump -make SYS=posix -j$(nproc) -sudo make prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" install -cd .. -``` - -- **libunistring** (для gnutls и librtmp): - -```bash -wget https://ftp.gnu.org/gnu/libunistring/libunistring-1.2.tar.gz -tar -xvzf libunistring-1.2.tar.gz -cd libunistring-1.2 -./configure --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" --enable-static --disable-shared -make -j$(nproc) -sudo make install -cd .. -``` - -- **bzip2** -```bash -cd ${BUILD_DIR:-~/ffmpeg_sources} -wget https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz -tar -xvzf bzip2-1.0.8.tar.gz -cd bzip2-1.0.8 -make -f Makefile-libbz2_so CFLAGS="-fPIC" -j$(nproc) -make install PREFIX="${INSTALL_DIR:-$HOME/ffmpeg_build}" -cd .. -``` - ---- - -## 🖥 Установка NVIDIA и CUDA - -Для аппаратного ускорения установите драйверы и инструменты NVIDIA. - -### 3.1 Установка драйверов NVIDIA - -```bash -sudo add-apt-repository ppa:graphics-drivers/ppa -sudo apt update -sudo apt install nvidia-driver-${NVIDIA_DRIVER_VERSION:-535} -``` - -> ⚠️ **Важно:** Перезагрузите систему после установки и проверьте совместимость с вашей видеокартой. - -### 3.2 Установка CUDA Toolkit - -```bash -wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb -sudo dpkg -i cuda-keyring_1.0-1_all.deb -sudo apt update -sudo apt install -y cuda-toolkit-${CUDA_VERSION:-12-2} -``` - -### 3.3 Установка заголовков NVENC - -```bash -cd ${BUILD_DIR:-~/ffmpeg_sources} -git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git -cd nv-codec-headers -make -sudo make PREFIX="${INSTALL_DIR:-$HOME/ffmpeg_build}" install -cd .. -``` - -### 3.4 Опциональные инструменты NVIDIA - -```bash -sudo apt install -y nvidia-cuda-toolkit nvidia-cuda-dev -``` - ---- - -## 🔨 Сборка FFmpeg - -### 4.1 Загрузка исходного кода - -```bash -cd ${BUILD_DIR:-~/ffmpeg_sources} -wget https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION:-8.0}.tar.bz2 -tar xjvf ffmpeg-${FFMPEG_VERSION:-8.0}.tar.bz2 -cd ffmpeg-${FFMPEG_VERSION:-8.0} -``` - -### 4.2 Конфигурация - -```bash -export PATH="${INSTALL_DIR:-$HOME/bin}:$PATH" -export PKG_CONFIG_PATH="${INSTALL_DIR:-$HOME/ffmpeg_build}/lib/pkgconfig" - -./configure \ - --prefix="${INSTALL_DIR:-$HOME/ffmpeg_build}" \ - --pkg-config-flags="--static" \ - --extra-cflags="-I${INSTALL_DIR:-$HOME/ffmpeg_build}/include -I/usr/local/cuda/include" \ - --extra-ldflags="-L${INSTALL_DIR:-$HOME/ffmpeg_build}/lib -L/usr/local/cuda/lib64 -Wl,-Bstatic -lcrypto -lssl -Wl,-Bdynamic" \ - --extra-version=XCVM \ - --extra-libs="-lsupc++ -lgmp -lz -lunistring -lpthread -lm -lrt -ldl" \ - --bindir="${INSTALL_DIR:-$HOME/bin}" \ - --enable-gpl \ - --enable-gnutls \ - --enable-libass \ - --enable-libfreetype \ - --enable-libmp3lame \ - --enable-libopus \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libx264 \ - --enable-libx265 \ - --enable-librtmp \ - --enable-libtheora \ - --enable-bzlib \ - --enable-fontconfig \ - --enable-zlib \ - --enable-nvenc \ - --enable-ffnvcodec \ - --enable-cuvid \ - --enable-version3 \ - --enable-nonfree \ - --enable-pthreads \ - --enable-runtime-cpudetect \ - --enable-gray \ - --disable-alsa \ - --disable-indev=alsa \ - --disable-outdev=alsa \ - --disable-ffplay \ - --disable-doc \ - --disable-debug \ - --disable-autodetect \ - --enable-static \ - --enable-muxer=hls \ - --enable-muxer=dash \ - --enable-demuxer=hls \ - --extra-cflags=--static \ - --target-os=linux -``` - -### 4.3 Компиляция - -```bash -make -j$(nproc) -``` - ---- - -## 📦 Установка - -```bash -mkdir -p ${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ -cp ffmpeg ffprobe ${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ -``` - ---- - -## ✅ Проверка - -Проверьте версию и поддержку NVIDIA после сборки. - -```bash -${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ffmpeg -version -${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ffprobe -version -``` - -Проверка поддержки NVIDIA: - -```bash -${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ffmpeg -encoders | grep nvenc -${INSTALL_DIR:-/home/xc_vm/bin/ffmpeg_bin}/${FFMPEG_VERSION:-8.0}/ffmpeg -decoders | grep cuvid -``` - ---- - -## 🧾 Примечания - -* Все библиотеки собраны статически и включены в бинарный файл FFmpeg, что обеспечивает полную переносимость. -* Драйвер NVIDIA должен быть совместим с вашей видеокартой. -* После установки драйверов может потребоваться **перезагрузка**. -* Сборка FFmpeg потребляет значительные ресурсы CPU и памяти. -* Итоговый бинарный файл будет большим из-за включения всех зависимостей. -* Настройте переменные окружения в соответствии с вашей системой. -* Для разных версий FFmpeg могут потребоваться корректировки флагов конфигурации. - -> 💬 **Совет:** Если возникнут проблемы, проверьте логи сборки или создайте issue в [репозитории](https://github.com/Vateron-Media/XC_VM/issues). - ---- - -## 🔄 Совместимость версий - -| Версия FFmpeg | Рекомендуемая CUDA | Примечания | -|---------------|--------------------|------------| -| 8.x | 12.2+ | Новейшие функции | -| 7.x | 12.0+ | Стабильная | -| 6.x | 11.8+ | Устаревшая | - -Проверяйте [документацию FFmpeg](https://ffmpeg.org/) для конкретных требований версий. - ---- - -

- ⬅️ Назад на главную -

- ---- \ No newline at end of file diff --git a/docs/ru/info/faq.md b/docs/ru/info/faq.md deleted file mode 100644 index 87806eccd..000000000 --- a/docs/ru/info/faq.md +++ /dev/null @@ -1,87 +0,0 @@ -

❓ FAQ — Часто задаваемые вопросы

- -

- Здесь собраны ответы на наиболее частые вопросы и проблемы при работе с XC_VM. -

- -

- ⬅️ Назад на главную -

- ---- - -## ⚙️ Проблемы со стримами - -
-❌ У меня не запускается стрим на MAIN или LB - ---- - -### 🔍 Диагностика - -Подключитесь к консоли сервера и выполните команду: - -```bash -sudo -u xc_vm /home/xc_vm/bin/php/bin/php /home/xc_vm/includes/cli/monitor.php 291 -``` - -> 🧩 Где `291` — это **ID вашего стрима** (замените на свой). - ---- - -### 📄 Что делает команда - -Скрипт **monitor.php** попытается запустить стрим вручную и покажет ошибку, если не сможет. - ---- - -### ⚠️ Возможные причины - -#### 1️⃣ Отсутствуют системные библиотеки - -Если вывод содержит ошибку вида: - -``` -error while loading shared libraries: libxyz.so.1: cannot open shared object file -``` - -Установите недостающую библиотеку командой: - -```bash -sudo apt install <имя_библиотеки> -``` - -После установки повторите тест. - -> 💬 Сообщите мне, если потребуется добавить библиотеку в установку. - ---- - -#### 2️⃣ Ошибка не связана с библиотеками - -Если ошибка иного типа — также пришлите её вывод, чтобы я помог с диагностикой. - ---- - -### 🧾 Резюме - -1. Выполните команду диагностики. -2. Проверьте наличие ошибок. -3. Установите недостающие библиотеки. -4. Сообщите о любых других ошибках для анализа. - ---- - -
- ---- - -📘 *Эта страница обновляется со временем. Если вы нашли новую типовую проблему — предложите её в [Issues](https://github.com/Vateron-Media/XC_VM/issues).* - ---- - -

- ⬅️ Назад на главную -

- ---- \ No newline at end of file diff --git a/docs/ru/info/migration_guide.md b/docs/ru/info/migration_guide.md deleted file mode 100644 index 73813ab28..000000000 --- a/docs/ru/info/migration_guide.md +++ /dev/null @@ -1,119 +0,0 @@ -

🧭 Руководство по миграции XC_VM

- -

- Легко переходите с совместимых систем IPTV с помощью встроенного инструмента миграции XC_VM. -

- -

- ⬅️ Назад на главную -

- ---- - -## 📚 Навигация - -- [⚙️ Перед началом](#перед-началом) -- [🚀 Шаги миграции](#шаги-миграции) -- [🔑 Восстановление доступа после миграции](#восстановление-доступа-после-миграции) -- [🧩 После миграции](#после-миграции) -- [🖥️ Подготовка балансировщика нагрузки](#подготовка-балансировщика-нагрузки) - ---- - -## ⚙️ Перед началом - -> 💡 **Рекомендация:** -> Лучше всего выполнять миграцию на **чистой установке XC_VM**. - -Если вы решите использовать **существующую установку**, обратите внимание на следующее: -- XC_VM **удалит все таблицы** в вашей основной базе данных, которые соответствуют данным, найденным в вашей базе данных миграции. -- Всегда **создавайте резервные копии** перед выполнением миграции. - ---- - -## 🚀 Шаги миграции - -### 1. Загрузите резервную копию - -Загрузите существующую резервную копию базы данных на сервер XC_VM через **SFTP**. -В этом примере мы предположим, что она находится по адресу: - -``` -/tmp/backup.sql -``` - -### 2. Восстановите резервную копию в базе данных миграции - -Используйте скрипт инструментов, чтобы очистить существующую базу данных миграции и восстановить резервную копию: - -```bash -/home/xc_vm/tools migration "/tmp/backup.sql" -``` - -### 3. Запустите миграцию - -Если во время восстановления не произошло никаких ошибок, вы можете начать миграцию одним из двух способов: - -#### 🧩 Вариант 1 — командная строка (рекомендуется) - -Запустите миграцию вручную: - -```bash -/home/xc_vm/bin/php/bin/php /home/xc_vm/includes/cli/migrate.php -``` - -#### 🌐 Вариант 2 — Веб-установщик - -Если вы не хотите использовать инструменты командной строки, вы также можете вернуться к интерфейсу **веб-установщика** по ссылке, предоставленной скриптом при установке панели. -Там выберите опцию **«Миграция»** и следуйте инструкциям на экране, чтобы завершить процесс в интерактивном режиме. - -Вы будете видеть обновления прогресса в режиме реального времени, пока XC_VM мигрирует ваши данные. -По завершении вы сможете войти в свою систему. - ---- - -## 🔑 Восстановление доступа после миграции - -Если вы не можете войти в систему (например, из-за отсутствия имени пользователя/пароля или недействительного кода доступа), вы можете использовать **инструменты спасения**: - -### Создание кода доступа для спасения - -```bash -/home/xc_vm/tools access -``` - -### Создание администратора для восстановления доступа - -```bash -/home/xc_vm/tools user -``` - -> ⚠️ После входа в систему не забудьте немедленно **изменить код доступа и учетные данные администратора**. - ---- - -## 🧩 После миграции - -* Балансировщики нагрузки сначала будут отображаться как **отключенные**. -* Все потоки **автоматически остановятся** в целях безопасности. - -### Следующие шаги - -1. Переустановите балансировщики нагрузки и **вручную запустите потоки** после подтверждения миграции. -2. Просмотрите и обновите **настройки XC_VM по умолчанию**. -3. Проверьте данные **главного сервера** — доменные имена, конфигурацию SSL и т. д. -4. Убедитесь, что все соответствует вашей среде и настройкам. - ---- - -## 🖥️ Подготовка балансировщика нагрузки - -Вам необходимо будет переустановить ОС на балансировщиках нагрузки. - ---- - -

- ⬅️ Назад на главную -

- ---- \ No newline at end of file diff --git a/docs/ru/info/update.md b/docs/ru/info/update.md deleted file mode 100644 index fad2e3326..000000000 --- a/docs/ru/info/update.md +++ /dev/null @@ -1,90 +0,0 @@ -

🔄 Руководство по обновлению XC_VM

- -

- В этом документе описан процесс обновления XC_VM через веб-панель управления. Следуйте шагам, чтобы безопасно обновить систему и избежать ошибок. -

- -

- ⬅️ Назад на главную -

- ---- - -## 📚 Навигация - -- [⚙️ Перед началом](#перед-началом) -- [🪜 Пошаговая инструкция](#пошаговая-инструкция) -- [🧠 Примечания и рекомендации](#примечания-и-рекомендации) - ---- - -## ⚙️ Перед началом - -Перед обновлением убедитесь, что готовы все необходимые ресурсы. Это поможет избежать проблем и потери данных. - -- 🔑 **Доступ администратора** к панели управления. -- 🌐 **Стабильное интернет-соединение**. -- 💾 **Резервная копия данных сервера** *(настоятельно рекомендуется создать перед началом)*. - -> ⚠️ **Важно:** Не прерывайте процесс обновления, чтобы избежать повреждения системы. - ---- - -## 🪜 Пошаговая инструкция - -Следуйте этим шагам для обновления через панель. Каждый этап иллюстрирован скриншотом для удобства. - -### 1️⃣ Перейдите в раздел **“Servers”** - -- Авторизуйтесь в панели управления. -- Выберите раздел **Servers** в главном меню. - - ![Servers](../img/update1.png) - -### 2️⃣ Выберите **“Manage Servers”** - -- В разделе **Servers** нажмите **Manage Servers**, чтобы открыть список доступных серверов. - - ![Manage Servers](../img/update2.png) - -### 3️⃣ Откройте меню **“Actions”** - -- Найдите сервер, который требуется обновить. -- Нажмите кнопку **Actions** — обычно это выпадающее меню или значок рядом с сервером. - - ![Actions Menu](../img/update3.png) - -### 4️⃣ Перейдите в раздел **“Server Tools”** - -- В меню **Actions** выберите пункт **Server Tools**, чтобы открыть инструменты управления сервером. - - ![Server Tools](../img/update4.png) - -### 5️⃣ Запустите **“Update Server”** - -- В разделе **Server Tools** нажмите **Update Server**. -- Подтвердите действие, если потребуется (возможно, будет запрошен пароль). -- Дождитесь завершения обновления — **не прерывайте процесс**, чтобы избежать ошибок. - - ![Update Server](../img/update5.png) - ---- - -## 🧠 Примечания и рекомендации - -> 🕒 **Время обновления** -> Зависит от размера сервера и скорости интернет-соединения. Обычно занимает от нескольких минут до часа. - -> ✅ **Проверка после обновления** -> После завершения проверьте состояние сервера, перезапустите сервисы и убедитесь, что все работает корректно. - -> ⚠️ **Ошибки при обновлении** -> В случае ошибок проверьте логи сервера (например, в `/home/xc_vm/logs/`). Если проблема persists, создайте issue в [репозитории](https://github.com/Vateron-Media/XC_VM/issues). - ---- - -

- ⬅️ Назад на главную -

- ---- \ No newline at end of file diff --git a/docs/ru/main-page.md b/docs/ru/main-page.md deleted file mode 100644 index e614d29c0..000000000 --- a/docs/ru/main-page.md +++ /dev/null @@ -1,62 +0,0 @@ -

📚 XC_VM Documentation

- -

- Добро пожаловать в официальную документацию проекта!
- Здесь собраны все материалы по работе с системой — от API до сборки и обновлений. -

- ---- - -## 🔌 API Reference - -| Раздел | Описание | -|:--------|:----------| -| [Системный API](api/system_api.md) | Основные системные эндпоинты. | -| [Получить плейлист](api/playlist.md) | Генерация и загрузка пользовательских плейлистов. | -| [XtreamCodes API](api/xtreamcodes_api.md) | Интеграция и взаимодействие с XtreamCodes совместимыми сервисами. | - ---- - -## 🛠 Сборка и Компиляция - -| Раздел | Описание | -|:--------|:----------| -| [Бинарники](builds/build_binaries.md) | Инструкции по сборке основных бинарных компонентов проекта. | -| [FFmpeg](builds/build_ffmpeg.md) | Руководство по сборке и настройке FFmpeg для работы с XC_VM. | - ---- - -## 🔄 Обновление и Релизы - -| Раздел | Описание | -|:--------|:----------| -| [Обновление панели](info/update.md) | Подробное руководство по обновлению XC_VM до последней версии. | -| [Чеклист перед публикацией релиза](updates_checklist.md) | Контрольный список задач для подготовки нового релиза. | - ---- - -## 🔐 Безопасность и SSL - -| Раздел | Описание | -|:--------|:----------| -| [Генерация SSL-сертификата](administration/ssl-generation.md) | Руководство по созданию самоподписанного SSL для Nginx в XC_VM. | - ---- - -## 📦 Дополнительно - -| Раздел | Описание | -|:--------|:----------| -| [Как работает обновление панели](administration/update-system.md) | Обьяснение принципа работы обновления. | -| [Миграция с других систем](info/migration_guide.md) | Пошаговое руководство по миграции с XUI, Xtream Codes и других панелей. | -| [FAQ](info/faq.md) | Часто задаваемые вопросы и решения распространённых проблем. | - ---- - -

- - 🔗 Перейти к репозиторию - -

- ---- diff --git a/docs/ru/updates_checklist.md b/docs/ru/updates_checklist.md deleted file mode 100644 index 9c6b5a0ad..000000000 --- a/docs/ru/updates_checklist.md +++ /dev/null @@ -1,142 +0,0 @@ -# ✅ Чеклист подготовки релиза XC_VM - -

- В этом документе описан процесс создания релиза XC_VM — пошаговое руководство для разработчиков по обновлению версии, сборке архивов и публикации на GitHub. -

- -

- ⬅️ Назад на главную -

- ---- - -## 📚 Навигация - -- [🔢 1. Обновить версию](#1-обновить-версию) -- [🧹 2. Удалённые файлы](#2-удалённые-файлы) -- [⚙️ 3. Сборка архивов](#3-сборка-архивов) -- [📝 4. Changelog](#4-changelog) -- [🚀 5. GitHub релиз](#5-github-релиз) - ---- - -## 🔢 1. Обновить версию - -* Установить **новое значение `XC_VM_VERSION`** в следующих файлах: - -**Файлы для редактирования:** - -``` -src/www/constants.php -src/www/stream/init.php -``` - -**Auto-update команда:** - -```bash -find -type f -name "*.php" -exec sed -i \ -"s/define('XC_VM_VERSION', '[0-9]\+\.[0-9]\+\.[0-9]\+');/define('XC_VM_VERSION', 'X.Y.Z');/g" {} \; -``` - -**Закоммитить изменения с сообщением:** - -```bash -git add . -git commit -m "Bump version to X.Y.Z" -git push -``` - -> 💡 **Совет:** Замените `X.Y.Z` на актуальную версию, например, `1.2.3`. - ---- - -## 🧹 2. Удалённые файлы - -* Выполнить команду для генерации списка удаленных файлов: - - ```bash - make delete_files_list - ``` - -* Открыть файл `dist/deleted_files.txt`. -* Скопировать содержимое в `src/includes/cli/update.php` **после комментария** `// Update checkpoint` - -> ⚠️ **Важно:** Убедитесь, что пути указаны корректно, чтобы избежать удаления важных файлов. - ---- - -## ⚙️ 3. Сборка архивов - -* Последовательно выполнить команды для сборки: - -```bash -make new -make lb -make main -make main_update -make lb_update -``` - -* Убедиться, что созданы следующие файлы в директории `dist/`: - - - `loadbalancer.tar.gz` — установочный архив LB - - `loadbalancer_update.tar.gz` — архив обновления LB - - `XC_VM.zip` — установочный архив MAIN - - `update.tar.gz` — архив обновления MAIN - - `hashes.md5` — файл с хеш-суммами - -> 🧰 **Проверка:** После сборки проверьте целостность архивов с помощью `md5sum -c hashes.md5`. - ---- - -## 📝 4. Changelog - -Сначала сгенерируйте файл с изменениями из git: - -```bash -git log --pretty=format:"- %s (%h)" X.Y.Z..main > dist/changes.md -``` - -* **Перейдите по ссылке и добавьте изменения текущего релиза:** - [https://github.com/Vateron-Media/XC_VM_Update/blob/main/changelog.json](https://github.com/Vateron-Media/XC_VM_Update/blob/main/changelog.json) - -* Добавить изменения текущего релиза в формате JSON: - - ```json - [ - { - "version": "X.Y.Z", - "changes": [ - "Описание изменения 1", - "Описание изменения 2" - ] - } - ] - ``` - -> 💬 **Рекомендация:** Держите описания изменений краткими и информативными, фокусируясь на ключевых улучшениях и фиксах. - ---- - -## 🚀 5. GitHub релиз - -* Создать новый релиз на [GitHub Releases](https://github.com/Vateron-Media/XC_VM/releases). -* Прикрепить следующие файлы к релизу: - - - `dist/loadbalancer.tar.gz` - - `dist/XC_VM.zip` - - `dist/update.tar.gz` - - `dist/loadbalancer_update.tar.gz` - - `dist/hashes.md5` - -* Указать changelog в описании релиза. - -> ✅ **Завершение:** После публикации проверьте, что все файлы доступны для скачивания и хеш-суммы совпадают. - ---- - -

- ⬅️ Назад на главную -

- ---- \ No newline at end of file