חלופות ל־Dropbox באירוח עצמי: השוואה מעשית
השוואה בין Nextcloud, Seafile, Syncthing ואחסון אובייקטים: טופולוגיית הסנכרון, העלות האמיתית על VPS קטן, ומדוע סנכרון אינו גיבוי.
איזו חלופה ל־Dropbox באירוח עצמי כדאי להפעיל?
ארבע חלופות ל־Dropbox באירוח עצמי ראויות לשקול: Nextcloud, Seafile, Syncthing ואחסון אובייקטים עם לקוח מעליו. הן אינן חלופות זהות. Nextcloud מתאים לבית או לצוות קטן, כאשר אנשים אחרים צריכים לקבל קבצים. Seafile מתאים לאדם או לצוות שמסנכרנים מספר גדול מאוד של קבצים קטנים, כאשר מהירות הסנכרון חשובה יותר מאופן הצגת הנתונים בדיסק. Syncthing מתאים לאדם שמסנכרן את המכשירים שלו, כאשר אף גורם חיצוני אינו זקוק לקישור. אחסון אובייקטים מתאים לארכיון: נפח אחסון זול שאליו ניגשים לעיתים רחוקות.
תחילה בחרו לפי אופן פעולת הסנכרון, ורק לאחר מכן השוו תכונות. רשימות התכונות נראות כמעט זהות. הטופולוגיה, כלומר איזה מחשב מחזיק בעותק שכל שאר המחשבים מסכימים איתו, היא שקובעת אם גם בעוד שישה חודשים תהיו מרוצים מהבחירה.
טופולוגיית סנכרון: שרת מקור, או עמיתים ללא שרת
קיימים שני תכנונים אפשריים, ורוב ההמשך תלוי בבחירה ביניהם.
שרת מקור. כך פועלים Nextcloud, Seafile ואחסון אובייקטים. מחשב אחד, בדרך כלל VPS (שרת פרטי וירטואלי), מחזיק את העותק הקובע. כל מכשיר מתקשר עם המחשב הזה. המחשב הנייד יכול להיות כבוי במשך חודש, ולאחר מכן להשלים את הסנכרון באופן עצמאי. טלפון עם 6 GB פנויים יכול להחזיק תת־קבוצה של הקבצים, בעוד שהשרת מחזיק את כולם. דפדפן יכול לגשת לקבצים, ולכן בכלל אפשר ליצור קישורי שיתוף.
עמיתים ללא שרת. כך פועל Syncthing. המכשירים מאתרים זה את זה ומחליפים רשימות קבצים ישירות, דרך חיבור מוצפן. אין עותק קובע: קובץ קיים רק במכשירים שמחזיקים בו, ולא בשום מקום אחר. שני מכשירים חייבים להיות מחוברים באותו זמן כדי ששינוי יעבור ביניהם. אין URL שאפשר למסור לאדם אחר, משום שאף מחשב אינו מגיש דף.
יש לכך ארבע השלכות, ובדרך כלל נתקלים בהן רק בשלב מאוחר יותר.
- שליחת קובץ לאדם שלא יתקין תוכנה מחייבת שרת מקור. קישור הוא URL, ו־URL מחייב תהליך שמאזין בפורט.
- גישה לקבצים ממחשב שאינו בשליטתכם, למשל מחשב נייד בעבודה, מחייבת שרת מקור.
- מכשיר שהיה כבוי במשך כמה שבועות משלים את הסנכרון משרת בכל פעם שהוא מופעל. בתצורת עמיתים, הוא משלים את הסנכרון רק כאשר גם מכשיר אחר שמחזיק בנתונים האלה מחובר. לכן משתמשי Syncthing רבים מפעילים מופע אחד על VPS כעמית שזמין תמיד.
- נפח האחסון מצטבר באופן שונה. שרת מקור מחזיק עותק מלא אחד, בתוספת הנתונים שכל מכשיר שומר באופן מקומי. ארבעה עמיתים שמשתפים תיקייה מחזיקים ארבעה עותקים מלאים, משום שכל עמית שומר את התיקייה כולה.
Nextcloud: משתמשים, קבוצות וקישורים ציבוריים
Nextcloud הוא יישום Web הכתוב ב־PHP. הוא שומר את הקבצים שלך כקבצים רגילים בתיקיית נתונים, ועוקב אחריהם במסד נתונים. אפשר לשתף תיקייה עם משתמש, עם קבוצה או באמצעות קישור ציבורי שמוגנים בסיסמה וכוללים תאריך תפוגה. היסטוריית גרסאות מופעלת כברירת מחדל, וקבצים שנמחקו מועברים תחילה לסל האשפה. לקוחות Desktop זמינים עבור Linux, macOS ו־Windows, והיישומים עבור iOS ו־Android הם רשמיים. אם הסיבה שלך לעזיבת Dropbox היא שאנשים אחרים צריכים לקבל את הקבצים שלך, זו התשובה הישירה.
המחיר הוא ריבוי רכיבים. התקנה רגילה מפעילה שרת Web, את PHP-FPM (מנהל התהליכים של PHP), מסד נתונים כגון MariaDB או PostgreSQL, ואת Redis לנעילת קבצים. משימת רקע מופעלת מדי חמש דקות באמצעות cron או טיימר של systemd. ב־VPS עם 1 GB היא תעלה, ולאחר מכן העלאה גדולה או פקודת תחזוקה ממושכת של occ יפגשו את מנגנון ה־out-of-memory killer. התייחסו ל־2 GB כאל דרישת המינימום עבור קומץ משתמשים, וצפו להזדקק ל־4 GB לאחר שתפעילו יישומים נוספים. מחיר נוסף הוא שדרוגים: יישומים מחנות היישומים נבנים מול גרסת core מסוימת, לכן בדקו שהיישומים שבהם אתם תלויים תומכים בגרסה הראשית הבאה לפני שתבצעו את השדרוג.
Nextcloud נעשה איטי כאשר חשבון אחד מכיל מאות אלפי קבצים קטנים, משום שכל קובץ הוא שורה בטבלת מטמון הקבצים וגם קובץ ממשי בדיסק, ולקוח Desktop עובר עליהם בזה אחר זה. בקנה מידה ביתי הבעיה הזו אינה מתעוררת. הנחיות לגבי הקצאת משאבים, TLS (אבטחת שכבת התעבורה) וגיבויים מופיעות ב־התקנת Nextcloud מבוססת Docker עם TLS וגיבויים, ושם כדאי להמשיך לאחר שהחלטתם.
אזהרה אחת לגבי היקף השימוש. Nextcloud יכול להפעיל גם את היומן, אנשי הקשר, הפתקים וספריית התמונות שלכם, וכל יישום שתפעילו מוסיף עבודת רקע ועוד רכיב שעלול לחסום שדרוג. אם התמונות הן הבעיה האמיתית, כלי ייעודי יטפל בהן טוב יותר: ראו Immich כתחליף ל־Google Photos באירוח עצמי. אם מסמכים וויקי הם הבעיה האמיתית, בדקו את החלופות ל־Notion באירוח עצמי במקום להוסיף יישומים לשרת הקבצים. עריכת המסמכים האלה בדפדפן היא שרת נפרד ולא יישום של Nextcloud, לכן שקלו את OnlyOffice מול Collabora לפני שתניחו שדרישת המינימום של 2 GB עדיין מספיקה.
Seafile: מיועד למספר גדול מאוד של קבצים קטנים
Seafile מפצל כל קובץ לבלוקים ושומר אותם במאגר אובייקטים פנימי, שאליו ניגשים באמצעות גיבוב תוכן, באותו עיקרון שבו git משתמש עבור האובייקטים שלו. יחידת הסנכרון והשיתוף היא ספרייה, ולא עץ תיקיות. מכיוון שהלקוח מעלה בלוקים ו־commit אחד, במקום בקשה אחת לכל קובץ, סנכרון של תיקייה המכילה 100,000 קבצים קטנים מסתיים מהר בהרבה ממה שפרוטוקול המבוסס על קובץ יחיד מסוגל להשיג. בלוקים זהים נשמרים פעם אחת בלבד, ולכן עותק נוסף של קובץ גדול כמעט שאינו מוסיף עלות אחסון.
המחיר הוא שהקבצים שלך בשרת מפסיקים להיות קבצים במובן הרגיל. אם תפתח את תיקיית האחסון, תמצא קובצי אובייקטים בעלי שמות הקסדצימליים. חילוץ הנתונים מחייב שימוש בלקוח Seafile או בכלי הייצוא וה־fsck של Seafile. גיבויים עדיין פועלים, משום שהאובייקטים הם קבצים רגילים, אך אי אפשר לשחזר גיליון אלקטרוני יחיד באמצעות cp. עליך להחליט כבר עכשיו אם הדבר מקובל עליך, משום שזו מגבלה שמשתמשים מצטערים עליה בהמשך.
Seafile משחררת מהדורת קהילה ומהדורה מקצועית בתשלום, וההבדלים ביניהן משתנים בין גרסאות, לכן יש לקרוא את התנאים העדכניים באתר שלהם לפני שמתכננים צוות סביב תכונה מסוימת. קיימים לקוחות רשמיים למחשבים שולחניים ולמכשירים ניידים. ספריות מוצפנות מוצפנות בצד הלקוח, ולכן השרת שומר טקסט מוצפן שאינו יכול לקרוא. אם תאבד את ביטוי הסיסמה, הספרייה לא תהיה קריאה, גם לא עבורך. פתיחת ספרייה מוצפנת בדפדפן פירושה מסירת ביטוי הסיסמה לאזור ה־web, לכן הגרסה החזקה של ההבטחה הזו חלה על לקוחות המחשבים השולחניים והמכשירים הניידים.
עלות המשאבים דומה לזו של Nextcloud. אתה מפעיל מסד נתונים, מטמון בזיכרון ושני תהליכי יישום, ולכן גם כאן 2 GB הוא הרף התחתון ההגיוני.
Syncthing: אין צורך להתחבר
Syncthing הוא קובץ בינארי יחיד שנכתב ב־Go. הוא עוקב אחר תיקיות, מאתר את העמיתים שלו באמצעות שרת discovery או relay, ומסנכרן ישירות בין מכשירים. אין חשבונות ואין דף התחברות עבור האנשים שאיתם אתם מסנכרנים. מצמידים שני מכשירים לפי מזהה ומאשרים את התיקייה בכל אחד מהצדדים. מכל האפשרויות כאן, זו האפשרות שדורשת הכי מעט עבודה להפעלה, משום שיש מעט מאוד מה להפעיל.
מה שמוותרים עליו הוא כל תחום השיתוף. הערך שלו הוא Device pairing only, no links. אי־אפשר למסור קישור ללקוח, לרואה חשבון או לקרוב משפחה. תחום נוסף שחסר הוא תמיכה במכשירים ניידים: Android app, no official iOS. השאלות והתשובות הנפוצות הרשמיות של הפרויקט מבהירות זאת: "לצוות Syncthing הנוכחי אין תוכניות לתמיכה רשמית ב־iOS בעתיד הנראה לעין", משום ש־iOS מגביל עיבוד ברקע במידה שמקשה על סנכרון אמין. משתמשי iOS נשארים עם יישומים של צד שלישי.
השימוש במשאבים נמוך, אך יש נקודה אחת שחשוב להכיר. Syncthing שומר רשומת אינדקס עבור כל קובץ שהוא מסנכרן, ולכן צריכת הזיכרון וזמן הסריקה הראשונית גדלים בהתאם למספר הקבצים, ולא בהתאם לגודל הכולל. יצירת hash לתיקייה גדולה בפעם הראשונה תשתמש במעבד במשך זמן מה, ולאחר מכן העומס יתייצב. בתוכנית VPS הקטנה ביותר הוא פועל ללא קושי.
במקרה של התנגשויות, נשמרים שני הצדדים. כאשר שני מכשירים משנים את אותו קובץ בזמן שאינם יכולים לראות זה את זה, Syncthing משנה את השם של אחד העותקים ומשאיר אותו לצד העותק האחר, כך שתמצאו קבצים כגון notes.sync-conflict-20260802-141530-K7MB3QT.md. שום דבר אינו אובד. גם שום דבר אינו מוזג, ויש לפתור את ההתנגשות ידנית.
אחסון אובייקטים עם לקוח: בתים זולים, לא תיקיית סנכרון
אחסון אובייקטים הוא bucket תואם S3 (שירות אחסון פשוט), באירוח עצמי באמצעות MinIO או בשירות של ספק. ניגשים אליו באמצעות כלי: rclone משורת הפקודה, או לקוח למחשב שמציג את ה־bucket ככונן. אם אתם מעדיפים לעיין ב־bucket בדף אינטרנט ולא דרך shell, כמה מהכלים המופיעים ב־השוואה זו של מנהלי קבצים באירוח עצמי משתמשים ב־bucket של S3 כ־backend ומוסיפים מעליו קישורי שיתוף משלהם. שיתוף נעשה באמצעות URL חתום מראש, כלומר קישור שאתם יוצרים ושכולל זמן תפוגה משלו. ניהול גרסאות הוא הגדרה של ה־bucket: Bucket versioning, off by default, לכן הפעילו אותו בעת יצירת ה־bucket, משום שהוא אינו חל על אובייקטים שהעליתם קודם לכן.
הבעיה מתחילה כאשר מתייחסים ל־bucket כאל תיקיית סנכרון. כברירת מחדל, שום רכיב אינו עוקב אחר תיקיית Documents שלכם. rclone bisync מבצע סנכרון דו־כיווני, והתיעוד של rclone עצמו מציין במפורש שנדרשת זהירות בהפעלתו. המקום שבו אחסון אובייקטים מצטיין הוא בשכבת התשתית: יעד לגיבוי או שכבת האחסון שמאחורי יישום. אחסון אובייקטים תואם S3 באירוח עצמי באמצעות MinIO עוסק בצד השרת.
עלות המשאבים כאן שונה מהרגיל. MinIO הוא קובץ בינארי יחיד, וצריכת המשאבים שלו במצב סרק נמוכה. העלות שתשלמו בפועל היא עלות הדיסק, וב־VPS המשמעות היא volume של בלוקים שנשכר לפי ג׳יגה־בייט, בתוספת רוחב הפס המשמש להעברת אובייקטים פנימה והחוצה. אף אחת מהעלויות האלה אינה מופיעה ב־free -h, לכן קראו את העלות החודשית בפועל של VPS לפני שתקבעו את גודל הארכיון.
השוואה בין שיתוף, לקוחות ניידים וניהול גרסאות
The data behind this chart
[
{
"tool": "Nextcloud",
"sharing": "Public links, users and groups",
"mobile": "Official iOS and Android apps",
"versioning": "On by default, plus trash"
},
{
"tool": "Seafile",
"sharing": "Public links with password and expiry",
"mobile": "Official iOS and Android apps",
"versioning": "Library history and snapshots"
},
{
"tool": "Syncthing",
"sharing": "Device pairing only, no links",
"mobile": "Android app, no official iOS",
"versioning": "Optional per folder, off by default"
},
{
"tool": "Object storage",
"sharing": "Presigned URLs you generate",
"mobile": "Third party clients only",
"versioning": "Bucket versioning, off by default"
}
]כל 4 האפשרויות נחלקות לפי קו אחד. שלוש מהן יכולות למסור קובץ לאדם זר שיש ברשותו רק דפדפן. אחת מהן מתקשרת רק עם מכשירים שכבר נמצאים בבעלותכם. לרכיב ניהול הגרסאות של Seafile, Library history and snapshots, יש נקודה חשובה: ההיסטוריה נשמרת לכל ספרייה בנפרד, ולכן מחיקת ספרייה מוחקת גם את ההיסטוריה שלה.
הוצאת הנתונים שלך
עלות המעבר זולה לבדיקה עכשיו ויקרה לגילוי מאוחר יותר, לכן בדקו אותה לפני שאתם מתחייבים.
Nextcloud שומר קבצים אמיתיים בתיקיות אמיתיות, לכן tar של תיקיית הנתונים מספק לכם את המסמכים גם אם היישום לא יופעל שוב. Syncthing עושה זאת אצל כל עמית, וזהו מנגנון היציאה החזק ביותר כאן: הקבצים פשוט נמצאים בכל התקן. מאגר האובייקטים של Seafile דורש את Seafile או את כלי הייצוא שלו כדי להרכיב מחדש את הבלוקים לקבצים. אחסון אובייקטים דורש את rclone או כלי מקביל, וזמינותו היא במרחק פקודה אחת.
סנכרון אינו גיבוי, ובפער הזה אנשים מאבדים נתונים
כל כלי כאן מעתיק שינויים בין מחשבים. מחיקה היא שינוי. מחקו תיקייה במחשב הנייד, והלקוח מודיע לשרת; השרת מחיל את השינוי, וכל מכשיר אחר מוחק אותה גם הוא. תוכנת כופר משתמשת באותו מסלול: היא מצפינה קבצים באופן מקומי, הלקוח מזהה קבצים ששונו ומעלה את הגרסאות המוצפנות. הסנכרון פעל כראוי. הנתונים שלכם עדיין אבודים.
סלי אשפה והיסטוריית גרסאות מצמצמים את הנזק. גם הם פוקעים, אפשר לרוקן אותם באמצעות אותו חשבון שביצע את הטעות, והם נמצאים באותו דיסק שבו נמצא העותק הפעיל. כונן שנכשל לוקח איתו גם את הקבצים וגם את ההיסטוריה שלהם.
גיבוי הוא עותק נפרד, בחומרה נפרדת, שנוצר לפי לוח זמנים וששחזרתם לפחות פעם אחת. גבו את מסד הנתונים באותה הרצה שבה אתם מגבים את הקבצים. שחזור של ספריית נתונים של Nextcloud ללא מסד הנתונים שלה יוצר מופע שאינו יודע שהקבצים האלה קיימים, ו־occ files:scan לאחר מכן משחזר את הקבצים אך מאבד את השיתופים ואת היסטוריית הגרסאות שנשמרו בטבלאות האלה. גיבויי restic מתוזמנים מ־VPS מתאר את הגרסה המוצפנת והמסירה־כפולה של התהליך, כולל אופן בדיקת השחזור במקום להניח שהוא יעבוד.
מה הייתי בוחר
Nextcloud, עבור רוב הקוראים. לאחר שעוזבים את Dropbox, מה שחסר לרוב האנשים הוא האפשרות לשלוח קישור למי שלעולם לא יתקין דבר, ולפתוח קובץ בטלפון. Nextcloud מספק את שתי האפשרויות באמצעות לקוחות רשמיים וללא מסלול בתשלום, ו־2 GB של RAM הם מחיר סביר עבור זאת. יש שני חריגים שאני דבק בהם. אם התיקייה תהיה תמיד רק שלך ותאוחסן תמיד רק בחומרה שבבעלותך, הפעל את Syncthing ותיהנה מכך שאין שרת שצריך לתחזק ואין כניסה דרך האינטרנט שצריך להגן עליה. אם אתה מסנכרן ספריית עבודה שמכילה מאות אלפי קבצים, הפעל את Seafile וקבל אחסון לא שקוף בתמורה למהירות. אחסון אובייקטים צריך לשמש מתחת לפתרון שתבחר, כיעד לגיבוי, ולא לפניו ככלי הסנכרון.
FAQ
האם Syncthing הוא גיבוי למחשב הנייד שלי?
לא. Syncthing מעתיק שינויים בין מכשירים, ומחיקה היא שינוי כמו כל שינוי אחר. לכן קובץ שמחקתם בטעות ייעלם מכל המכשירים המצומדים בתוך שניות. ניהול גרסאות של קבצים לפי תיקייה מסייע בכך, והוא מושבת עד שמפעילים אותו בכל תיקייה. שמרו גיבוי אמיתי על חומרה נפרדת, בצעו אותו לפי לוח זמנים, ושחזרו ממנו פעם אחת כדי לוודא שהשחזור פועל.
האם אפשר להפעיל את Nextcloud ואת Syncthing באותו VPS?
כן. הם מאזינים בפורטים שונים ואינם מתנגשים. אל תפנו תיקייה של Syncthing אל ספריית הנתונים של Nextcloud. Nextcloud מנהל מעקב אחר כל קובץ במסד נתונים, ולכן קבצים שמופיעים בדיסק מתחת לספרייה זו יישארו בלתי נראים עד שתפעילו את occ files:scan, וקבצים שנמחקים מתחתיה ישאירו במסד הנתונים רשומות שמפנות לשום מקום. הקצו ל־Syncthing ספרייה משלו, או חברו את הספרייה הזו אל Nextcloud כאחסון חיצוני, כדי ש־Nextcloud ידע לבדוק אותה.
איזה מהם מאפשר לשתף קישור עם אדם שאין לו חשבון?
Nextcloud ו־Seafile יוצרים שניהם קישורים ציבוריים, עם אפשרות להגדיר סיסמה ותאריך תפוגה. אחסון אובייקטים מספק URL חתום מראש, שמפסיק לפעול באופן אוטומטי לאחר הזמן שהגדרתם. ל־Syncthing אין מענה לכך. מודל השיתוף שלו מבוסס על צימוד מכשירים, ולכן האדם האחר חייב להתקין Syncthing, למסור לכם מזהה מכשיר ולאשר את התיקייה.
כמה שטח דיסק דרוש לשרת?
עבור שרת המשמש כמקור הרשמי של הנתונים, תכננו את מלוא הנפח של הנתונים המשותפים, בתוספת מקום להיסטוריית גרסאות ולאשפה, וכן מרחב עבודה להעלאות שעדיין מתבצעות. היסטוריית הגרסאות היא הרכיב שנוטים להמעיט בחשיבותו: שמירה של כל גרסה של קובץ בנפח 2 GB שמשתנה מדי יום גדלה במהירות, ולכן הגדירו מדיניות שמירת גרסאות בשלב מוקדם. אחסון הנתונים ב־volume נפרד מונע מהגידול הזה למלא את מערכת הקבצים הראשית. כאשר הדיסק מתמלא, השרת כולו נעצר ולא רק העלאה אחת.