diff --git a/README.md b/README.md
index 6bd3bd6dc..4299f9df7 100644
--- a/README.md
+++ b/README.md
@@ -14,18 +14,43 @@
- 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. -
- - - ---- - -## 📚 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://- This API provides various system functionalities, including log viewing, video-on-demand (VOD) and stream management, statistics retrieval, background command execution, and more. -
- - - ---- - -## File Location - -``` -/home/xc_vm/wwwdir/api.php -``` - -## API Architecture Overview - -**Base URI:** `http://- 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. -
- - - ---- - -## 📚 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 -- 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. -
- - - ---- - -## 📚 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). - - - ---- \ 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: - ---- - -- 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. -
- - - ---- - -## 📚 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 @@ -- Here you’ll find answers to the most common questions and issues when working with XC_VM. -
- ---- - -## ⚙️ Stream Issues - -
- 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.
-
- Easily migrate from compatible IPTV systems using the built-in XC_VM migration tool. -
- - - ---- - -## 📚 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. - ---- - - 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 @@ -- 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. -
- - - ---- - -## 📚 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. - -  - -### 2️⃣ Select **“Manage Servers”** - -* In the **Servers** section, click **Manage Servers** to open the list of available servers. - -  - -### 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. - -  - -### 4️⃣ Go to **“Server Tools”** - -* In the **Actions** menu, select **Server Tools** to open server management utilities. - -  - -### 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. - -  - ---- - -## 🧠 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). - ---- - - - ---- \ 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 @@ -- 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. -
- - - ---- - -## 📚 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. - ---- - - 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-сертификата. Следуйте шагам, чтобы настроить безопасное 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 реализована как многоуровневый процесс — от веб-интерфейса до системных скриптов. - Такой подход обеспечивает надёжность, автоматизацию и целостность данных при обновлении панели. -
- - - ---- - -## 📚 Навигация - -* [🔁 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://- Этот API предоставляет различные функциональные возможности, включая просмотр журналов, управление видео по запросу (VOD) и потоками, получение статистики, выполнение фоновых команд и многое другое. -
- - - ---- - -## Расположение файлов -``` -/home/xc_vm/wwwdir/api.php -``` - -## Обзор архитектуры API -**Базовый URI**: `http://- 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 -- Это руководство поможет собрать бинарные файлы для 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 @@ -- Это руководство по сборке 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 @@ -- Здесь собраны ответы на наиболее частые вопросы и проблемы при работе с 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 через веб-панель управления. Следуйте шагам, чтобы безопасно обновить систему и избежать ошибок. -
- - - ---- - -## 📚 Навигация - -- [⚙️ Перед началом](#перед-началом) -- [🪜 Пошаговая инструкция](#пошаговая-инструкция) -- [🧠 Примечания и рекомендации](#примечания-и-рекомендации) - ---- - -## ⚙️ Перед началом - -Перед обновлением убедитесь, что готовы все необходимые ресурсы. Это поможет избежать проблем и потери данных. - -- 🔑 **Доступ администратора** к панели управления. -- 🌐 **Стабильное интернет-соединение**. -- 💾 **Резервная копия данных сервера** *(настоятельно рекомендуется создать перед началом)*. - -> ⚠️ **Важно:** Не прерывайте процесс обновления, чтобы избежать повреждения системы. - ---- - -## 🪜 Пошаговая инструкция - -Следуйте этим шагам для обновления через панель. Каждый этап иллюстрирован скриншотом для удобства. - -### 1️⃣ Перейдите в раздел **“Servers”** - -- Авторизуйтесь в панели управления. -- Выберите раздел **Servers** в главном меню. - -  - -### 2️⃣ Выберите **“Manage Servers”** - -- В разделе **Servers** нажмите **Manage Servers**, чтобы открыть список доступных серверов. - -  - -### 3️⃣ Откройте меню **“Actions”** - -- Найдите сервер, который требуется обновить. -- Нажмите кнопку **Actions** — обычно это выпадающее меню или значок рядом с сервером. - -  - -### 4️⃣ Перейдите в раздел **“Server Tools”** - -- В меню **Actions** выберите пункт **Server Tools**, чтобы открыть инструменты управления сервером. - -  - -### 5️⃣ Запустите **“Update Server”** - -- В разделе **Server Tools** нажмите **Update Server**. -- Подтвердите действие, если потребуется (возможно, будет запрошен пароль). -- Дождитесь завершения обновления — **не прерывайте процесс**, чтобы избежать ошибок. - -  - ---- - -## 🧠 Примечания и рекомендации - -> 🕒 **Время обновления** -> Зависит от размера сервера и скорости интернет-соединения. Обычно занимает от нескольких минут до часа. - -> ✅ **Проверка после обновления** -> После завершения проверьте состояние сервера, перезапустите сервисы и убедитесь, что все работает корректно. - -> ⚠️ **Ошибки при обновлении** -> В случае ошибок проверьте логи сервера (например, в `/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 @@ -
- Добро пожаловать в официальную документацию проекта!
- Здесь собраны все материалы по работе с системой — от API до сборки и обновлений.
-
- - 🔗 Перейти к репозиторию - -
- ---- 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