
خودکارسازی بهروزرسانی n8n با Coolify و API گیتهاب
8 دقیقه مطالعه · منتشر شده ۱۴۰۵/۵/۶
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 4360 · منبع: کاتالوگ Pixori
اتوماسیون بهروزرسانیهای n8n با Coolify
این Workflow فرآیند بهروزرسانی نمونه n8n شما را به آخرین نسخه پایدار یا بتا با استفاده از Coolify به عنوان پلتفرم استقرار شما خودکار میکند. این Workflow از API گیتهاب برای دریافت اطلاعات انتشار، فیلتر کردن نوع انتشار مورد نظر، اطمینان از عدم وجود بهروزرسانیهای تکراری و سپس راهاندازی مجدد استقرار از طریق Coolify استفاده میکند.
کاتالوگ Axeto n8n: https://axeto.ai/n8n
نمای کلی Workflow
این Workflow برای اجرا بر اساس یک برنامه زمانبندی شده طراحی شده است و بهروزرسانیهای جدید n8n را بررسی میکند. این Workflow شامل بلوکهای منطقی زیر است:
1. Triggerهای زمانبندی شده: فرآیند بهروزرسانی را برای انتشار پایدار یا بتا در فواصل زمانی تعریف شده آغاز میکنند.
2. دریافت انتشارها: دادههای انتشار را از مخزن گیتهاب n8n دریافت میکند.
3. فیلتر و محدود کردن انتشارها: انتشارهای پیشانتشار (بتا) را جدا کرده و تعداد انتشارهای پردازش شده را کنترل میکند.
4. حذف موارد تکراری: با ردیابی انتشارهای پردازش شده قبلی، از بهروزرسانیهای غیرضروری جلوگیری میکند.
5. بهروزرسانی متغیر محیطی: متغیر محیطی N8N_VERSION را در Coolify برای مشخص کردن نسخه جدید تغییر میدهد.
6. استقرار بهروزرسانی: راهاندازی مجدد استقرار را در Coolify برای اعمال نسخه بهروز شده n8n آغاز میکند.
تجزیه و تحلیل گرههای دقیق
۱. Triggerهای زمانبندی شده
این گرهها Workflow را بر اساس فرکانس بهروزرسانی مورد نظر شما آغاز میکنند.
- گره:
Auto Update Latest Release
* نوع: Schedule Trigger
* هدف: Workflow را برای بررسی آخرین انتشار پایدار n8n راهاندازی میکند.
* پیکربندی: برای اجرا به صورت ساعتی تنظیم شده است (به طور پیشفرض غیرفعال است).
* خروجی: کنترل را به گره Get Release منتقل میکند.
* ملاحظات: اگر بهروزرسانیهای خودکار پایدار را میخواهید، مطمئن شوید که این گره فعال است.
- گره:
Auto Update Beta Release
* نوع: Schedule Trigger
* هدف: Workflow را برای بررسی آخرین نسخه بتا (پیشانتشار) n8n راهاندازی میکند.
* پیکربندی: برای راهاندازی مکرر پیکربندی شده است (فاصله زمانی ممکن است خالی یا مدت زمان بسیار کوتاهی تنظیم شود).
* خروجی: کنترل را به گره Get Releases منتقل میکند.
* ملاحظات: راهاندازی مکرر ممکن است به محدودیتهای نرخ API گیتهاب نزدیک شود.
۲. دریافت انتشارها
این گرهها API گیتهاب را برای اطلاعات انتشار n8n پرس و جو میکنند.
- گره:
Get Release
* نوع: HTTP Request
* هدف: جزئیات آخرین انتشار پایدار n8n را دریافت میکند.
* پیکربندی:
* URL: https://api.github.com/repos/n8n-io/n8n/releases/latest
* متد: GET
* ورودی: توسط Auto Update Latest Release راهاندازی میشود.
* خروجی: دادههای آخرین انتشار پایدار را به Remove Duplicates منتقل میکند.
- گره:
Get Releases
* نوع: HTTP Request
* هدف: لیستی از آخرین انتشارهای n8n، از جمله پیشانتشارها را دریافت میکند.
* پیکربندی:
* URL: https://api.github.com/repos/n8n-io/n8n/releases
* متد: GET
* پارامترهای کوئری: per_page=10 (برای دریافت ۱۰ انتشار آخر)
* ورودی: توسط Auto Update Beta Release راهاندازی میشود.
* خروجی: لیست انتشارها را به گره Filter منتقل میکند.
۳. فیلتر و محدود کردن انتشارها
این گرهها دادههای انتشار را اصلاح کرده و بر روی پیشانتشارها تمرکز میکنند و حجم داده را کنترل میکنند.
- گره:
Filter
* نوع: Filter
* هدف: لیست انتشارها را فیلتر میکند تا فقط موارد علامتگذاری شده به عنوان پیشانتشار (prerelease: true) را شامل شود.
* پیکربندی:
* شرط: {{ $json.prerelease }} === true
* ورودی: دادههای انتشار از Get Releases.
* خروجی: پیشانتشارهای فیلتر شده را به گره Limit منتقل میکند.
* ملاحظات: اگر هیچ پیشانتشاری یافت نشد، شاخه Workflow در اینجا متوقف میشود.
- گره:
Limit
* نوع: Limit
* هدف: تعداد انتشارهای منتقل شده به مرحله بعدی را محدود میکند.
* پیکربندی: در صورت عدم تنظیم صریح، به طور پیشفرض یک انتشار را پردازش میکند.
* ورودی: دادههای پیشانتشار فیلتر شده از Filter.
* خروجی: مجموعه محدود شده انتشارها را به Remove Duplicates منتقل میکند.
۴. حذف موارد تکراری
این گره اطمینان حاصل میکند که هر انتشار منحصر به فرد فقط یک بار پردازش میشود.
- گره:
Remove Duplicates
* نوع: Remove Duplicates
* هدف: با استفاده از حافظه پایدار، از بهروزرسانی مجدد به نسخهای که قبلاً پردازش شده است جلوگیری میکند.
* پیکربندی:
* عملیات: removeItemsSeenInPreviousExecutions
* کلید حذف موارد تکراری: {{ $json.name }} (از نام انتشار برای شناسایی استفاده میکند)
* ورودی: دادههای انتشار منحصر به فرد از Get Release (برای پایدار) یا Limit (برای بتا).
* خروجی: انتشارهای منحصر به فرد و پردازش نشده را به گره Update ENV منتقل میکند.
* ملاحظات: به ذخیرهسازی پایدار متکی است؛ خرابی در اینجا میتواند منجر به بهروزرسانیهای تکراری شود.
۵. بهروزرسانی متغیر محیطی
این گره Coolify را برای استفاده از نسخه جدید n8n پیکربندی میکند.
- گره:
Update ENV
* نوع: HTTP Request
* هدف: متغیر محیطی N8N_VERSION را در تنظیمات برنامه Coolify شما بهروز میکند.
* پیکربندی:
* URL: https://console.buatan.id/api/v1/applications/m8ccg8k44coogsk84swk8kgs/envs
* متد: PATCH
* پارامترهای بدنه:
* key: "N8N_VERSION"
* value: {{ $json.name.split('@').last() }} (برچسب نسخه را از نام انتشار استخراج میکند)
* is_preview: false
* is_build_time: true
* is_literal: false
* احراز هویت: نیاز به اعتبارنامه API Coolify (HTTP Bearer و HTTP Header) دارد.
* ورودی: دادههای انتشار منحصر به فرد از Remove Duplicates.
* خروجی: کنترل را به گره Deploy منتقل میکند.
* ملاحظات: اطمینان حاصل کنید که اعتبارنامه API Coolify شما به درستی پیکربندی و تخصیص داده شده است.
۶. استقرار بهروزرسانی
این گره استقرار واقعی را در Coolify راهاندازی میکند.
- گره:
Deploy
* نوع: HTTP Request
* هدف: راهاندازی مجدد استقرار برنامه n8n شما را در Coolify آغاز میکند.
* پیکربندی:
* URL: https://console.buatan.id/api/v1/deploy?uuid=m8ccg8k44coogsk84swk8kgs&force=false
* متد: GET
* احراز هویت: نیاز به همان اعتبارنامه API Coolify مانند Update ENV دارد.
* ورودی: توسط Update ENV راهاندازی میشود.
* خروجی: ندارد (پایان Workflow).
* ملاحظات: اطمینان حاصل کنید که UUID برنامه صحیح در URL استفاده شده است.
جدول خلاصه
| نام گره | نوع گره | نقش عملکردی | گره(های) ورودی | گره(های) خروجی | یادداشتها |
|---|---|---|---|---|---|
| Auto Update Latest Release | Schedule Trigger | بررسی انتشار پایدار را راهاندازی میکند (ساعتی) | - | Get Release | به طور پیشفرض غیرفعال است |
| Auto Update Beta Release | Schedule Trigger | بررسی انتشار بتا را راهاندازی میکند (مکرر) | - | Get Releases | |
| Get Release | HTTP Request | آخرین انتشار پایدار n8n را دریافت میکند | Auto Update Latest Release | Remove Duplicates | |
| Get Releases | HTTP Request | آخرین ۱۰ انتشار (شامل بتا) را دریافت میکند | Auto Update Beta Release | Filter | |
| Filter | Filter | موارد پیشانتشار را فیلتر میکند | Get Releases | Limit | |
| Limit | Limit | تعداد انتشارهای پردازش شده را محدود میکند | Filter | Remove Duplicates | |
| Remove Duplicates | Remove Duplicates | با استفاده از نام انتشار از بهروزرسانیهای تکراری جلوگیری میکند | Get Release, Limit | Update ENV | |
| Update ENV | HTTP Request | متغیر محیطی N8N_VERSION Coolify را بهروز میکند | Remove Duplicates | Deploy | نیاز به اعتبارنامه API Coolify دارد |
| Deploy | HTTP Request | راهاندازی مجدد استقرار Coolify را آغاز میکند | Update ENV | - | نیاز به اعتبارنامه API Coolify دارد |
بازسازی Workflow
برای ساخت این Workflow از ابتدا در n8n، مراحل زیر را دنبال کنید:
1. افزودن Auto Update Latest Release (Schedule Trigger):
* برای اجرا هر ۱ ساعت پیکربندی کنید.
* در صورت ترجیح، آن را در ابتدا غیرفعال نگه دارید.
2. افزودن Auto Update Beta Release (Schedule Trigger):
* یک فاصله زمانی حداقل تنظیم کنید یا پیکربندی فاصله زمانی را برای راهاندازی مکرر رها کنید.
3. افزودن Get Release (HTTP Request):
* URL: https://api.github.com/repos/n8n-io/n8n/releases/latest
* متد: GET
* Auto Update Latest Release → Get Release را متصل کنید.
4. افزودن Get Releases (HTTP Request):
* URL: https://api.github.com/repos/n8n-io/n8n/releases
* متد: GET
* پارامترهای کوئری: per_page=10
* Auto Update Beta Release → Get Releases را متصل کنید.
5. افزودن Filter (Filter):
* شرط: {{ $json.prerelease }} === true
* Get Releases → Filter را متصل کنید.
6. افزودن Limit (Limit):
* از تنظیمات پیشفرض استفاده کنید یا یک حد را مشخص کنید.
* Filter → Limit را متصل کنید.
7. افزودن Remove Duplicates (Remove Duplicates):
* عملیات: removeItemsSeenInPreviousExecutions
* کلید حذف موارد تکراری: {{ $json.name }}
* Get Release → Remove Duplicates را متصل کنید.
* Limit → Remove Duplicates را متصل کنید.
8. افزودن Update ENV (HTTP Request):
* URL: https://console.buatan.id/api/v1/applications/m8ccg8k44coogsk84swk8kgs/envs
* متد: PATCH
* بدنه (JSON):
```json
{
"key": "N8N_VERSION",
"value": "{{ $json.name.split('@').last() }}",
"is_preview": false,
"is_build_time": true,
"is_literal": false
}
```
* احراز هویت: اعتبارنامه API Coolify خود را پیکربندی کنید (HTTP Bearer و HTTP Header).
* Remove Duplicates → Update ENV را متصل کنید.
9. افزودن Deploy (HTTP Request):
* URL: https://console.buatan.id/api/v1/deploy?uuid=m8ccg8k44coogsk84swk8kgs&force=false
* متد: GET
* احراز هویت: از همان اعتبارنامه API Coolify که در Update ENV استفاده کردید، استفاده کنید.
* Update ENV → Deploy را متصل کنید.
Nodeهای استفادهشده
سوالات متداول
این Workflow چگونه بهروزرسانیهای n8n را خودکار میکند؟▾
این Workflow با استفاده از API گیتهاب، آخرین انتشارهای n8n را بررسی میکند. سپس، بر اساس تنظیمات (پایدار یا بتا)، نسخه جدید را شناسایی کرده و از طریق Coolify، نمونه n8n شما را بهروزرسانی میکند.
آیا این Workflow از نسخههای بتا نیز پشتیبانی میکند؟▾
بله، این Workflow قابلیت بررسی و بهروزرسانی به آخرین نسخه بتا (پیشانتشار) n8n را نیز دارد. برای این منظور، گره `Auto Update Beta Release` طراحی شده است.
چگونه از بهروزرسانیهای تکراری جلوگیری میشود؟▾
این Workflow از گره `Remove Duplicates` برای ردیابی انتشارهای قبلی استفاده میکند و اطمینان حاصل میکند که تنها در صورت وجود نسخه جدید و پردازش نشده، فرآیند بهروزرسانی آغاز شود.
چه پیشنیازهایی برای استفاده از این Workflow لازم است؟▾
شما نیاز به یک نمونه n8n فعال، دسترسی به Coolify برای استقرار و پیکربندی، و اطمینان از فعال بودن گرههای زمانبندی شده در Workflow دارید.
workflowهای مرتبط
- حسابرسی استفاده از اعتبارنامهها در n8n و ارسال به Google Sh…DevOps
- نظارت بر تازگی پشتیبانگیری Google Drive با اسنک و Google Sh…DevOps
- ممیزی خودکار پرچمهای ویژگی اندروید از گیتهاب به اسلکDevOps
- تحلیل خودکار عملکرد ساخت اپلیکیشن موبایل با n8n و هوش مصنوعیDevOps
- تحلیل خودکار حوادث با n8n، OpenAI و SlackDevOps
- تحلیل خودکار خطاهای n8n با Claude و OpenRouterDevOps
