hesabixSite/docs/installation-guide.md

141 lines
4.1 KiB
Markdown
Raw Normal View History

2025-08-02 05:20:46 +03:30
# راهنمای نصب خودکار حسابیکس
## مقدمه
این سیستم امکان نصب خودکار حسابیکس را بر روی هاست‌های اشتراکی با پنل‌های cPanel و DirectAdmin فراهم می‌کند.
## ویژگی‌ها
- ✅ تست اتصال خودکار به هاست
- ✅ دریافت لیست دامنه‌ها از پنل
- ✅ ایجاد دیتابیس خودکار
- ✅ دانلود و آپلود فایل‌های حسابیکس
- ✅ تنظیم فایل .env.local.php
- ✅ ایمپورت دیتابیس پیش‌فرض
- ✅ تنظیم مجوزهای فایل
## مراحل نصب
### 1. تست اتصال به هاست
کاربر اطلاعات اتصال به پنل هاست خود را وارد می‌کند:
- نوع پنل (cPanel یا DirectAdmin)
- آدرس هاست
- نام کاربری
- رمز عبور
### 2. انتخاب دامنه
سیستم لیست دامنه‌های موجود در هاست را دریافت کرده و کاربر دامنه مورد نظر را انتخاب می‌کند.
### 3. تنظیمات دیتابیس
کاربر اطلاعات دیتابیس جدید را وارد می‌کند:
- نام دیتابیس
- نام کاربری دیتابیس
- رمز عبور دیتابیس
### 4. آپلود فایل‌ها
سیستم فایل‌های حسابیکس را دانلود کرده و به هاست آپلود می‌کند.
### 5. تنظیمات نهایی
فایل .env.local.php تنظیم شده و دیتابیس ایمپورت می‌شود.
## API Endpoints
### تست اتصال
```
POST /api/installation/test-connection
```
### دریافت اطلاعات دامنه
```
POST /api/installation/get-domain-info
```
### ایجاد دیتابیس
```
POST /api/installation/create-database
```
### آپلود فایل‌ها
```
POST /api/installation/upload-files
```
### تنظیم فایل .env.local.php
```
POST /api/installation/configure-env
```
### نهایی‌سازی نصب
```
POST /api/installation/finalize
```
## ساختار فایل‌ها
```
src/
├── Controller/
│ └── InstallationController.php # کنترلر اصلی نصب
├── Service/
│ └── InstallationService.php # سرویس نصب
templates/
└── installation/
└── index.html.twig # صفحه نصب
assets/
└── controllers/
└── installation_controller.js # کنترلر Stimulus
```
## پیاده‌سازی API پنل‌ها
### cPanel API
- URL: `https://hostname:2083/execute/`
- احراز هویت: Basic Auth
- مستندات: https://api.docs.cpanel.net/
### DirectAdmin API
- URL: `https://hostname:2222/CMD_API_`
- احراز هویت: Basic Auth
- مستندات: https://www.directadmin.com/api.html
## نکات امنیتی
1. **رمزنگاری اطلاعات**: اطلاعات حساس مانند رمزهای عبور باید رمزنگاری شوند
2. **اعتبارسنجی ورودی**: تمام ورودی‌های کاربر باید اعتبارسنجی شوند
3. **محدودیت نرخ**: API calls باید محدود شوند
4. **لاگ‌گیری**: تمام عملیات نصب باید لاگ شوند
## عیب‌یابی
### خطاهای رایج
1. **خطا در اتصال به هاست**
- بررسی صحت آدرس هاست
- بررسی نام کاربری و رمز عبور
- بررسی فعال بودن API در پنل
2. **خطا در ایجاد دیتابیس**
- بررسی محدودیت‌های هاست
- بررسی دسترسی‌های کاربر
3. **خطا در آپلود فایل‌ها**
- بررسی فضای دیسک
- بررسی مجوزهای فایل
## توسعه
برای اضافه کردن پشتیبانی از پنل‌های جدید:
1. متدهای مربوطه در `InstallationService` را پیاده‌سازی کنید
2. API endpoints جدید را اضافه کنید
3. تست‌های مربوطه را بنویسید
## تست
```bash
# تست واحد
php bin/phpunit tests/Service/InstallationServiceTest.php
# تست یکپارچگی
php bin/phpunit tests/Controller/InstallationControllerTest.php
```