خودکارسازی به‌روزرسانی n8n با Coolify و API گیت‌هاب

خودکارسازی به‌روزرسانی n8n با Coolify و API گیت‌هاب

8 دقیقه مطالعه · منتشر شده ۱۴۰۵/۵/۶

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 4360 · منبع: کاتالوگ Axeto

اتوماسیون به‌روزرسانی‌های 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 ReleaseSchedule Triggerبررسی انتشار پایدار را راه‌اندازی می‌کند (ساعتی)-Get Releaseبه طور پیش‌فرض غیرفعال است
Auto Update Beta ReleaseSchedule Triggerبررسی انتشار بتا را راه‌اندازی می‌کند (مکرر)-Get Releases
Get ReleaseHTTP Requestآخرین انتشار پایدار n8n را دریافت می‌کندAuto Update Latest ReleaseRemove Duplicates
Get ReleasesHTTP Requestآخرین ۱۰ انتشار (شامل بتا) را دریافت می‌کندAuto Update Beta ReleaseFilter
FilterFilterموارد پیش‌انتشار را فیلتر می‌کندGet ReleasesLimit
LimitLimitتعداد انتشارهای پردازش شده را محدود می‌کندFilterRemove Duplicates
Remove DuplicatesRemove Duplicatesبا استفاده از نام انتشار از به‌روزرسانی‌های تکراری جلوگیری می‌کندGet Release, LimitUpdate ENV
Update ENVHTTP Requestمتغیر محیطی N8N_VERSION Coolify را به‌روز می‌کندRemove DuplicatesDeployنیاز به اعتبارنامه API Coolify دارد
DeployHTTP 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 ReleaseGet Release را متصل کنید.

4. افزودن Get Releases (HTTP Request):

* URL: https://api.github.com/repos/n8n-io/n8n/releases

* متد: GET

* پارامترهای کوئری: per_page=10

* Auto Update Beta ReleaseGet Releases را متصل کنید.

5. افزودن Filter (Filter):

* شرط: {{ $json.prerelease }} === true

* Get ReleasesFilter را متصل کنید.

6. افزودن Limit (Limit):

* از تنظیمات پیش‌فرض استفاده کنید یا یک حد را مشخص کنید.

* FilterLimit را متصل کنید.

7. افزودن Remove Duplicates (Remove Duplicates):

* عملیات: removeItemsSeenInPreviousExecutions

* کلید حذف موارد تکراری: {{ $json.name }}

* Get ReleaseRemove Duplicates را متصل کنید.

* LimitRemove 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 DuplicatesUpdate ENV را متصل کنید.

9. افزودن Deploy (HTTP Request):

* URL: https://console.buatan.id/api/v1/deploy?uuid=m8ccg8k44coogsk84swk8kgs&force=false

* متد: GET

* احراز هویت: از همان اعتبارنامه API Coolify که در Update ENV استفاده کردید، استفاده کنید.

* Update ENVDeploy را متصل کنید.

Nodeهای استفاده‌شده

سوالات متداول

این Workflow چگونه به‌روزرسانی‌های n8n را خودکار می‌کند؟

این Workflow با استفاده از API گیت‌هاب، آخرین انتشار‌های n8n را بررسی می‌کند. سپس، بر اساس تنظیمات (پایدار یا بتا)، نسخه جدید را شناسایی کرده و از طریق Coolify، نمونه n8n شما را به‌روزرسانی می‌کند.

آیا این Workflow از نسخه‌های بتا نیز پشتیبانی می‌کند؟

بله، این Workflow قابلیت بررسی و به‌روزرسانی به آخرین نسخه بتا (پیش‌انتشار) n8n را نیز دارد. برای این منظور، گره `Auto Update Beta Release` طراحی شده است.

چگونه از به‌روزرسانی‌های تکراری جلوگیری می‌شود؟

این Workflow از گره `Remove Duplicates` برای ردیابی انتشار‌های قبلی استفاده می‌کند و اطمینان حاصل می‌کند که تنها در صورت وجود نسخه جدید و پردازش نشده، فرآیند به‌روزرسانی آغاز شود.

چه پیش‌نیازهایی برای استفاده از این Workflow لازم است؟

شما نیاز به یک نمونه n8n فعال، دسترسی به Coolify برای استقرار و پیکربندی، و اطمینان از فعال بودن گره‌های زمان‌بندی شده در Workflow دارید.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.