15 בנובמבר 2020
Edit on GitHub

PhotoPrism: אלטרנטיבת קוד פתוח לגוגל תמונות

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

Blog picture

כמו כולם, גם אני קיבלתי את המייל של גוגל על כך שהמסיבה של העלאת תמונות וסרטונים ללא הגבלה הולכת להסתיים (https://photos.google.com/storagepolicy), והאמת, חוץ מזה שזה כמובן לגמרי זכותם, זה הרגיש לי כמו מלכודת דבש די צפויה שכמו כולם גם אני נפלתי בה, אבל חשבתי שזו הזדמנות טובה להפסיק לתת את כל התמונות והסרטונים האישיים ביותר שלי לשליטת חברה מסחרית ולהתחיל לנהל ולאחסן את התמונות שלי, בעצמי בבעלותי ובשליטתי המלאה.

אז מה מחפשים

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

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

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

מה כלול

  • תצוגה נוחה וחלקה עם תמיכה בגדלי מסך שונים 👌
  • יצירת אלבומים 👌
  • חיפוש עם סינונים לפי זמן צבע מיקום קטגוריות וכדו' 👌
  • תיוג אוטומטי ו\או ידני 👌
  • סינון אוטומטי של צילומי מסך ממים וכדו' 👌
  • עריכת פרטי המידע על התמונה 👌
  • תמיכה מלאה בסרטונים 👌
  • ממשק העלאה נוח 👌
  • תמיכה בעשרות אלפי קבצים 👌
  • הצגת תמונות על מפה לפי מיקום 👌
  • העתקת תמונות ידנית לכונן לאינדוקס 👌
  • נוח לגיבוי 👌
  • תמיכה בעברית כולל יישור לימין 👌
  • סנכרון אוטומטי מהטלפון 🚧
  • סנכרון עם שירותי ענן 🚧
  • זיהוי פרצופים 🚧
  • עריכת תמונות ❌

איך מתקינים

אם אתם.ן מפתחי תכנה או א.נשים טכניים זה אמור להיות קלי קלות להרצה על Windows \ Linux, פשוט להתקין Docker ו-Docker Compose ולעקוב אחרי ההוראות בדוקומנטציה של PhotoPrism.

אגב על מכונות שאינם x86 כמו Raspberry PI אין תמיכה out of the box בהתקנה של docker compose, ממליץ להשתמש בפרוייקט הזה linuxserver/docker-compose.

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

אז מה צריכים

מחשב עם Windows 10 מעודכן (המדריך נעשה על Windows 10 Pro מעודכן נכון ל 15.11.2020) אפשר וגם רצוי להקדיש לזה מחשב ישן ועזוב, רק כדאי לוודא שהוא עומד בהמלצת המינימום של 4 ג'יגה ראם, ו-2 ליבות.

וכמובן כונן קשיח לאחסון כל התמונות והסרטונים, ממליץ בחום להשתמש דווקא ב-HDD (מה שנקרא דיסק קשיח מכני) ולא ב-SSD (מה זה HDD ו-SSD ויקיפדיה) גם בגלל המחיר וגם בגלל האמינות לאורך זמן, וכמובן גם כונן נוסף בתור גיבוי, תזכרו, אתם המנהלים והבעלים של המידע, חשוב ביותר לגבות, כי אף אחד לא יעשה את זה בשבילכם, מומלץ גם בנוסף כונן חיצוני לגיבוי Offline שעוזר במקרה של כופרה וירוסים שונים ומשונים בעיות חשמל וכו'.

התקנה

ראשית יש להתקין כלי שנקרא Docker, נלך ל docker-ce-desktop-windows

ונוריד את Docker

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

אחרי שההתקנה הסתיימה נתבקש לעשות אתחול למחשב.

אחרי האתחול, נראה שנוסף האייקון חדש של Docker במגירת היישומים.

אם לא מותקן אצלכם (וכנראה שלא..) WSL 2

(מה זה WSL? כמה מילים על WSL 2 )

האייקון של הלווייתן אמור להיות בצבע אדום, ואתם אמורים לקבל הודעה כזו:

כדי להתקין את ה-WSL 2: נחפש בתיבת החיפוש של חלונות PowerShell ונפעיל אותה כמנהל (חשוב!)

בחלון שנפתח נעתיק את השורה הבאה:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

ונקיש ENTER.

נעתיק את השורה הבאה:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

ושוב נקיש ENTER.

נוריד את התוכנה הבאה: wsl_update_x64.msi

(ההוראות מתוך הבלוג של מיקרוסופט wsl/install-win10)

אחרי שסיימנו את ההתקנה של WSL 2

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

שוב נקבל את ההודעה שראינו, אבל הפעם נבחר restart.

נמתין מספר שניות עד שנקבל הודעה docker desktop is running

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

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

בחלון שנפתח בטבלה התחתונה נבחר ב Path ונלחץ על ערוך.

בחלון שנפתח נבחר חדש ולשורה החדשה נעתיק C:\Program Files\Docker\Docker ונבחר אישור

זהו סיימנו עם ההתקנות של הכלים השונים.

עכשיו להתקנה של PhotoPrism.

ניצור תיקיה חדשה בכונן C נקרא לה PhotoPrism

נוריד את הקובץ docker-compose.yml מכאן

ונעתיק אותו ל C:/PhotoPrism.

(חשוב לוודא שההורדה לא הוסיפה לו סיומת TXT ואם כן למחוק אותה ולוודא שהשם של הקובץ הוא docker-compose.yml ראה שינוי סיומת קובץ)

עכשיו נלך לשורת הכתובת בסייר הקבצים (תוך כדי שאנחנו בתיקייה C:/PhotoPrism !) נדרוס את הכתובת ונכתוב שם cmd ונקיש ENTER.

בחלון שורת הפקודה שנפתח נכתוב docker-compose up -d ונקיש ENTER.

נמתין לתהליך ההורדה שלוקח כמה שניות,

אם קופץ חלון של ה Firewall (חומת האש) של חלונות, צריך לאפשר לתוכנה גישה לרשת.

נמתין עד שנקבל הודעה בחלון שורת הפקודה שההפעלה הסתיימה.

נפתח בדפדפן את הדף http://localhost:2342/ ובסיסמה נכניס insecure.

זהו סיימנו!

בכדי לשנות את ההגדרות של המערכת כמו למשל מיקום הקבצים והאינדקסים צריך דבר ראשון להוריד את המערכת, על ידי כניסה לחלון שורת הפקודה בדיוק כמו מקודם, ואז להעתיק את השורה הבאה docker-compose stop photoprism ו-ENTER.

(אגב בשלב זה אפשר גם לעדכן את התוכנה, אם קיים עדכון, על ידי העתקת הפקודה docker-compose pull photoprism ו.. ENTER)

עכשיו נבצע את השינויים שנרצה, אחרי שסיימנו את העריכה ושמרנו את השינויים, נחזור לשורת הפקודה נעתיק את הפקודה docker-compose up -d --no-deps photoprism ו… ENTER.

מה אפשר לערוך

כמה דברים ממש חשובים.

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

אז איך משנים? נפתח את הקובץ docker-compose.yml בעזרת כל עורך טקסט פשוט כמו notepad או notepad++ ונשנה את הנתיב של הקבצים תחת הסקשן volumes.

מפה נוכל גם לשנות את הסיסמה הדיפולטית למשהו אישי וסודי יותר 🤫

עדכון חשוב

אם המחשב לא מיועד להיות רק שרת התמונות כדאי להגביל את המשאבים של WSL2 כך שניתן יהיה להשתמש במחשב והוא לא "ייחנק"

איך עושים את זה? יוצרים קובץ בשם

.wslconfig

בתיקיית המשתמש

C:\users\{username}

המחשב שלי -> משתמשים -> שם המשתמש

ובתוכו נעתיק את הטקסט הבא

[wsl2]
memory=4GB # Limits VM memory in WSL 2 to 4 GB
processors=2 # Makes the WSL 2 VM use two virtual processors

כמובן יש להזין את הגבלת המשאבים שמתאים לכם בדוגמה פה זה מגבלת 4 גיגה זיכרון ו-2 ליבות מעבד.

אחרי השמירה נדרש אתחול למחשב

גיבוי וסנכרון

חשוב לדעת שניתן להוסיף תמונות וסרטונים לא רק דרך הממשק בדפדפן אלא גם ע"י העתקת התמונות לתת תיקייה בנתיב שבו אנחנו שומרים את התמונות, (כברירת מחדל זה ב-C:/users/username/Pictures או בכל מקום שהגדרנו אליו, למשל D:/Pictures ואז אחרי שמעלים בחזרה את המערכת ניתן בממשק לגשת לטאב של Library ולבקש לאנדקס את כל הקבצים שהוספתם.

מה שמאפשר להוריד את כל התמונות מגוגל ,תמונות (Download photos or videos to your device) לחלץ את כל הקבצים, ולהעתיק לתת תיקיה לדוגמה D:/Pictures/google_photos_lib ואחרי שמעלים שוב את המערכת ניתן לגשת לעמודה של הספריה ולבקש לאנדקס את כל מה שקיים בתיקיה שהוספנו.

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

כשאתם מגבים חשוב מאוד להעתיק גם את התיקייה של הקבצים (במקרה שלי D:/Picture ) וגם את התיקיה של האינדקסים וההגדרות (במקרה שלי D:/.photoprism).

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

נשמע מורכב? אז ממש לא.

כל מה שצריך זה ליצור קובץ טקסט פשוט ולתת לו סיומת bat לדוגמה

my_copy_script.bat

ובתוכו נכניס את הטקסט הבא:


:: this is to mirror the dest to be like src (remove files in dest if needed)
Robocopy D:\Pictures F:\Pictures /MIR /FFT /Z /XA:H /W:5
Robocopy D:\.photoprism F:\.photoprism /MIR /FFT /Z /XA:H /W:5
pause

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

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



אז בהצלחה בלקחת את המידע שלכם אליכם בחזרה!

אשמח כמובן להערות והארות אם משהו לא ברור או מספיק מובן במדריך 😃.


PhotoPrism על רספברי-פיי חלק ב'





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

זה לא מדי מסובך How to set static ip windows 10 וכך תוכלו לגשת לתמונות מכל מחשב או טלפון ברשת הביתית פשוט ע"י הזנת הכתובת של המחשב עם הפורט http://{ip-address}:2342.

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

ואם כבר הלכתם על כתובת סטטית כדאי להתקין Pi Hole (תודות לרן בר זיק על המאמר הנפלא התקנה ושימוש ב-PI HOLE כשרת DNS) ולהוסיף רשומת DNS מקומית למחשב.




Photo by Nicole De Khors from Burst