Platform to sell and manage Hetzner Cloud VPS subscriptions
PHP 8.1+ · MySQL · Telegram · PayPal · EN / AR
Arabic documentation available below — Jump to العربية ↓
Repository: github.com/ip1app/Hetzner-vps-Bot
Live demo: ip1.app — browse plans, client login, and the full store experience.
A PHP monolith built for shared hosting (cPanel) and VPS. Everything in one project:
| Channel | Description |
|---|---|
| Web store | Browse plans, PayPal checkout, instant server activation |
| Admin panel | Clients, plans, stock, invoices, Hetzner, PayPal |
| Client portal | Telegram OTP login, server control, subscription renewal |
| Telegram bot | Server control, account linking, alerts, admin panel in-bot |
| REST API v1 | JWT + OTP — ready for mobile apps |
| Cron | Expiry alerts and automatic suspension |
Default language is English with full Arabic support (RTL).
No Composer on the server — custom autoloader, zero external dependencies.
| English | Arabic |
|---|---|
![]() |
![]() |
| English | Arabic |
|---|---|
![]() |
![]() |
| English | Arabic |
|---|---|
![]() |
![]() |
| English | Arabic |
|---|---|
![]() |
![]() |
The script is 100% free (MIT license). Need help?
| Service | Description |
|---|---|
| Server setup | Upload, Document Root, MySQL, webhooks |
| Customization | Logo, colors, texts, script tweaks |
| Integration | Hetzner + Telegram + PayPal |
Affordable rates from $10
| GitHub | @ip1app |
| Telegram | @ip1app |
| ip@ip1.app |
Developed by iP1
| Requirement | Details |
|---|---|
| PHP | 8.1+ with json, openssl, curl, pdo, pdo_mysql |
| Database | MySQL 5.7+ / MariaDB 10.3+ |
| HTTPS | Required for webhooks and API |
| Cron | Hourly — cron/subscription.php |
| Telegram | Bot token from @BotFather |
- Download from GitHub (ZIP or
git clone):
git clone https://github.com/ip1app/Hetzner-vps-Bot.git- Upload all files to your server
- Set Document Root to the
public/folder
cPanel example:public_html/vp/public
chmod 755 data/The data/ folder must be writable by PHP.
Before installation, visitors who open the store homepage see a neutral “setup in progress” page — they are not redirected to the installer.
Open the installer directly (bookmark this URL during setup):
https://your-domain.com/setup.php
Or:
https://your-domain.com/install
Follow the steps:
- Choose language
- Store name and currency
- MySQL credentials
- Admin account
The wizard creates .env (including SECRET_KEY, JWT_SECRET, CRON_KEY, and WEBHOOK_SECRET) and data/installed.lock automatically.
After installation, the store homepage works normally and the installer files are removed.
From the admin panel (/admin):
- Connect Telegram (token + webhook)
- Add Hetzner API Token
- Configure PayPal (optional)
- Branding: logo and store colors
php /path/to/cron/subscription.phpOr via HTTP (hourly):
https://your-domain.com/cron/subscription.php?key=CRON_KEY
CRON_KEY is in .env after installation.
| Service | Path |
|---|---|
| Telegram | https://your-domain.com/tg/{WEBHOOK_SECRET} |
| PayPal | https://your-domain.com/paypal/webhook |
- Ensure
.envanddata/are not web-accessible - The installer removes
install/andsetup.phpautomatically after completion - Do not share
/setup.phpor/installpublicly — only the site owner should run setup WEBHOOK_SECRETis required for Telegram webhooks (no default path); re-register the bot webhook after install if you change it
Hetzner-vps-Bot/
├── public/ # Document Root
│ ├── index.php # Entry point
│ └── setup.php # Setup wizard (removed after install)
├── app/ # Application code
├── cron/ # Cron jobs
├── resources/ # SSL certificates (cacert.pem)
├── vendor/autoload.php # Autoloader (no Composer)
├── data/ # Runtime (installed.lock)
├── install/ # Installer redirect (removed after install)
├── .env.example # Environment template
└── README.md
| ✅ Upload | ❌ Do not replace |
|---|---|
app/ |
.env |
Updated public/ files |
data/installed.lock |
cron/ |
MySQL database |
resources/ |
public/brand/ (your logo) |
vendor/autoload.php |
See .env.example for the full list. Key variables:
| Variable | Description |
|---|---|
DB_HOST / DB_NAME / DB_USER / DB_PASS |
MySQL connection |
ADMIN_PATH |
Admin panel path (default: admin) |
ADMIN_USER / ADMIN_PASS |
Admin login |
SECRET_KEY |
Encrypt sensitive settings (auto-generated on install) |
JWT_SECRET |
JWT signing for API and CSRF (auto-generated on install) |
TELEGRAM_BOT_TOKEN / ADMIN_IDS |
Telegram bot |
HETZNER_API_TOKEN |
Hetzner (or set from admin) |
CRON_KEY |
HTTP cron protection |
WEBHOOK_DOMAIN |
HTTPS domain |
WEBHOOK_SECRET |
Telegram webhook path (auto-generated on install) |
MIT — free to use and modify with attribution.
منصة لبيع وإدارة اشتراكات VPS على Hetzner Cloud
English documentation above — Jump to English ↑
المستودع: github.com/ip1app/Hetzner-vps-Bot
تجربة حية: ip1.app — تصفّح الباقات، دخول العملاء، وتجربة المتجر كاملة.
منصة PHP موحّدة تجمع كل القنوات في مشروع واحد، مصممة للاستضافة المشتركة (cPanel) و VPS:
| القناة | الوصف |
|---|---|
| متجر ويب | عرض الباقات، الدفع عبر PayPal، تفعيل فوري للسيرفر |
| لوحة أدمن | إدارة العملاء، الباقات، المخزون، الفواتير، Hetzner، PayPal |
| لوحة عميل | دخول OTP عبر تلجرام، تحكم بالسيرفر، تجديد الاشتراك |
| بوت تلجرام | تحكم بالسيرفر، ربط الحساب، تنبيهات، لوحة أدmin داخل البوت |
| REST API v1 | JWT + OTP — جاهز لتطبيقات الموبايل |
| Cron | تنبيهات انتهاء الاشتراك والإيقاف التلقائي |
اللغة الافتراضية الإنجليزية مع دعم كامل للعربية (RTL).
لا يحتاج Composer على السيرفر — المشروع يستخدم autoloader مخصص بدون مكتبات خارجية.
| English | العربية |
|---|---|
![]() |
![]() |
| English | العربية |
|---|---|
![]() |
![]() |
| English | العربية |
|---|---|
![]() |
![]() |
| English | العربية |
|---|---|
![]() |
![]() |
السكربت مجاني 100% (ترخيص MIT). إذا تحتاج مساعدة:
| الخدمة | الوصف |
|---|---|
| تثبيت على السيرفر | رفع، إعداد Document Root، MySQL، webhooks |
| تخصيص | شعار، ألوان، نصوص، تعديلات على السكربت |
| ربط الخدمات | Hetzner + Telegram + PayPal |
أسعار رمزية تبدأ من 10$
| GitHub | @ip1app |
| تلجرام | @ip1app |
| البريد | ip@ip1.app |
تطوير: iP1
| المتطلب | التفاصيل |
|---|---|
| PHP | 8.1+ مع json, openssl, curl, pdo, pdo_mysql |
| قاعدة بيانات | MySQL 5.7+ / MariaDB 10.3+ |
| HTTPS | إلزامي لـ webhooks والـ API |
| Cron | كل ساعة لـ cron/subscription.php |
| Telegram | توكن بوت من @BotFather |
- حمّل المشروع من GitHub (ZIP أو
git clone):
git clone https://github.com/ip1app/Hetzner-vps-Bot.git- ارفع كل الملفات على السيرفر
- اضبط Document Root على مجلد
public/
مثال cPanel:public_html/vp/public
chmod 755 data/مجلد data/ يجب أن يكون قابل للكتابة من PHP.
قبل اكتمال التثبيت، الزائر العادي الذي يفتح الصفحة الرئيسية يرى صفحة «المنصة قيد الإعداد» — ولا يُحوَّل تلقائياً إلى المعالج.
افتح معالج التثبيت مباشرة (احفظ هذا الرابط أثناء التثبيت):
https://your-domain.com/setup.php
أو:
https://your-domain.com/install
اتبع الخطوات:
- اختيار اللغة
- اسم المتجر والعملة
- بيانات MySQL
- حساب الأدمن
يُنشئ المعالج ملف .env (يشمل SECRET_KEY و JWT_SECRET و CRON_KEY و WEBHOOK_SECRET) و data/installed.lock تلقائياً.
بعد التثبيت، الصفحة الرئيسية تعمل كمتجر عادي ويُحذف المعالج.
من لوحة الأدمن (/admin):
- ربط Telegram (توكن + webhook)
- إضافة Hetzner API Token
- إعداد PayPal (اختياري)
- الهوية البصرية: شعار وألوان المتجر
php /path/to/cron/subscription.phpأو عبر HTTP (كل ساعة):
https://your-domain.com/cron/subscription.php?key=CRON_KEY
CRON_KEY موجود في .env بعد التثبيت.
| الخدمة | المسار |
|---|---|
| Telegram | https://your-domain.com/tg/{WEBHOOK_SECRET} |
| PayPal | https://your-domain.com/paypal/webhook |
- تأكد أن
.envوdata/غير قابلين للوصول من الويب - المعالج يحذف
install/وsetup.phpتلقائياً بعد اكتمال التثبيت - لا تشارك
/setup.phpأو/installعلناً — فقط مالك الموقع يشغّل التثبيت WEBHOOK_SECRETمطلوب لـ webhook تلجرام (لا مسار افتراضي) — أعد تسجيل webhook البوت إذا غيّرته
Hetzner-vps-Bot/
├── public/ # Document Root
│ ├── index.php # نقطة الدخول
│ └── setup.php # معالج التثبيت (يُحذف بعد التثبيت)
├── app/ # كود التطبيق
├── cron/ # مهام Cron
├── resources/ # شهادات SSL (cacert.pem)
├── vendor/autoload.php # Autoloader (بدون Composer)
├── data/ # runtime (installed.lock)
├── install/ # redirect للمعالج (يُحذف بعد التثبيت)
├── .env.example # نموذج المتغيرات
└── README.md
| ✅ ارفع | ❌ لا تستبدل |
|---|---|
app/ |
.env |
public/index.php وملفات public/ المحدّثة |
data/installed.lock |
cron/ |
قاعدة بيانات MySQL |
resources/ |
public/brand/ (شعارك) |
vendor/autoload.php |
راجع .env.example للقائمة الكاملة. أهم المتغيرات:
| المتغير | الوصف |
|---|---|
DB_HOST / DB_NAME / DB_USER / DB_PASS |
اتصال MySQL |
ADMIN_PATH |
مسار لوحة الأدmin (افتراضي: admin) |
ADMIN_USER / ADMIN_PASS |
بيانات دخول الأدمن |
SECRET_KEY |
تشفير الإعدادات الحساسة (يُولَّد تلقائياً عند التثبيت) |
JWT_SECRET |
توقيع JWT للـ API و CSRF (يُولَّد تلقائياً عند التثبيت) |
TELEGRAM_BOT_TOKEN / ADMIN_IDS |
بوت تلجرام |
HETZNER_API_TOKEN |
Hetzner (أو من الأدمن) |
CRON_KEY |
حماية cron عبر HTTP |
WEBHOOK_DOMAIN |
نطاق HTTPS |
WEBHOOK_SECRET |
مسار webhook تلجرام (يُولَّد تلقائياً عند التثبيت) |
MIT — حر الاستخدام والتعديل مع الإشارة للمصدر.
v1.2.2 · Built for shared hosting · Hetzner-vps-Bot · @ip1app · ip@ip1.app · iP1







