Панель: - engine/main/lang.php: класс Lang, автоопределение языка (?lang= -> cookie -> Accept-Language -> конфиг) - перевод применяется к готовому ответу через ob_start(): покрывает всю панель, админку и письма, не требуя правки 200 файлов шаблонов; отсутствующая фраза остаётся русской - замена только на границах слов, иначе короткий ключ портил длинные слова (Модуль -> Modуль) - AJAX-ответы переводятся отдельно (json_encode экранирует кириллицу в \uXXXX) - application/lang/en.php: 657 переводов; ru.php как точка расширения - переключатель RU/EN в шапке кабинета, админки и в подвале страницы входа - 'lang' в config.php — язык по умолчанию - проверено обходом 20 разделов: 0 непереведённых фраз, 0 мешанины языков, 0 фаталов Документация — теперь на русском и английском: - README.en.md, CHANGES.en.md, SECURITY.en.md, GUIDE.en.md - переключатели языка в начале каждого документа - раздел «Язык интерфейса» в инструкции: как работает, как добавить свой язык
162 lines
7.0 KiB
Markdown
162 lines
7.0 KiB
Markdown
[Русский](README.md) · **English**
|
||
|
||
# Game Hosting Control Panel · REDL build
|
||
|
||
A control panel for selling and managing game servers: SA-MP, CRMP, MTA, Minecraft, CS 1.6, CS:S, RAGE:MP.
|
||
Client area, ticket system, payment gateways, automated game server deployment onto game nodes.
|
||
|
||
**Maintained and developed with [REDL.IO](https://redl.io) — AI-powered hosting.**
|
||
|
||
This build is a modernisation of the HostinPL 5.6 panel. The original was written for Debian 9 and PHP 7.0
|
||
(both end-of-life since 2022) and simply would not start on a current server. Here it runs on an up-to-date
|
||
stack, the vulnerabilities we found are fixed, and one-click installers are included.
|
||
|
||
---
|
||
|
||
## ⚠️ Legal status — read this before installing
|
||
|
||
The original **HostinPL 5.6 is a commercial, proprietary product**. Its authors are Samir Shelenko and
|
||
Alexander Zemlyanoy. The file `panel/LICENSE` is their licence, and it grants no permission to
|
||
redistribute or modify the software.
|
||
|
||
The sources this build is based on were circulated as "nulled" — a cracked copy of a paid product,
|
||
published without the authors' consent. We are not hiding that or rewriting history: the authors'
|
||
copyright headers are preserved throughout the code and were deliberately not removed.
|
||
|
||
What this means in practice:
|
||
|
||
* using it for commercial hosting infringes copyright, with all the risks that follow;
|
||
* the legal route is to buy a licence from the authors, or use an open-source alternative
|
||
(Pterodactyl, Pelican);
|
||
* this repository is only useful for studying the code, auditing it, and internal experiments.
|
||
|
||
Responsibility for use rests with whoever installs it.
|
||
|
||
---
|
||
|
||
## What is in this repository
|
||
|
||
| Path | What it is |
|
||
|------|------------|
|
||
| `install-panel.sh` | One-click panel install (nginx + PHP 8 + MariaDB + scheduler + admin user) |
|
||
| `install-node.sh` | One-click game node install (Docker + image + directories + SSH/FTP + SteamCMD) |
|
||
| `panel/` | Panel source code with all of our changes |
|
||
| `docker/Dockerfile` | Modern game server image (Debian 12; the original stretch-based one no longer builds) |
|
||
| `docker/Dockerfile.original-stretch` | The original Dockerfile, kept for comparison |
|
||
| [`CHANGES.en.md`](CHANGES.en.md) | Full list of differences from the original |
|
||
| [`SECURITY.en.md`](SECURITY.en.md) | Audit results: vulnerabilities, backdoors, what was fixed |
|
||
| [`GUIDE.en.md`](GUIDE.en.md) | Complete guide: install, connecting a node, configuration, maintenance |
|
||
|
||
---
|
||
|
||
## Requirements
|
||
|
||
**For the panel** (the website and database — Docker is not needed):
|
||
|
||
* Ubuntu 24.04 / 22.04 or Debian 12 / 13
|
||
* 1 core, 1 GB RAM, 10 GB disk
|
||
* Any VPS will do, including container-based ones (LXC/OpenVZ)
|
||
|
||
**For a game node** (this is where the game servers actually run):
|
||
|
||
* Ubuntu 24.04 / 22.04 or Debian 12 / 13
|
||
* 2 cores, 2 GB RAM, 100 GB disk (budget 1–2 GB per game server)
|
||
* **Full kernel access is mandatory: a dedicated server or KVM.**
|
||
The panel creates a separate Docker container for every game server, and Docker does not start
|
||
inside a container-based VPS (LXC/OpenVZ) — the kernel forbids nested namespaces. The installer
|
||
checks for this and tells you plainly if the machine is unsuitable.
|
||
|
||
The panel and a node can share one machine, but separating them is better: keep the website on a
|
||
cheap VPS and put the games on real hardware.
|
||
|
||
---
|
||
|
||
## One-click install
|
||
|
||
### Panel
|
||
|
||
```bash
|
||
apt-get update && apt-get install -y git
|
||
git clone https://github.com/RedlHosting/redl-gamepanel.git
|
||
cd redl-gamepanel
|
||
sudo bash install-panel.sh
|
||
```
|
||
|
||
The script asks only for the panel address, the administrator e-mail and password — everything else
|
||
is automatic: it installs nginx, PHP 8 and MariaDB, creates a database with a random password, loads
|
||
the schema, writes the configuration and the scheduler, sets up an autostart watchdog, creates the
|
||
administrator, and verifies that the login page actually opens.
|
||
|
||
To run the panel on a non-standard port, set it via an environment variable:
|
||
|
||
```bash
|
||
sudo PORT=8095 bash install-panel.sh
|
||
```
|
||
|
||
### Game node
|
||
|
||
```bash
|
||
git clone https://github.com/RedlHosting/redl-gamepanel.git
|
||
cd redl-gamepanel
|
||
sudo bash install-node.sh
|
||
```
|
||
|
||
At the end the script prints the IP, SSH login and password — enter those in the panel under
|
||
**Admin → Locations → Add location**. See [GUIDE.en.md](GUIDE.en.md) for details.
|
||
|
||
---
|
||
|
||
## What already works
|
||
|
||
* Login, registration, password recovery — **without a captcha** (it is enabled from the admin area, see below)
|
||
* Client area: balance, invoices, transfers, bonuses, promo codes, referral system
|
||
* Ticket system with categories and attachments
|
||
* Admin area: users, servers, locations, games, news, statistics, promo codes, settings
|
||
* System check (Admin → System check) — every item green
|
||
* Payment gateways: Unitpay, Enot, AnyPay, LiteKassa, RoboKassa, FreeKassa, YooKassa, QIWI
|
||
(credentials are entered in the admin area; we did not test any gateway with a real payment)
|
||
* Web hosting (the WEB section) — via ISPmanager on a separate machine
|
||
* Scheduler: statistics, tasks, automatic suspension of expired servers
|
||
* **Two interface languages: Russian and English**, with automatic detection from the browser
|
||
and a switcher in the header (see [GUIDE.en.md](GUIDE.en.md))
|
||
|
||
### The captcha is off and is enabled with a single switch
|
||
|
||
By default there is no captcha anywhere — not on login, registration or tickets; the field simply
|
||
does not exist. When you need it:
|
||
|
||
1. Get reCAPTCHA v2 ("I'm not a robot") keys at [google.com/recaptcha](https://www.google.com/recaptcha/admin)
|
||
2. Go to **Admin → Settings → Other settings → "Bot protection (reCAPTCHA v2)"**
|
||
3. Paste the Site key and the Secret key, switch it to "Enabled", save
|
||
|
||
The order matters: keys first, switch second — otherwise the form shows
|
||
"ERROR for site owner: Invalid site key" and nobody can log in.
|
||
|
||
## What does not work
|
||
|
||
* **Creating game servers on a container-based VPS.** You need a node with real Docker
|
||
(dedicated or KVM) — see Requirements for why.
|
||
* **Game server files are not included.** The original installer downloaded them from third-party
|
||
sites over plain HTTP with no signature checking, so we removed that (see [SECURITY.en.md](SECURITY.en.md)).
|
||
You need to place the files into `/home/cp/gameservers/files/<game_code>/` yourself.
|
||
* **Payments and VK login** require your own keys and merchant accounts.
|
||
|
||
---
|
||
|
||
## Differences from the original, in brief
|
||
|
||
* Runs on **PHP 8.4** instead of PHP 7.0 — a walk through all 21 sections of the panel produces
|
||
zero errors in the log
|
||
* **The installer was rewritten from scratch**: the original overwrote `/etc/apt/sources.list` with
|
||
Debian 9 repositories and broke apt on any current system
|
||
* **Two pre-authentication SQL injections were fixed**, and plaintext password storage was removed
|
||
* The captcha became manageable from the admin area
|
||
* Russian and English interface with automatic language detection
|
||
* The scheduler and autostart work even where systemd is absent
|
||
|
||
The full list is in [CHANGES.en.md](CHANGES.en.md) and [SECURITY.en.md](SECURITY.en.md).
|
||
|
||
---
|
||
|
||
**Maintained and developed with [REDL.IO](https://redl.io) — AI-powered hosting.**
|