ข้ามไปยังเนื้อหา

การอัปเดต

มือใหม่

HolyArrs จะบอกเมื่อมีเวอร์ชันใหม่ แต่ไม่ติดตั้งให้เอง คุณดึง image ใหม่เมื่อสะดวก

ดูว่ามีเวอร์ชันใหม่หรือยัง

ลิงก์ไปยัง ดูว่ามีเวอร์ชันใหม่หรือยัง
  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. ดึง image ใหม่แล้วรีสตาร์ต: docker compose pull แล้วตามด้วย docker compose up -d
  2. HolyArrs เริ่มทำงาน ถ้าเวอร์ชันใหม่เปลี่ยนวิธีเก็บข้อมูล จะสำรองข้อมูลก่อน แล้วค่อยอัปเดตข้อมูล แอปจะเปิดขึ้นมาเป็นเวอร์ชันใหม่

ย้อนกลับไปเวอร์ชันก่อนหน้า

ลิงก์ไปยัง ย้อนกลับไปเวอร์ชันก่อนหน้า

HolyArrs เปลี่ยน image ของตัวเองไม่ได้ คุณจึงรัน image รุ่นเก่า แล้ว HolyArrs จะนำข้อมูลรุ่นเก่ากลับมาวาง

  1. เปลี่ยน image tag ในไฟล์ 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 ตรวจสอบ Backup วางข้อมูลลงที่เดิม แล้วหยุดทำงาน container จะเริ่มใหม่บนข้อมูลนั้นผ่านนโยบายรีสตาร์ต ถ้าไม่ได้ตั้งไว้ ให้สั่งเริ่มเอง

ถ้าไม่ใช้หน้านั้น: docker exec <container> /holyarrs restore --pre-update แล้วตามด้วย docker restart <container> ถ้าไม่ใช้ Docker: หยุด HolyArrs รัน holyarrs restore --pre-update แล้วเริ่มใหม่

จะไม่มีอะไรถูกลบ ข้อมูลที่ใหม่กว่าจะย้ายไปที่ backups/before-restore-<time>/ คุณจึงยกเลิกได้ ถ้าย้อนกลับมากกว่าหนึ่งเวอร์ชัน จะเลือก Backup ก่อนอัปเดตล่าสุดที่เวอร์ชันนั้นอ่านได้

ทั้งหมดอยู่ที่ Settings > Health checks (การตั้งค่า > การตรวจสุขภาพ) สามข้อหลังอยู่ในส่วนขั้นสูงของการ์ด

ค่าที่ตั้ง ค่าเริ่มต้น เปลี่ยนเมื่อ
Check for a newer HolyArrs (ตรวจหา 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

อาการ: บันทึก release feed ไม่ได้ สาเหตุ: ที่อยู่มีชื่อผู้ใช้ รหัสผ่าน ?query หรือ #fragment หรือไม่ได้ขึ้นต้นด้วย http:// หรือ https:// วิธีแก้: เอาส่วนเหล่านั้นออก

อาการ: การอัปเดตหยุดเพราะพื้นที่ดิสก์ไม่พอ สาเหตุ: ไม่มีที่พอสำหรับสำเนาและการอัปเดต วิธีแก้: เพิ่มพื้นที่ว่างตรงที่โฟลเดอร์คอนฟิกอยู่ แล้วเริ่มใหม่

อาการ: หน้าย้อนกลับไม่ยอมรับรหัสของคุณ สาเหตุ: รหัสเก่า หรือใส่รหัสผิด 10 ครั้งนับจากการเริ่มครั้งล่าสุด วิธีแก้: คัดลอกรหัสจากบรรทัด Log ล่าสุด ถ้าใส่ผิดครบ 10 ครั้ง ให้รีสตาร์ต container แล้วใช้รหัสใหม่

ฟีเจอร์ที่ยังไม่เปิดให้ใช้

ลิงก์ไปยัง ฟีเจอร์ที่ยังไม่เปิดให้ใช้

บางฟีเจอร์ปิดไว้โดยค่าเริ่มต้นในเวอร์ชันนี้ เปิดได้โดยรับความเสี่ยงเอง ขณะที่ยังไม่เปิดให้ใช้ หน้าและเมนูของฟีเจอร์จะถูกซ่อน API route ตอบว่า “not found” และงานของฟีเจอร์ไม่รัน ข้อมูลที่คุณบันทึกไว้ให้ฟีเจอร์เหล่านั้นยังอยู่

หากต้องการเปิดฟีเจอร์ ให้เพิ่มสวิตช์ของฟีเจอร์ใน HOLYARRS_FLAGS คั่นด้วยจุลภาค แล้วรีสตาร์ต container:

environment:
HOLYARRS_FLAGS: "subtitle_sites,alert_channels_more"

เอาชื่อออกแล้วรีสตาร์ตเพื่อปิด การตั้งค่าที่ซ่อนอยู่จะกลับมาเมื่อเปิดอีกครั้ง

สวิตช์ ฟีเจอร์
row_title_stats สถิติรายการในแถวของ Explore ใน 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 (ย้อนกลับ) ในหน้า Status ขั้นตอนใน ย้อนกลับ ใช้ได้โดยไม่ต้องมีแผงนี้

เพิ่มสวิตช์แล้วไม่มีอะไรเปลี่ยน? ตรวจการสะกด (ตัวพิมพ์เล็ก ขีดล่าง) และรีสตาร์ต container ไม่ใช่แค่โหลดหน้าใหม่

การตรวจส่งอะไรออกไป

ส่งคำขอเดียวไปที่ api.github.com เพื่อขอรีลีสล่าสุด โดยมีเพียง User-Agent: HolyArrs/<version> ไม่มีบัญชี คีย์ หรือรายการสื่อ ถ้าปิดการตรวจ จะไม่มีคำขอเลย

คำตอบล่าสุดถูกบันทึกไว้ รีสตาร์ตจึงไม่ตรวจก่อนถึงเวลา การตรวจหนึ่งครั้งรอสูงสุด 15 วินาที อ่านสูงสุด 512 KB และตามการเปลี่ยนเส้นทางสูงสุด 3 ครั้ง โดยไม่สลับระหว่าง http กับ https ลิงก์บันทึกรีลีสจะแสดงเมื่อชี้ไปยังหน้ารีลีสของ HolyArrs บน GitHub เท่านั้น ไม่เช่นนั้นเวอร์ชันจะแสดงเป็นข้อความธรรมดา

Release feed รับคำตอบรีลีสแบบ GitHub, รายการรีลีส, JSON ใด ๆ ที่มี version หรือข้อความธรรมดาที่มีเวอร์ชัน ที่อยู่ metadata ของคลาวด์ถูกปฏิเสธเสมอ เวอร์ชันทดสอบนับว่าเก่ากว่าเวอร์ชันปกติ

Backup ก่อนอัปเดต

ก่อนเปลี่ยนข้อมูลที่เก็บไว้ 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 อันล่าสุด ตารางเวลา Backup ไม่เคยลบอันเหล่านี้ การติดตั้งใหม่ หรือการอัปเดตที่ไม่แตะข้อมูล จะไม่สร้างสำเนา

ตรวจสอบ image

ตั้งแต่ 1.0.3 เป็นต้นไป ทุก image บน Docker Hub ถูกเซ็นโดยการรันรีลีสบน GitHub ไม่มีคีย์ให้ดาวน์โหลด ตรวจ image ด้วย 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 ถ้าเป็นอย่างอื่น แปลว่า image ไม่ได้มาจากการรันรีลีสของ HolyArrs: อย่ารัน

image ยังมีบันทึกวิธีสร้างและรายการสิ่งที่อยู่ข้างใน (SBOM) ตรวจได้ด้วย GitHub CLI:

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

ไฟล์ชุดเดียวกันอยู่ในแต่ละ GitHub release: .sigstore.json (ลายเซ็น), .intoto.jsonl (บันทึกการสร้าง) และ .sbom.spdx.json (เนื้อหา)

HolyArrs ใช้ได้ฟรี ถ้าช่วยประหยัดเวลาคุณได้ กดดาวบน GitHub, สนับสนุนโปรเจกต์ หรือ เลี้ยงกาแฟผู้พัฒนา