راهنمای کامل DirectAdmin API و سفارشی‌سازی Workflow: آیتم‌های سفارشی، Feature Setها، ویجت‌ها، اسکین‌ها و ساخت پکیج‌های اختصاصی

این مقاله یک راهنمای جامع برای استفاده از DirectAdmin API و سفارشی‌سازی کامل رفتار DirectAdmin است. شامل معرفی API، ساخت آیتم‌های سفارشی برای پکیج‌ها و دامنه‌ها، محدودسازی ری‌استور، مدیریت ویجت‌ها، سفارشی‌سازی اسکین‌ها، کنترل پلاگین‌ها، و ترکیب این قابلیت‌ها برای ساخت پکیج‌های اختصاصی مانند "فقط ایمیل". تمام مثال‌ها، مسیرها و اسکریپت‌های لازم ارائه شده‌اند.

DirectAdmin APIworkflow customizationfeature sets, plugin control, email-only package

~3 min read • Updated Mar 1, 2026

1. DirectAdmin API چیست؟


DirectAdmin API ابزاری است که به شما اجازه می‌دهد اسکریپت‌های خودتان را—چه روی همان سرور و چه روی سرورهای دیگر—به DirectAdmin متصل کنید و عملیات مختلف را انجام دهید.


API دقیقاً مانند یک مرورگر عمل می‌کند و داده‌ها را همان‌طور ارسال می‌کند، با این تفاوت که خروجی CMD_API قابل پردازش و ساخت‌یافته است.


نکته مهم: همه CMD_APIها در فایل api.html لیست نشده‌اند؛ باید در سیستم نسخه‌ها جستجو کنید.


---

2. آیتم‌های سفارشی پکیج و دامنه (Custom Domain/Package Items)


این قابلیت به شما اجازه می‌دهد گزینه‌های جدیدی به پکیج‌ها یا دامنه‌ها اضافه کنید. این گزینه‌ها می‌توانند:


  • text
  • checkbox
  • listbox
  • و…

مقادیر آیتم‌های سفارشی در فایل‌های زیر ذخیره می‌شوند:


  • user.conf و reseller.conf برای پکیج‌ها
  • domain.com.conf برای دامنه‌ها

می‌توانید با استفاده از هوک‌های user_create_post.sh، user_modify_post.sh و domain_create_post.sh براساس این مقادیر عملیات خودکار انجام دهید.


---

3. محدودسازی ری‌استور آیتم‌های سفارشی فقط برای Admin


در فایل:


/usr/local/directadmin/data/admin/custom_domain_items.conf

می‌توانید به هر آیتم اضافه کنید:


&admin_restore_only=yes

این باعث می‌شود هنگام ری‌استور:


  • اگر ری‌استور از سطح Admin باشد → آیتم ری‌استور می‌شود
  • اگر از سطح User یا Reseller باشد → نادیده گرفته می‌شود

---

4. ویجت‌های سفارشی برای هر کاربر یا ریسلر


در فایل‌های user.conf و reseller.conf می‌توانید تعیین کنید چه ویجت‌هایی نمایش داده شوند.


گزینه‌ها:


  • widgets=ON → همه ویجت‌ها فعال
  • widgets=OFF → همه ویجت‌ها غیرفعال
  • widgets=ON:WGT_DB|WGT_PLUGINS_HELLO_WORLD → فقط این ویجت‌ها فعال
  • widgets=OFF:WGT_DB → فقط این ویجت غیرفعال

این قابلیت فعلاً در UI نیست، اما می‌توان آن را با Custom Package Items کنترل کرد.


---

5. سفارشی‌سازی اسکین‌ها (Evolution و Enhanced)


5.1 سفارشی‌سازی Evolution از طریق پنل


از مسیر:


Customize Evolution Skin

تمام تغییرات در مسیر زیر ذخیره می‌شود:


/usr/local/directadmin/data/users/{username}/skin_customizations/evolution

5.2 ساخت skin.conf سفارشی


برای override کردن تنظیمات:


/usr/local/directadmin/data/users/CREATOR/skin_customizations/evolution/skin.conf

مثال: محدود کردن ویجت‌ها


user_widgets=WGT_DB|WGT_EMAIL

5.3 ساخت اسکین اختصاصی


cd /usr/local/directadmin/data/skins
cp -Rp enhanced yourskin

اسکین‌ها از PHP/Perl و سیستم if-else پشتیبانی می‌کنند.


---

6. مدیریت پلاگین‌ها


پلاگین‌ها اسکریپت‌هایی هستند که امکانات جدیدی به DirectAdmin اضافه می‌کنند و با سطح دسترسی کاربر اجرا می‌شوند.


نکته امنیتی: اگر پلاگین را با chmod 4755 ست کنید، می‌تواند با سطح root اجرا شود—این کار فقط برای افراد حرفه‌ای توصیه می‌شود.


---

7. کنترل سطح دسترسی پلاگین‌ها در پکیج‌ها


7.1 مسیرها


پکیج:


/usr/local/directadmin/data/users/USERNAME/packages/PACKAGE_NAME

فایل کاربر:


/usr/local/directadmin/data/users/USERNAME/user.conf

7.2 فعال‌سازی یا غیرفعال‌سازی


اجازه دادن:


plugins_allow=plug1:plug2

ممنوع کردن:


plugins_deny=plug3:plug4

7.3 قوانین:


  • اگر هیچ‌کدام نبود → همه پلاگین‌ها مجاز
  • اگر plugins_allow بود → فقط همان‌ها مجاز
  • اگر plugins_deny بود → همان‌ها ممنوع
  • اگر هر دو باشند → allow برنده است

پاک کردن لیست‌ها:


plugins_allow=[clear]
plugins_deny=[clear]

---

8. ترکیب قابلیت‌ها برای ساخت پکیج "فقط ایمیل"


در این مثال، می‌خواهیم پکیجی بسازیم که فقط امکانات ایمیل را فعال کند.


8.1 ساخت آیتم سفارشی پکیج


فایل:


/usr/local/directadmin/data/admin/custom_package_items.conf

محتوا:


account_allow=type=listbox&item1txt=All Features&item1val=all&item2txt=E-Mail Only&item2val=email&string=Select Featureset&desc=Ability to select core features&default=all

8.2 ساخت هوک user_create_post.sh


#!/bin/sh
CA=/usr/local/directadmin/data/users/$username/commands.allow
if [ "${account_allow}" = "email" ]; then
      cp -f /root/allows/email.list $CA
fi
if [ "${account_allow}" = "" ] || [ "${account_allow}" = "all" ]; then
       rm -f $CA
fi
exit 0;

و قابل اجرا:


chmod 755 /usr/local/directadmin/scripts/custom/user_create_post.sh

8.3 ساخت فایل email.list


این فایل شامل تمام CMDهای مربوط به ایمیل است.


CMD_EMAIL_POP
CMD_EMAIL_FORWARDER
CMD_EMAIL_LIST
CMD_EMAIL_AUTORESPONDER
CMD_EMAIL_VACATION
CMD_EMAIL_USAGE
CMD_WEBMAIL_LOGIN
CMD_PASSWD
CMD_LOGIN
CMD_LOGOUT
CMD_USER_STATS
CMD_USER_HISTORY
CMD_TICKET
CMD_TICKET_CREATE
CMD_WIDGET
...

8.4 فعال‌سازی برای user_modify_post.sh


cd /usr/local/directadmin/scripts/custom
ln -s user_create_post.sh user_modify_post.sh

اکنون پکیج "فقط ایمیل" کاملاً عملیاتی است.


Written & researched by Dr. Shahin Siami