استقرار با یک کلیک
قالبهای آماده ابرکلیک امکان استقرار سریع اپلیکیشنهای محبوب متنباز را بدون نیاز به تنظیمات دستی فراهم میکنند. با چند کلیک، ابرکلیک بهصورت خودکار پایگاه داده مورد نیاز را ایجاد کرده، اطلاعات اتصال را به متغیرهای محیطی اپ تزریق میکند و اپلیکیشن را مستقر میکند.
چگونه کار میکند
۱. در داشبورد به بخش قالبهای آماده بروید ۲. قالب مورد نظر را انتخاب کنید (مثلاً WordPress) ۳. فرم را پر کنید: پروژه، نام نمونه، پلن اپ و پلن پایگاه داده ۴. ابرکلیک بهصورت خودکار:
- پایگاه داده مورد نیاز را ایجاد میکند
- اطلاعات اتصال را به متغیرهای محیطی اپ تزریق میکند
- اپلیکیشن را بیلد و مستقر میکند
۵. اپ شما در کمتر از ۳ دقیقه روی آدرس
https://<name>.apps.abrclick.irدر دسترس خواهد بود
اگر قالبی که نیاز دارید در لیست نیست، یک issue در مخزن GitHub ابرکلیک ثبت کنید تا در نسخههای بعدی اضافه شود.
قالبهای موجود
| نام قالب | نام فارسی | پایگاه داده | زمان استقرار |
|---|---|---|---|
| WordPress | وردپرس | MySQL | ~۳ دقیقه |
| Ghost | گوست | MySQL | ~۳ دقیقه |
| n8n | n8n | PostgreSQL | ~۴ دقیقه |
| Gitea | گیتا | PostgreSQL | ~۳ دقیقه |
| Metabase | متابیس | PostgreSQL | ~۴ دقیقه |
| Uptime Kuma | آپتایم کوما | بدون DB | ~۲ دقیقه |
| Umami | اومامی | PostgreSQL | ~۳ دقیقه |
مراحل استقرار (وضعیتها)
هر استقرار از طریق قالب مراحل زیر را طی میکند:
| وضعیت | توضیح |
|---|---|
pending | درخواست ثبت شده، در صف انتظار |
provisioning_db | پایگاه داده در حال ایجاد است |
deploying_app | اپلیکیشن در حال بیلد و استقرار است |
running | اپ آماده و در دسترس است |
API
دریافت لیست قالبها
GET /v1/templates
Authorization: Bearer <token>
نمونه پاسخ:
{
"templates": [
{
"slug": "wordpress",
"name": "WordPress",
"description": "سیستم مدیریت محتوای وردپرس",
"db_required": "mysql",
"estimated_deploy_time_seconds": 180
},
{
"slug": "ghost",
"name": "Ghost",
"description": "پلتفرم وبلاگنویسی حرفهای",
"db_required": "mysql",
"estimated_deploy_time_seconds": 180
},
{
"slug": "n8n",
"name": "n8n",
"description": "ابزار اتوماسیون و ادغام سرویسها",
"db_required": "postgresql",
"estimated_deploy_time_seconds": 240
}
]
}
استقرار یک قالب
POST /v1/templates/:slug/deploy
Authorization: Bearer <token>
Content-Type: application/json
بدنه درخواست:
{
"project_id": "proj_abc123",
"name": "my-wordpress",
"region": "ir-thr-1",
"app_plan": "rain",
"db_plan": "rain"
}
| فیلد | نوع | اجباری | توضیح |
|---|---|---|---|
project_id | string | بله | شناسه پروژه |
name | string | بله | نام نمونه (slug) |
region | string | خیر | ناحیه استقرار (پیشفرض: ir-thr-1) |
app_plan | string | خیر | پلن اپ (پیشفرض: cloud) |
db_plan | string | خیر | پلن پایگاه داده (پیشفرض: cloud) |
نمونه پاسخ:
{
"deployment_id": "tpl_dep_xyz789",
"status": "pending",
"app_url": "https://my-wordpress.apps.abrclick.ir",
"created_at": "2026-06-29T10:00:00Z"
}
پیگیری وضعیت استقرار
GET /v1/templates/deployments/:id
Authorization: Bearer <token>
نمونه پاسخ (در حال اجرا):
{
"deployment_id": "tpl_dep_xyz789",
"status": "deploying_app",
"app_id": "app_111aaa",
"db_id": "db_222bbb",
"app_url": "https://my-wordpress.apps.abrclick.ir",
"created_at": "2026-06-29T10:00:00Z",
"updated_at": "2026-06-29T10:01:30Z"
}
نمونه پاسخ (آماده):
{
"deployment_id": "tpl_dep_xyz789",
"status": "running",
"app_id": "app_111aaa",
"db_id": "db_222bbb",
"app_url": "https://my-wordpress.apps.abrclick.ir",
"created_at": "2026-06-29T10:00:00Z",
"updated_at": "2026-06-29T10:02:55Z"
}
استقرار از طریق CLI
# مشاهده قالبهای موجود
abrclick templates list
# استقرار یک قالب
abrclick templates deploy wordpress \
--project my-project \
--name my-wordpress \
--app-plan rain \
--db-plan rain
# پیگیری وضعیت
abrclick templates status tpl_dep_xyz789
میتوانید با استفاده از فلگ --watch وضعیت استقرار را بهصورت زنده دنبال کنید:
abrclick templates deploy ghost --project my-project --name my-blog --watch
استقرار از طریق SDK
import { AbrclickClient } from '@abrclick/sdk';
const client = new AbrclickClient({
token: process.env.ABRCLICK_TOKEN!,
});
// لیست قالبها
const templates = await client.getTemplates();
console.log(templates);
// استقرار قالب
const deployment = await client.deployTemplate('wordpress', {
project_id: 'proj_abc123',
app_name: 'my-wordpress',
app_cpu: '500m',
app_memory: '1Gi',
db_cpu: '500m',
db_memory: '1Gi',
});
console.log(`استقرار شروع شد: ${deployment.deployment_id}`);
// پیگیری وضعیت
const status = await client.getTemplateDeployment(deployment.deployment_id);
console.log(status.status); // 'pending' | 'provisioning_db' | 'deploying_app' | 'running'
مثال کامل: استقرار WordPress
از طریق داشبورد
۱. وارد داشبورد ابرکلیک شوید ۲. پروژه مورد نظر را انتخاب کنید ۳. از منوی کناری روی قالبهای آماده کلیک کنید ۴. کارت WordPress را انتخاب کنید ۵. فرم را پر کنید:
- نام نمونه:
my-wordpress - پلن اپ: Rain (۱,۳۶۴,۰۰۰ تومان/ماه)
- پلن پایگاه داده: Rain ۶. روی استقرار کلیک کنید
پس از تقریباً ۳ دقیقه، وردپرس شما روی آدرس زیر آماده است:
https://my-wordpress.apps.abrclick.ir
از طریق API
# گام ۱: استقرار قالب
curl -X POST https://api.abrclick.ir/v1/templates/wordpress/deploy \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"project_id": "proj_abc123",
"name": "my-wordpress",
"app_plan": "rain",
"db_plan": "rain"
}'
# گام ۲: پیگیری وضعیت
curl https://api.abrclick.ir/v1/templates/deployments/tpl_dep_xyz789 \
-H "Authorization: Bearer <token>"
متغیرهای محیطی تزریقشده
ابرکلیک بهصورت خودکار اطلاعات اتصال پایگاه داده را به اپ تزریق میکند. برای مثال در قالب WordPress:
| متغیر | توضیح |
|---|---|
DATABASE_URL | رشته اتصال کامل پایگاه داده |
DATABASE_HOST | آدرس هاست پایگاه داده |
DATABASE_PORT | پورت پایگاه داده |
DATABASE_NAME | نام پایگاه داده |
DATABASE_USER | نام کاربری |
DATABASE_PASSWORD | رمز عبور |
اطلاعات اتصال پایگاه داده بهصورت رمزنگاریشده ذخیره میشوند و هرگز در لاگها نمایش داده نمیشوند. مستقیماً مقادیر این متغیرها را تغییر ندهید؛ در غیر این صورت ارتباط اپ با پایگاه داده قطع خواهد شد.
محدودیتها
- هر قالب در هر پروژه میتواند چندین بار مستقر شود، اما نام هر نمونه باید یکتا باشد
- پس از استقرار موفق، اپ و پایگاه داده بهصورت مستقل قابل مدیریت هستند
- استقرار قالب از پلن
cloud(رایگان) پشتیبانی میکند، اما منابع محدود هستند - امکان تغییر پلن اپ یا پایگاه داده پس از استقرار از طریق داشبورد وجود دارد