מי שמשתמש בשירותי מטריקס כנראה ישים לב במוקדם או במאוחר כי זה לא כל כך נוח שמישהוא אחר מנהל את השירות שאתה צורך. דוגמא יפה צצה עכשיו כשראתי הודעה באחד משרתי המטריקס כי הודעות מעל שלושה חודשים יימחקו בקרוב בגלל מקום פנויי.
אז ביום שישי על הבוקר החלתי להרים שרת ולראות איך זה, בגלל מגבלות זמן (יום שישי בכל זאת) לא יכלתי לסיים כל מה שרציתי אז זה בערך מה שנעשה.
הרמתי לעצמי שרת matrix מבית synapse ברשת הביתית שלי, את השרת התקנתי מאחורי reverse-proxy מסוג apache2. התהליך לוקח בערך 4 שעות מאפס מוחלט (לא היה לי שום מושג מה נדרש) עד הרמת סביבה שמספקת יכולת משלוח הודעות , תמונות.
החלק העיקרי של הזמן היה לקרוא ולהבין את התיעוד, מציאת ה access_token הנדרש לפעולות הניהול.
את ההתקנה עשיתי מחבילות דביאן ולא מדוקר , תחת מכונה וירטואלית ב virt-manager.
את ההתקנה עשיתי מחבילות דביאן ולא מדוקר , תחת מכונה וירטואלית ב virt-manager.
אתה השירות אני מספק דרך ipv6-only מהבית הפרטי (אין לי כתובת ipv4 ציבורית בבית).
השלבים הם:
רשימת סאב דומיין בחינם בצורה אנונימית תחת afraid.org ופרסום רשומת AAAA אליו.
בחירת שם לשרת המטריקס שלי בצורה של subdomain.example.net אני בחרתי להתקין את הסביבה שלי כך שכל לקוח אצלי ייתחבר בצורה של @username:subdomain.example.net ולא @username:example.net מהסיבה כי אני משתמש בsubdomain שניתן לבחור ב afraid.org.
יצרת bridge בין כרטיס הרשת הקווית לבין הרשת שמשומשת ע"י המכונה הוירטואלית (בכוונה תסריט ולא הגדרה קבועה):
#!/bin/bash ip link add name br0 type bridge ip link set enp0s31f6 master br0 ip addr add 192.168.4.7/16 dev br0 brd 192.168.255.255 ip link set up enp0s31f6 up ip link set up br0
התקנת מכונה וירטואלית מסוג דביאן תחת virt-manager , ובחירת רשת מסוג bride שמקבלת את br0.
את זה אני עושה כי אני רוצה להשתמש ביכולת ה DHCP-PD שייתנו כתובת ipv6 ציבורית למכונה הוירטואלית בצורה ישירה, בצורה כזאת ה ipv6 שאני מקבל מספק האינטרנט יימשך ע"י המכונה הוירטואלית ללא שום הגדרה נוספת מצידי.
בתוך המכונה הוירטואלית:
התקנה של matrix-synapse ושימוש ב subdomain.example.net בהצליך ההגדרה.
התקנה של apache2
התקנה של פוסטגרס, ויצרת בסיס נתונים חדש עבור matrix-synapse בשם synapse.
התקנה והגדרה של תעודה TLS מבית Letsencrypt ב apache2.
שינוי הגדרת homeserver שיצביע לשימוש בפוסטגרס.
שינוי הגדרת homeserver לעבוד עם התעודה של letsencrypt
הגדרת חומת אש המונעת הכל פרט למה שאני צריך.
הגדרה של reverse-proxy ע"י apache2 שייגיע לmatrix-synapse.
יצרת מסלול .well-known על שרת ה apache2 :
cat /var/www/html/.well-known/matrix/server
{ "m.server": "subdomain.example.net:443" }
הגדרת טסריט שמעדכן כתובת ipv6 לשירותי afraid (שבסופו של יום פשוט מבצע) :
curl https://v6.sync.afraid.org/u/?u=myafraiduser\&p=myafraidpassword\&h=subdomain.example.net\&ip=$ip
הדברים הקשים שהיה לגלות:
איך מגלים את ה accsess-token ?
הפתרון הוא או התחברות לחשבון באמצעות pidgin ואז פתיחת הקובץ accounts.xml וחיפוש השורה access_token או ביצוע הפקודה :
הפתרון הוא או התחברות לחשבון באמצעות pidgin ואז פתיחת הקובץ accounts.xml וחיפוש השורה access_token או ביצוע הפקודה :
curl -d '{"type":"m.login.password", "user":"'user'", "password":"'supersecretpassword'"}' "https://subdomain.example.net/_matrix/client/v3/login"
{"user_id":"@user:subdomain.example.net","access_token":"syt_vdlsnvdslv_dsfdds_24124","home_server":"subdomain.example.net","device_id":"SAFASF241"}
הדברים שעדיין לא עשיתי עד הסוף כמו שצריך:
-
הגדרת החלק של ה VoIP עבור רשת ipv6-only, אני מנחש שהכוונה להרים שרת TURN אבל מצד שני זה לא הגיוני להחזיק שרת TURN בשביל ipv6.
- למצוא לקוח matrix בחנות f-droid שעושה את העבודה כמו שצריך. מצליח לעשות שיחות ולשלוח הודעות ואולי אפילו חי בתוך ה dialer והממשק של ההודעות.
- מציאת אריזה של element.io שיהיה ניתן להתקין מדביאן טהור (כרגע באג #866502 לא סגור).
- התממשקות לשרת הרדיוס שלי לאימות משתמשים.
- מציאת ממשק גרפי נוח לניהול הסביבה.
- מציאת לקוח ששומר הודעות מקומית ולא פשוט אריזת אלקטרון למה שהשרת שומר.