להחזיק בחשבון החברתי שלכם זה רעיון יפה, עד שמבינים שהחשבון חי על שרת של מישהו אחר, לפי הכללים וזמני הפעילות שלו. שרת Mastodon משלכם פותר את זה: הכינוי שלכם הוא @you@your-domain ואף אחד חוץ מכם לא יכול לסגור אותו. הקאץ' הוא ש-Mastodon הוא לא אפליקציה קטנה. כדאי לדעת למה אתם נכנסים.
למי זה מתאים
- שרת למשתמש אחד — לכם או לחשבון הרשמי של החברה.
- קהילה קטנה של חברים או צוות פרויקט — עשרות אנשים, לא אלפים.
מעבר לזה אתם כבר מפעילים שירות עם חובות ניהול תוכן, דיווחי שימוש לרעה ותשתית אמיתית. זו שיחה אחרת.
מה זה באמת צריך
Mastodon מריץ כמה תהליכים בבת אחת: אפליקציית הווב ב-Rails, עובדי רקע של Sidekiq, שרת סטרימינג, PostgreSQL ו-Redis. בגלל הפדרציה, השרת שלכם ממשיך למשוך פוסטים ומדיה משרתים אחרים גם כשאתם ישנים.
| שרת | תוכנית |
|---|---|
| משתמש אחד, מעט עוקבים | Small-IP — 2 vCPU, 4 GB, $16 לחודש |
| קהילה קטנה, פדרציה פעילה | Medium-IP — 4 vCPU, 6 GB, $20 לחודש |
4 GB עובדים אבל צפוף; התורים של Sidekiq נערמים כשפוסט פופולרי שאתם עוקבים אחריו מקבל אלפי תגובות. 6 GB נותנים מרווח נשימה. המגבלה השנייה היא הדיסק — ראו את החלק על מדיה בהמשך.
צריך גם דומיין ו-IP ייעודי: שרתים אחרים מוסרים לשרת שלכם בפורט 443.
התקנה עם Docker
המאגר הרשמי מגיע עם docker-compose.yml. בשרת Ubuntu 24.04 נקי עם Docker מותקן:
git clone https://github.com/mastodon/mastodon.git
cd mastodon
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
touch .env.production
docker compose run --rm -v $(pwd)/.env.production:/opt/mastodon/.env.production \
web bundle exec rake mastodon:setup
docker compose up -d
משימת ההגדרה שואלת על הדומיין, הגדרות מסד הנתונים ו-Redis (ברירות המחדל מתאימות לקובץ ה-compose), הגדרות הדואר וחשבון המנהל הראשון. היא כותבת הכול ל-.env.production. קראו את הערות הגרסה של התג שבחרתם — השלבים משתנים מדי פעם בין גרסאות ראשיות.
Mastodon כולל תבנית nginx ב-dist/nginx.conf. העתיקו אותה ל-/etc/nginx/sites-available/, החליפו את הדומיין וקבלו תעודה עם certbot. המדריכים שלנו ל-reverse proxy ול-דומיין מכסים את שניהם.
דואר: השתמשו בממסר
Mastodon שולח מיילים של אישור ואיפוס סיסמה. הפורטים 25 ו-465 סגורים בשרתים שלנו, אז כוונו את Mastodon לספק חיצוני של דואר טרנזקציוני דרך פורט 587:
SMTP_SERVER=smtp.your-provider.example
SMTP_PORT=587
SMTP_LOGIN=apikey
SMTP_PASSWORD=your-smtp-password
SMTP_FROM_ADDRESS=notifications@your-domain.example
בכנות, הייתם רוצים ממסר בכל מקרה. דואר מכתובת IP חדשה לגמרי של שרת נוטה לנחות בספאם; לממסר יש את המוניטין שעוד אין לכם.
מדיה: זולל הדיסק
כל תמונה וסרטון מחשבונות שהשרת שלכם רואה נשמרים במטמון מקומי. בשרת פעיל אלה גיגה-בייטים בשבוע. נקו מדיה מרוחקת ישנה באופן קבוע:
docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30
שימו אותן ב-cron job יומי. אם השרת גדל, העבירו את המדיה לאחסון אובייקטים תואם S3 עם הגדרות S3_* ב-.env.production — ואז הדיסק של ה-VPS מחזיק רק את מסד הנתונים.
תחזוקה
- עדכונים: משכו את התג החדש,
docker compose pull, הריצו מיגרציות כמו שכתוב בהערות הגרסה, והפעילו מחדש. אל תדלגו על גרסאות ראשיות. - גיבויים: עשו דאמפ ל-PostgreSQL ושמרו על
.env.production— בלי הסודות שבו השחזור לא יעבוד. המדריך ל-restic מכסה עותקים מחוץ לשרת, ו-Managed Backups מוסיפים נקודות שחזור יומיות של כל השרת. - הדומיין קבוע. הוא צרוב בכתובת של כל חשבון בכל הפדיברס. בחרו אותו לפני שיוצרים את החשבון הראשון.
מחפשים משהו קל יותר לצ'אט של צוות? שרת Matrix אולי יתאים יותר.
תגובות
אין עדיין תגובות. היו הראשונים.