~3 دقیقه مطالعه • بروزرسانی ۱۰ اسفند ۱۴۰۴
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.shuser_modify_post.shdomain_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. سفارشیسازی اسکینها
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
DirectAdmin صدها گزینه در directadmin.conf دارد. همیشه قبل از تغییر، مقدار قبلی را یادداشت کنید تا در صورت نیاز بتوانید آن را برگردانید.
---
7. ساخت پکیج اختصاصی “فقط ایمیل”
در این مثال، با ترکیب چند قابلیت DirectAdmin یک پکیج Email-Only میسازیم.
7.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
7.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
7.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
...
7.4 فعالسازی برای user_modify_post.sh
cd /usr/local/directadmin/scripts/custom
ln -s user_create_post.sh user_modify_post.sh
اکنون پکیج “فقط ایمیل” کاملاً عملیاتی است.
نوشته و پژوهش شده توسط دکتر شاهین صیامی