Profile
לנהל בעצמנו את כל המערכות: SelfHosted
Published on

לנהל בעצמנו את כל המערכות: SelfHosted

Authors

אני בדרך כלל מעדיף שהמידע שלי יהיה אצלי, ואני לא אהיה תלוי בשירות כזה או אחר שכדי לעזוב אותו אצטרך לשלם מחיר של איבוד מידע. וגם.. אני לא אוהב לשלם מחיר 😉 בכל פעם שאני צולל לעולם של SelfHosted, אני מתפלא מחדש כמה אלטרנטיבות טובות ויפות יש לשירותים שאנשים רגילים נוהגים לשלם עליהם.

מה זה SelfHosted?

שירות מנוהל עצמאית זה תוכנה, בדרך כלל בקוד פתוח, שמפרסמת הוראות איך להתקין אותה על המחשב שלנו בבית.

זה אולי נשמע פשוט למי שרגיל להתקין תוכנות על המחשב, מה מיוחד פה בעצם? אז זהו, כמו שגם תראו בהמשך, מדובר קודם כל על אתרי אינטרנט ושרתים, למשל אם היה אפשר להתקין את טוויטר בצורה הזאת, הייתם מתחברים אליו ולא רואים אף אחד ברשת, כי התקנתם את השרת של טוויטר, והוא בעצם עותק משלכם של טוויטר

כמו שאמרתי, אני אוהב לנהל את המידע והמערכות שלי אצלי, ואני גם לא אוהב לשלם על משהו ואז לזנוח אותו למשך חודשיים. כשאני מנהל את השירותים שלי בעצמי, אני לא צריך לחשוב על המחיר שאני משלם (אבל כן על הזמן), ומצד שני, אני גם לא יכול לסמוך עליהם ב100%, ולפעמים בגלל טעויות שלי המידע נמחק, ואין לי למי לפנות.

ברגע שקולטים את הרעיון להרצה מקומית, זה לא קשה במיוחד, וזה מאפשר לי ליצור POC- הוכחת היתכנות. אם אני רואה שתהליך מסוים, תוכנה מסוימת או אוטומציה מסוימת אכן נדרשת לי ולא זנחתי אותה אחרי חודש, אני יכול להבין שאולי כדאי לי להשקיע בה ולהעביר אותה למשהו יציב יותר, וכן, אפילו בתשלום.

איך מתקינים

אז כן, צריך קצת ידע טכני. אני אישית מריץ על קונטיינרים, מה שמאפשר לי להוריד ולהעלות את המערכת בקלות, ובעזרת גיבויים לשחזר אותה מחדש במקרה הצורך.

יש מערכות שמנסות לפשט את תהליכי ההתקנה, אני ראיתי שתי מערכות כאלה:

אם מישהו רוצה לנסות אותן ולספר לי איך החוויה, אני אשמח לעזור.

עכשיו יש שאלה קטנה שמתחבאת פה. אם מדובר בתוכנות שהן בעצם שרתים ואתרי אינטרנט, איך אני בדיוק משתמש בהן? מתקין על המחשב האישי שלי וכל פעם מעלה ומוריד אותן ומכביד על המחשב? ומה קורה אם הוא לא דלוק? או אולי על מחשב אחר? וכל פעם לעבור אליו? או להתחבר אליו מרחוק? ומה אם אני מחוץ לבית?

טוב, אני לא אכנס לפרטים הטכניים כי המגוון של הקוראים גדול, אז בקצרה, אמרנו שמדובר באתרי אינטרנט, אז לוקחים מחשב פנוי (זה יכול להיות מיני מחשב), והוא משמש כשרת ומתחברים אליו מרחוק.

רק מה, כדי להתחבר אליו מחוץ לרשת הביתית, צריך לקנות דומיין (אני קניתי ב2$ לשנה את כתובת האתר שאתם נמצאים בה נכון לכתיבת הפוסט), ולהשתמש בCloudflare Tunnel כדי להעביר חיבורים מהדומיין למחשב שיש לנו בבית, עם חסימה לפי כתובת מייל למשל, ככה רק לנו ולמשפחה יש גישה.

אפליקציות

אפשר לראות את כל הגדרות המערכת שלי כאן, אבל כדי להבין מה המסוגלות של המערכת, הנה פירוט. מכיוון שהרבה אפליקציות קשורות ביניהן, או שהן מורכבות מכמה שירותים, אני מחלק אותם לערימות שונות, כדי לאפשר לי שליטה טובה יותר בהעלאה, הורדה והקשרים ביניהם:

תשתית

מסדי נתונים וכלי שליטה ששייכים לניהול המערכת או משותפים בין כל השירותים, ביניהם:

  • מערכת NodeRed לאוטומציות NodeRed
  • מסד נתונים Obsidian LiveSync, שהוא בעצם מסד נתונים couchdb ותיאורטית אפשר להשתמש בו לעוד שירותים.

נטפליקס (מדיה)

המשפחה הכי מעניינת, נקראת לפעמים *arr. קבוצה של שירותים שכל אחד אחראי על משימה קטנה וביחד הם יוצרים מערכת הזרמת מדיה מלאה. (כתבתי על זה בהרחבה כאן)

  • מתחילים עם Sonarr / Radarr, אחראים לעקוב אחרי יציאת סרטים ופרקים של סדרות.
  • כשיש סרט או פרק זמין, אחראים לחפש זמינות שלו בעזרת Jackett.
  • כשהוא זמין, שולחים הוראה להורדה בעזרת Deluge.
  • אחרי שהוא יורד, Bazarr יחפש כתוביות מתאימות.
  • בסוף Jellyfin מציג את הספריה שלנו, במחשב, בדפדפן, באפליקציה לטלפון.
  • יש גם את Jellyseerr שמספק ממשק נוח יותר לכמה משתמשים לבקש זמינות של סרטים וסדרות.
  • וזה ממשיך... יש גם אפליקציה לפלאפון שבמקום Jellyfin מספקת ממשק משולב של Jellyfin + Jellyseerr ככה שיש ממש נטפליקס, חלק ממנו זמין לצפיה וחלק ממנו לוחצים ״בקש לצפות״ ואחרי זמן קצר גם הוא זמין לצפייה.

בית חכם

מערכת בית חכם HomeAssistant שווה פוסט בפני עצמה. מצד שני, מה שיפה במערכת הקוד הפתוח הכל כך מיוחדת הזאת זה שיש לה גם קהילה מאוד טובה, גם בישראל, אז לא קשה למצוא מידע באינטרנט, לחפש קבוצות בפייסבוק ולשמוע על רעיונות איך להפוך את הבית לחכם בקלות.

הנה שני סרטונים שאני עשיתי:

מי שיתסכל בהגדרות המערכת שלי יראה שאני מריץ גם דפדפן בתוך קונטיינר 🤔
הסיבה היא שכדי שיהיה לי מסך שליטה, השגתי בזול Ipad2, רק שהוא כל כך ישן שאי אפשר להתקין עליו אפליקציות מעודכנות, והדפדפנים הישנים לא יכולים להציג את המערכת.
במקום זה, השיטה הנפוצה באינטרנט היא להריץ דפדפן בתור שירות, ואז להתחבר אליו מהטאבלט בצורה של ״חיבור מרוחק״, כלומר הוא לא מציג לי אתר אינטרנט, אלא מציג לי תמונה של מסך שמציג אתר אינטרנט 😨
אבל זה עובד.

ניהול מסמכים

למרות שכל מה שקראתם עד עכשיו אלו דוגמאות מאוד טובות, בנויות מדהים, עם קהילה, קוד פתוח, יכולות מופלאות, דווקא כשאני משתמש בניהול המסמכים יש לי תמיד קפיצה קטנה של התרגשות.

Paperless

מערכת Paperless, היא קודם כל יפה, ונוחה, עם פיצ׳רים קטנים שבדיוק צריך. בסופו של דבר מדובר במערכת לשמירת מסמכים- תלושי משכורת, סיכומי ביקור, קבלות, הפניות, מכתבים, וכל דבר שאתם יכולים לחשוב עליו, לתייק אותו בצורה נוחה לפי הפרמטרים הנכונים, וככה גם למצוא אותו על פי התיוק שלו, או פשוט על פי חיפוש חופשי (כי המערכת גם תפענח את הטקסט במסמך ותאפשר חיפוש על פי התוכן).

אפליקציה ללא קוד

יש כל מיני פריטי מידע שאני נוהג לשמור בצורה מסודרת כדי שיהיה לי קל לנהל, למשל תרומות שתרמתי ואני צריך להגיש עליהם החזר, חישובי משכורות ומעשר כספים, רשימה של חברים מילואימניקים, השאלות ספרים וכו׳.

אמנם יש דברים שאפשר למצוא להם פתרונות אחסון מקומי ייעודיים (למשל ניהול כרטיסי מתנה), אבל לכל מה שלא מצאתי או לא הספקתי, יש מגוון מערכות שמאפשרות לנהל גליון נתונים, ועל גביו, בלי עזרת קוד (כמעט, תלוי במוצר), לבנות ממשק נוח לשימוש, במחשב או בפלאפון.

זה גם כן תחום שלם, ודי אם נזכיר כמה אפליקציות נפוצות כמו Glideapps ו AirTable כדי לתת תחושה על מה מדובר.

יש פה מגוון גדול, אני בעצמי עברתי מNocoDB + Nocobase לBudibase, כשמסד הנתונים שלי הוא לא חלק מהשירות ואני מתחבר אליו ולכן גם יכול לשלוט בו ולנהל אותו משירותים שונים. אבל אני עוד לא סגור על זה, ולמשל עם Budibase לאחרונה היו לי בעיות שגרמו לי לאבד מידע במקרה של חיבור Many-to-Many.

חיבור מרחוק

כמו שכבר הסברתי למעלה, יש צורך להתחבר למערכות גם מחוץ לרשת הביתית. בשביל זה אני מחזיק שני שירותים. אחד מהם הוא Cloudflare שהוזכר כבר, והשני הוא Tailscale, גם כן מאוד נפוץ, לא דורש דומיין ומאוד נוח להתחבר למחשבים אחרים שלנו ללא תלות ברשת הביתית.

גיבויים

כמו שראינו, כשאנחנו מנהלים הכל, על חשבון הזמן הפנוי שלנו ועל סמך הידע האישי שלנו, עלולות לקרות טעויות. בשביל דברים חשובים, כמו למשל מסמכים שנשמרים בPaperless, אני לא יכול לסמוך על המערכת שלא בטעות תישרף יום אחד, ואני צריך לגבות את המסמכים גם במקום שכן, אני מוכן לשלם עליו.

בשביל זה המציאו את rclone. תקראו באינטרנט, אבל בקצרה, מדובר ברכיב שיכול להתחבר לקונטיינרים בתוך מערכת קבצים (volume), ומאחורי הקלעים, מערכת הקבצים הזאת מסונכרנת עם שירות ענן, במקרה שלי Google Drive. בעברית זה אומר שתיקיית המסמכים של Paperless היא בעצם תיקייה בGoogle Drive!

שירותים נוספים

יש עוד אינספור שירותים, לחלק מהם אני נחשף ושומר בצד כדי אולי יום אחד למצוא זמן ולהרים גם אותם.

אפשר גם לחפש פה:

תכתבו לי בתגובות לאיזה שירות הייתם רוצים למצוא אלטרנטיבה לניהול עצמי.