# راهنمای نصب خودکار حسابیکس ## مقدمه این سیستم امکان نصب خودکار حسابیکس را بر روی هاست‌های اشتراکی با پنل‌های 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 ```