مرجع کامل endpointهای بخش «مدیریت سرور» در API کلاینت پافرلند.
Endpoints مدیریت سرور
دریافت لیست سرورها، وضعیت و مصرف منابع، مدیریت پاور، کنسول، تنظیمات و استارتاپ.
در تمام مسیرهای زیر، {server} شناسهی سرور است و میتواند UUID کامل یا شناسهی کوتاه (مثل 1a7ce997) باشد.
GET/api/client
فهرست همهی سرورهایی که به آنها دسترسی دارید را برمیگرداند. پارامترهای ?page، ?per_page (حداکثر ۱۰۰) و ?include=allocations,variables پشتیبانی میشوند.
هر سرور شامل identifier، uuid، name، status، limits، sftp_details و feature_limits است.
import requests
r = requests.get(
"https://pufferland.ir/api/client",
headers={"Authorization": "Bearer ptlc_xxxxxxxxxxxxxxxxxxxxxxxx"},
)
for s in r.json()["data"]:
print(s["attributes"]["identifier"], s["attributes"]["name"])
در پاسخ واقعی بالا، مقدار identifier سرور اول 1a85a183 است — همان مقداری که در پارامتر {server} استفاده میشود.
GET/api/client/permissions
لیست تمام مجوزهای قابلاختصاص را گروهبندیشده برمیگرداند (کنترل، فایل، دیتابیس، بکاپ، زمانبندی و…). برای ساخت زیرکاربر با endpoint ساخت زیرکاربر کاربرد دارد.
{
"object": "system_permissions",
"attributes": {
"permissions": {
"websocket": {
"description": "به کاربر اجازه اتصال به وبسوکت سرور را میدهد و امکان مشاهده خروجی کنسول و آمار لحظهای سرور را فراهم میکند.",
"keys": {
"connect": "به کاربر اجازه اتصال به نمونه وبسوکت سرور برای پخش کنسول را میدهد."
}
},
"control": {
"description": "دسترسیهایی که توانایی کاربر برای کنترل وضعیت روشن/خاموش سرور یا ارسال دستورات را مدیریت میکند.",
"keys": {
"console": "به کاربر اجازه ارسال دستورات به نمونه سرور از طریق کنسول را میدهد.",
"start": "به کاربر اجازه روشن کردن سرور در صورت خاموش بودن را میدهد.",
"stop": "به کاربر اجازه خاموش کردن سرور در صورت روشن بودن را میدهد.",
"restart": "به کاربر اجازه راهاندازی مجدد سرور را میدهد. این امکان روشن کردن سرور در صورت آفلاین بودن را فراهم میکند، اما سرور را به طور کامل متوقف نمیکند."
}
},
"user": {
"description": "دسترسیهایی که به کاربر اجازه مدیریت سایر کاربران فرعی سرور را میدهد. آنها هرگز نمیتوانند اکانت خود را ویرایش کنند یا دسترسیهایی که خودشان ندارند را اختصاص دهند.",
"keys": {
"create": "به کاربر اجازه ایجاد کاربران فرعی جدید برای سرور را میدهد.",
"read": "به کاربر اجازه مشاهده کاربران فرعی و دسترسیهای آنها برای سرور را میدهد.",
"update": "به کاربر اجازه ویرایش سایر کاربران فرعی را میدهد.",
"delete": "به کاربر اجازه حذف یک کاربر فرعی از سرور را میدهد."
}
},
"file": {
"description": "دسترسیهایی که توانایی کاربر برای تغییر فایلسیستم این سرور را مدیریت میکند.",
"keys": {
"create": "به کاربر اجازه ایجاد فایلها و پوشههای جدید از طریق پنل یا آپلود مستقیم را میدهد.",
"read": "به کاربر اجازه مشاهده محتویات یک پوشه را میدهد، اما اجازه مشاهده محتویات یا دانلود فایلها را نمیدهد.",
"read-content": "به کاربر اجازه مشاهده محتویات یک فایل مشخص را میدهد. همچنین به کاربر اجازه دانلود فایلها را نیز میدهد.",
"update": "به کاربر اجازه بهروزرسانی محتویات یک فایل یا پوشه موجود را میدهد.",
"delete": "به کاربر اجازه حذف فایلها یا پوشهها را میدهد.",
"archive": "به کاربر اجازه فشردهسازی محتویات یک پوشه و همچنین استخراج آرشیوهای موجود روی سیستم را میدهد.",
"sftp": "به کاربر اجازه اتصال به SFTP و مدیریت فایلهای سرور با استفاده از سایر دسترسیهای فایل اختصاص داده شده را میدهد."
}
},
"backup": {
"description": "دسترسیهایی که توانایی کاربر برای تولید و مدیریت بکاپهای سرور را مدیریت میکند.",
"keys": {
"create": "به کاربر اجازه ایجاد بکاپهای جدید برای این سرور را میدهد.",
"read": "به کاربر اجازه مشاهده تمام بکاپهای موجود برای این سرور را میدهد.",
"delete": "به کاربر اجازه حذف بکاپها از سیستم را میدهد.",
"download": "به کاربر اجازه دانلود بکاپ سرور را میدهد. هشدار: این امکان به کاربر اجازه دسترسی به تمام فایلهای سرور در بکاپ را میدهد.",
"restore": "به کاربر اجازه بازیابی بکاپ سرور را میدهد. هشدار: این امکان به کاربر اجازه حذف تمام فایلهای سرور در این فرآیند را میدهد."
}
},
"allocation": {
"description": "دسترسیهایی که توانایی کاربر برای تغییر تخصیص پورتهای این سرور را مدیریت میکند.",
"keys": {
"read": "به کاربر اجازه مشاهده تمام تخصیصهای فعلی اختصاص داده شده به این سرور را میدهد. کاربران با هر سطح دسترسی به این سرور همیشه میتوانند تخصیص اصلی را مشاهده کنند.",
"create": "به کاربر اجازه اختصاص تخصیصهای اضافی به سرور را میدهد.",
"update": "به کاربر اجازه تغییر تخصیص اصلی سرور و افزودن یادداشت به هر تخصیص را میدهد.",
"delete": "به کاربر اجازه حذف یک تخصیص از سرور را میدهد."
}
},
"startup": {
"description": "دسترسیهایی که توانایی کاربر برای مشاهده پارامترهای استارتاپ این سرور را مدیریت میکند.",
"keys": {
"read": "به کاربر اجازه مشاهده متغیرهای استارتاپ سرور را میدهد.",
"update": "به کاربر اجازه ویرایش متغیرهای استارتاپ سرور را میدهد.",
"docker-image": "به کاربر اجازه تغییر ایمیج Docker مورد استفاده هنگام اجرای سرور را میدهد."
}
},
"database": {
"description": "دسترسیهایی که دسترسی کاربر به مدیریت پایگاه داده برای این سرور را مدیریت میکند.",
"keys": {
"create": "به کاربر اجازه ایجاد یک پایگاه داده جدید برای این سرور را میدهد.",
"read": "به کاربر اجازه مشاهده پایگاه داده مرتبط با این سرور را میدهد.",
"update": "به کاربر اجازه تغییر رمز عبور یک نمونه پایگاه داده را میدهد. اگر کاربر دسترسی view_password نداشته باشد، رمز عبور بهروزرسانی شده را مشاهده نخواهد کرد.",
"delete": "به کاربر اجازه حذف یک نمونه پایگاه داده از این سرور را میدهد.",
"view_password": "به کاربر اجازه مشاهده رمز عبور مرتبط با یک نمونه پایگاه داده برای این سرور را میدهد."
}
},
"schedule": {
"description": "دسترسیهایی که دسترسی کاربر به مدیریت زمانبندی برای این سرور را مدیریت میکند.",
"keys": {
"create": "به کاربر اجازه ایجاد زمانبندیهای جدید برای این سرور را میدهد.",
"read": "به کاربر اجازه مشاهده زمانبندیها و وظایف مرتبط با آنها برای این سرور را میدهد.",
"update": "به کاربر اجازه بهروزرسانی زمانبندیها و وظایف زمانبندی برای این سرور را میدهد.",
"delete": "به کاربر اجازه حذف زمانبندیها برای این سرور را میدهد."
}
},
"settings": {
"description": "دسترسیهایی که دسترسی کاربر به تنظیمات این سرور را مدیریت میکند.",
"keys": {
"rename": "به کاربر اجازه تغییر نام این سرور و تغییر توضیحات آن را میدهد.",
"reinstall": "به کاربر اجازه شروع نصب مجدد این سرور را میدهد."
}
},
"activity": {
"description": "دسترسیهایی که دسترسی کاربر به لاگهای فعالیت سرور را مدیریت میکند.",
"keys": {
"read": "به کاربر اجازه مشاهده لاگهای فعالیت سرور را میدهد."
}
}
}
}
}
GET/api/client/servers/{server}
جزئیات کامل یک سرور مشخص را برمیگرداند: محدودیتهای منابع، ایمیج داکر، وضعیت، دستور اجرا و… . در بخش meta پاسخ نیز is_server_owner و user_permissions موجود است.
مصرف لحظهای منابع سرور را برمیگرداند: current_state (مانند running)، is_suspended و resources شامل memory_bytes، cpu_absolute، disk_bytes، network_rx_bytes، network_tx_bytes و uptime (میلیثانیه).
تنظیمات استارتاپ سرور را برمیگرداند: لیست متغیرهای egg_variable (با env_variable، server_value، is_editable و قوانین اعتبارسنجی) بهعلاوهی startup_command و docker_images در بخش meta.
{
"object": "list",
"data": [
{
"object": "egg_variable",
"attributes": {
"name": "Server Jar File",
"description": "نام فایل jar سرور که برای اجرای سرور استفاده میشود.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"server_value": "server.jar",
"is_editable": true,
"rules": "required|regex:/^([\w\d._-]+)(\.jar)$/"
}
},
{
"object": "egg_variable",
"attributes": {
"name": "Minecraft Version",
"description": "نسخهای از ماینکرفت که نصب میشود. برای نصب آخرین نسخه از "latest" و برای نصب آخرین نسخه آزمایشی (اسنپشات) از "snapshot" استفاده کنید.",
"env_variable": "MC_VERSION",
"default_value": "latest",
"server_value": "26.2",
"is_editable": true,
"rules": "required|string|between:3,15"
}
}
],
"meta": {
"startup_command": "java -Xms128M -Xmx1536M -jar server.jar",
"docker_images": {
"Java 25": "registry.pufferland.ir/yolks:java_25",
"Java 21": "registry.pufferland.ir/yolks:java_21",
"Java 17": "registry.pufferland.ir/yolks:java_17",
"Java 16": "registry.pufferland.ir/yolks:java_16",
"Java 11": "ghcr.io/pterodactyl/yolks:java_11",
"Java 8": "registry.pufferland.ir/yolks:java_8"
},
"raw_startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}"
}
}
PUT/api/client/servers/{server}/startup/variable
مقدار یک متغیر استارتاپ را بهروزرسانی میکند و متغیر بهروزشده را برمیگرداند. خطای 422 اگر مقدار قوانین اعتبارسنجی را نقض کند یا کلید نامعتبر باشد؛ خطای 400 اگر متغیر قابل ویرایش نباشد.