رفتن به محتوا

به‌روزرسانی‌ها

تازه‌وارد

HolyArrs وقتی نسخهٔ جدید منتشر شود به شما خبر می‌دهد، ولی هرگز آن را خودش نصب نمی‌کند. ایمیج جدید را هر وقت صلاح دانستید می‌گیرید.

ببینید نسخهٔ جدید منتشر شده یا نه

پیوند به ببینید نسخهٔ جدید منتشر شده یا نه
  1. صفحهٔ Status (وضعیت) را باز کنید (http://your-server:6262/health).
  2. بخش Updates (به‌روزرسانی‌ها) را بخوانید. باید یکی از این پیام‌ها را ببینید:
پیام معنی
“HolyArrs 1.2.0 is out, newer than this one.” هر وقت آماده بودید به‌روزرسانی کنید
“This is the newest version.” کاری لازم نیست
“No HolyArrs release is published yet.” فید خالی است. مشکلی نیست
“The last check did not work: …” به فید دسترسی پیدا نشد، معمولاً به‌خاطر نبودن اینترنت
“The update check is off: …” در تنظیمات خاموش شده است
  1. برای پرسیدن همین حالا، Check now (هم‌اکنون بررسی کنید) یا Check again (دوباره بررسی کنید) را کلیک کنید. برای این کار دسترسی Change settings (تغییر تنظیمات) لازم است.

نسخهٔ جدیدتر به‌صورت یک هشدار سلامت هم نشان داده می‌شود. بررسی ناموفق فقط زیر Updates دیده می‌شود.

  1. ایمیج جدید را بگیرید و راه‌اندازی مجدد کنید: docker compose pull، سپس docker compose up -d.
  2. HolyArrs شروع به کار می‌کند. اگر نسخهٔ جدید روش ذخیرهٔ داده‌ها را عوض کند، اول بکاپ می‌گیرد و بعد داده‌ها را به‌روزرسانی می‌کند. باید برنامه را روی نسخهٔ جدید باز ببینید.

به نسخهٔ قبلی برگردید

پیوند به به نسخهٔ قبلی برگردید

HolyArrs نمی‌تواند ایمیج خودش را عوض کند. شما ایمیج قدیمی‌تر را اجرا می‌کنید و HolyArrs داده‌های قدیمی را سر جایشان برمی‌گرداند.

  1. تگ ایمیج را در فایل compose خود (یا در docker run) به نسخهٔ قدیمی‌تر تغییر دهید، مثلاً holyarrs/holyarrs:<older version>.
  2. دستور docker compose up -d را اجرا کنید.
  3. اگر به‌روزرسانی داده‌ها را تغییر نداده بود، نسخهٔ قدیمی‌تر شروع می‌شود. کار تمام است.
  4. در غیر این صورت نسخهٔ قدیمی‌تر به‌جای برنامه یک صفحه نشان می‌دهد. Put back the data from before the update (برگرداندن داده‌های پیش از به‌روزرسانی) را کلیک کنید.
  5. کد یک‌بارمصرف را وارد کنید. آن را با docker logs <container> پیدا کنید؛ دنبال “one-time code” بگردید.
  6. HolyArrs بکاپ را بررسی می‌کند، سر جایش می‌گذارد و متوقف می‌شود. باید ببینید کانتینر با سیاست راه‌اندازی مجدد خودش دوباره روی همان داده‌ها شروع می‌شود. اگر چنین سیاستی ندارید، خودتان آن را شروع کنید.

بدون آن صفحه: docker exec <container> /holyarrs restore --pre-update، سپس docker restart <container>. بدون Docker: HolyArrs را متوقف کنید، holyarrs restore --pre-update را اجرا کنید و دوباره شروع کنید.

چیزی پاک نمی‌شود. داده‌های جدیدتر به backups/before-restore-<time>/ منتقل می‌شوند، پس می‌توانید برگشت را لغو کنید. اگر بیش از یک نسخه به عقب بروید، جدیدترین بکاپ پیش از به‌روزرسانی انتخاب می‌شود که آن نسخه بتواند بخواند.

همه در Settings > Health checks (تنظیمات > بررسی‌های سلامت) هستند. سه مورد آخر زیر بخش پیشرفتهٔ کارت قرار دارند.

تنظیم پیش‌فرض کی آن را تغییر دهید
Check for a newer HolyArrs روشن نمی‌خواهید هیچ درخواست بیرونی فرستاده شود
Check for updates every روزانه بررسی کمتری می‌خواهید: 3، 7، 14 یا 30 روز
Release feed خالی (نسخه‌های HolyArrs) فید خودتان را میزبانی می‌کنید
Feed may be on the local network خاموش فید شما روی شبکهٔ خودتان است
Include test versions (like 1.2.0-rc1) خاموش برای نسخه‌های آزمایشی هم اعلان می‌خواهید

نشانه: “The last check did not work.” علت: سرور اینترنت ندارد، یا فید خودتان روی شبکهٔ محلی است. راه‌حل: دسترسی اینترنت را بررسی کنید، یا Feed may be on the local network را روشن کنید.

نشانه: فید ریلیز ذخیره نمی‌شود. علت: نشانی شامل نام، گذرواژه، ?query یا #fragment است، یا با http:// یا https:// شروع نمی‌شود. راه‌حل: آن بخش‌ها را حذف کنید.

نشانه: به‌روزرسانی به‌خاطر کمبود فضای دیسک متوقف شد. علت: برای کپی و به‌روزرسانی جا نیست. راه‌حل: در محلی که پوشهٔ پیکربندی قرار دارد فضا خالی کنید و دوباره شروع کنید.

نشانه: صفحهٔ بازگشت کد شما را رد می‌کند. علت: کد قدیمی است، یا از آخرین شروع 10 کد اشتباه وارد شده است. راه‌حل: کد را از جدیدترین خط لاگ کپی کنید. بعد از 10 تلاش اشتباه، کانتینر را راه‌اندازی مجدد کنید و از کد جدید استفاده کنید.

قابلیت‌های نگه‌داشته‌شده

پیوند به قابلیت‌های نگه‌داشته‌شده

بعضی قابلیت‌ها در این نسخه به‌طور پیش‌فرض خاموش‌اند. روشن کردنشان با مسئولیت خودتان است. تا وقتی نگه داشته شده‌اند، صفحه‌ها و موارد منوی آن‌ها پنهان است، مسیرهای API آن‌ها «پیدا نشد» جواب می‌دهند و کارهایشان اجرا نمی‌شود. داده‌هایی که برایشان ذخیره کرده‌اید می‌مانند.

برای روشن کردن یکی، کلید آن را در HOLYARRS_FLAGS اضافه کنید، با کاما جدا کنید و کانتینر را راه‌اندازی مجدد کنید:

environment:
HOLYARRS_FLAGS: "subtitle_sites,alert_channels_more"

برای خاموش کردن، نام را بردارید و راه‌اندازی مجدد کنید. تنظیمات پنهان با روشن کردن دوباره برمی‌گردند.

کلید قابلیت
row_title_stats آمار عنوان‌ها در ردیف‌های کشف، در Appearance
trakt_lists کلید Trakt، فهرست‌های Trakt و نقدهای Trakt. فهرست‌های TMDB روشن می‌مانند
alert_channels_more اعلان‌های Telegram، ntfy، Gotify، Pushover و webhook. Discord و ایمیل روشن می‌مانند
subtitle_sites سایت‌های زیرنویس و جست‌وجوی زیرنویس. زبان زیرنویس شما روشن می‌ماند
emby_signin ورود با Emby. به‌روزرسانی کتابخانهٔ Emby همچنان کار می‌کند
go_back پنل Go back (بازگشت) در صفحهٔ وضعیت. مراحل بازگشت بدون آن هم کار می‌کنند

بعد از اضافه کردن کلید چیزی تغییر نکرد؟ املا را بررسی کنید (حروف کوچک، زیرخط) و کانتینر را راه‌اندازی مجدد کنید، نه فقط صفحه را.

بررسی چه چیزی می‌فرستد

یک درخواست به api.github.com برای جدیدترین نسخه، فقط با User-Agent: HolyArrs/<version>. بدون حساب، کلید یا فهرست رسانه. وقتی بررسی خاموش باشد، هیچ درخواستی فرستاده نمی‌شود.

آخرین پاسخ ذخیره می‌شود، پس راه‌اندازی مجدد پیش از موعد بررسی نمی‌کند. هر بررسی حداکثر 15 s منتظر می‌ماند، حداکثر 512 KB می‌خواند و حداکثر 3 تغییر مسیر را دنبال می‌کند، بدون اینکه بین http و https جابه‌جا شود. پیوند یادداشت‌های نسخه فقط وقتی نشان داده می‌شود که به صفحه‌های نسخهٔ HolyArrs در GitHub اشاره کند؛ در غیر این صورت نسخه به‌صورت متن ساده نشان داده می‌شود.

Release feed پاسخ نسخه به سبک GitHub، فهرستی از نسخه‌ها، هر JSON دارای version یا متن ساده‌ای که نسخه را داشته باشد می‌پذیرد. نشانی‌های فرادادهٔ ابری همیشه رد می‌شوند. نسخهٔ آزمایشی قدیمی‌تر از نسخهٔ معمولی حساب می‌شود.

بکاپ پیش از به‌روزرسانی

پیش از تغییر داده‌های ذخیره‌شده، HolyArrs:

  1. بررسی می‌کند برای یک کپی و به‌روزرسانی جا هست یا نه. اگر نباشد، هیچ چیز تغییر نمی‌کند. با HOLYARRS_SKIP_SPACE_CHECK=yes می‌توانید از آن بگذرید.
  2. هر پایگاه داده را در backups کپی می‌کند، کپی را بررسی می‌کند و کنار آن یک فایل sha256 می‌نویسد. بعد از 3 کپی ناموفق، هیچ چیز تغییر نمی‌کند.
  3. هر مرحلهٔ به‌روزرسانی را جداگانه اجرا و بررسی می‌کند. مرحلهٔ ناموفق برگردانده می‌شود؛ مراحل تمام‌شده می‌مانند. همان نسخه را دوباره شروع کنید تا با همان کپی از مرحلهٔ ناموفق ادامه دهد.

بعد از اولین شروع موفق، کپی به holyarrs-backup-pre-update-<time>.zip تبدیل می‌شود، با توضیحی مثل “before updating from 1.1.0 to 1.2.0”. در Settings > Backups و در holyarrs restore --list دیده می‌شود. 3 تای جدیدتر نگه داشته می‌شوند؛ زمان‌بندی بکاپ هرگز آن‌ها را پاک نمی‌کند. نصب تازه یا به‌روزرسانی‌ای که داده‌ها را تغییر نمی‌دهد، چیزی نمی‌سازد.

ایمیج را تأیید کنید

از 1.0.3 به بعد، هر ایمیج در Docker Hub توسط اجرای انتشار روی GitHub امضا می‌شود. کلیدی برای دانلود وجود ندارد. ایمیج را با cosign بررسی کنید. نسخه‌ای را که اجرا می‌کنید، مثل 1.0.3، جای <version> بگذارید:

Terminal window
cosign verify holyarrs/holyarrs:<version> \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp '^https://github.com/HolyArrs/HolyArrs/\.github/workflows/sign\.yml@refs/(tags/[0-9.]+|heads/main)$'

باید The cosign claims were validated را ببینید. هر چیز دیگری یعنی ایمیج از اجرای انتشار HolyArrs نیامده است: آن را اجرا نکنید.

ایمیج همچنین سابقهٔ نحوهٔ ساخت و فهرستی از محتویاتش (SBOM) را دارد. آن‌ها را با GitHub CLI بررسی کنید:

Terminal window
gh attestation verify oci://docker.io/holyarrs/holyarrs:<version> --repo HolyArrs/HolyArrs

همین فایل‌ها روی هر نسخهٔ GitHub هستند: .sigstore.json (امضا)، .intoto.jsonl (سابقهٔ ساخت) و .sbom.spdx.json (محتویات).

HolyArrs رایگان است. اگر در وقتتان صرفه‌جویی کرد، در GitHub به آن ستاره بدهید، حمایت مالی کنید یا برای من یک قهوه بخرید.