This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
خانه · راهنمای نصب · English
حالت قطعی: نصب بدون اینترنت بینالملل
هنگام قطع اینترنت بینالملل، نصب معمولی ناموفق میشود: پلیبوک، نقشهای Ansible، ایمیجهای کانتینر، داکر و حتی بستههای خودِ سرور همگی از خارج دریافت میشوند. در حالت قطعی (blackout)، interzone همهی آنها را از میرورهای داخل کشور دریافت میکند.
راهنمای نصب را طبق معمول دنبال کنید؛ این صفحه تنها بخشهایی را که متفاوت است شرح میدهد.
۱. انتخاب حالت قطعی در مرحلهی Server
در بخش Downloads، روی Network situation بروید و با → گزینهی
Blackout: in-country mirrors only را انتخاب کنید.
اکنون همهی منابع دریافت زیر آن به میرورهای داخلی تغییر کردهاند:
| What | Default mirror |
|---|---|
| The playbook (git) | https://itsjustadream.g0th.ir/spantaleev/matrix-docker-ansible-deploy |
| Ansible roles (git) | https://itsjustadream.g0th.ir/ |
| Container images | mechatok.g0th.ir/ |
| Docker Engine packages | https://infamous.g0th.ir/docker |
| The server's OS packages | https://infamous.g0th.ir |
| Python packages (PyPI, for Ansible) | https://infamous.g0th.ir/pypi/simple |
راهنمای هر فیلد، دیگر میرورهای شناختهشدهی ایران را نیز فهرست کرده است (هاستبران، ابرها، آروانکلاد، ایرانسرور، مبینهاست، فاماسرور و دیگران) و میگوید هر یک کدام نسخههای لینوکس را دارد. لازم نیست خودتان انتخاب کنید: هنگام استقرار، interzone میرورها را با نسخهی لینوکس سرور و ایمیجهای مورد نیاز بررسی میکند و اگر یکی کمبودی داشت، به میرور دیگری که همه چیز را دارد میرود، این تغییر را در گزارش ذکر میکند و ذخیرهاش میکند.
۲. آزمایش میرورها
در مرحلهی Server، ctrl+t را بزنید تا همهی منابع از رایانهی شما آزمایش
شوند:
صفحهی Mirrors (در منو، یا با interzone mirrors در ترمینال) همهی
میرورهای شناختهشده را بررسی میکند تا ببیند واقعاً چه چیزی دارند، نه فقط اینکه
پاسخ میدهند یا نه. میرورهای بسته باید بهروزرسانیهای کمتر از دو هفتهی اخیر را
داشته باشند.
زبانهی سوم آن، Images، بررسی میکند که آیا هر ایمیج مورد نیاز از میرور
رجیستری قابل دریافت است یا نه. این بررسی از سرور شما انجام میشود و پلیبوک
باید پیشتر دریافت شده باشد: پس از نخستین استقرار، یا با
./interzone apply --save-only.
۳. گواهی: Let's Encrypt کار نمیکند
گواهی Let's Encrypt باید از خارج به سرور شما دسترسی داشته باشد، بنابراین در زمان قطعی کار نمیکند. در بخش HTTPS certificates یکی از این گزینهها را انتخاب کنید:
- گزینهی My own certificate، اگر گواهی دارید (مثلاً از یک شرکت داخلی). مسیر فایل گواهی و کلید آن را روی رایانهی خود وارد کنید؛ یا
- گزینهی Self-signed، که interzone خودش یک گواهی میسازد. مرورگرها و برنامهها تا زمانی که آن را روی هر دستگاه بپذیرید، هشدار عدم اعتبار میدهند؛ برای یک گروه کوچک مناسب است.
پس از بازگشت اینترنت، میتوانید به Let's Encrypt تغییر دهید و Update the server را بزنید.
۴. فدراسیون
در زمان قطعی، سرورهای خارج از کشور به سرور شما دسترسی ندارند و سرور شما نیز به آنها دسترسی ندارد، اما سرورهای داخل کشور دسترسی دارند. فدراسیون را فعال نگه دارید، یا در Networking › Federate only with سرورهایی را که میخواهید با آنها در ارتباط باشید فهرست کنید.
۵. بدون هیچ اینترنتی: بستهی آفلاین
اگر رایانهای که interzone را روی آن اجرا میکنید حتی به میرورها هم دسترسی ندارد، در جایی که اینترنت دارد یک بسته (bundle) بسازید:
./interzone bundle -o interzone-bundle.tar.gz
این بسته شامل پلیبوک با همهی نقشهای Ansible، بستههای پایتون Ansible و خودِ interzone است. آن را منتقل کنید و سپس:
tar xzf interzone-bundle.tar.gz
./interzone-bundle/interzone unbundle interzone-bundle
./interzone-bundle/interzone
ایمیجهای کانتینر در بسته نیستند: سرور همچنان به یک میرور رجیستری در دسترس نیاز دارد (فیلد Container registry mirror).
۶. وقتی میرورها نیز در دسترس نیستند: IPFS
اگر میرورهای داخلی نیز در دسترس نباشند، دیگر سرورهای interzone میتوانند همهچیز را از طریق IPFS فراهم کنند؛ شبکهای که در آن هر سروری که فایلی را دارد میتواند آن را به دیگران برساند. در Network situation گزینهی IPFS: from interzone's swarm را انتخاب کنید. فیلدهای git و رجیستری پنهان میشوند: پلیبوک، نقشها، بستهها و همهی ایمیجهای کانتینر از شبکهی IPFS دریافت میشوند.
همچنین باید به پرسش Share what this server downloads پاسخ دهید:
- گزینهی Yes پس از استقرار، IPFS را روی سرور شما روشن نگه میدارد تا دیگر سرورها بتوانند از آن دریافت کنند. این سرویس روی درگاه TCP 4001 گوش میدهد (آن را در فایروال باز کنید) و اعضای شبکه میتوانند ببینند که سرور شما نرمافزار Matrix دارد.
- گزینهی No تنها دریافت میکند و IPFS پس از هر استقرار متوقف میشود.
سپس استقرار، IPFS را روی سرور نصب میکند، به شبکهی خصوصی interzone میپیوندد،
تازهترین انتشار را مییابد و پیش از استفاده از هر چیزی، امضای آن را بررسی
میکند. کلید ctrl+t بررسی میکند که انتشار و گرهی ورودی شبکه در دسترس باشند.
Let's Encrypt همچنان به اینترنت بینالملل نیاز دارد (بخش ۳).
بستهای که با انتخاب IPFS ساخته شود، خودِ IPFS را نیز در بر دارد؛ بنابراین سروری که هیچ اینترنتی ندارد نیز میتواند به شبکه بپیوندد.
میزبانی بدون سرور Matrix
برای کمک به شبکه، نیازی به راهاندازی Matrix ندارید. در منو گزینهی Host را
انتخاب کنید و بخشهایی را که میخواهید میزبانی شوند روشن کنید: ایمیجهای کانتینر
(حدود ۱۲ گیگابایت)، بستههای سیستمعامل، Docker و Python (۳٫۷ گیگابایت)، playbook
و نقشهای آن در git (۵۰ مگابایت) و خودِ interzone و IPFS (۲۳۰ مگابایت). سپس این
رایانه یا یک سرور لینوکسی از طریق SSH را مشخص کنید و کلید enter را بزنید. در طول
میزبانی، همین صفحه همتایان، میزان دریافت هر بخش، ترافیک، سهم دادهشده به شبکه، فضای
دیسک و زمان بررسی بعدی را نشان میدهد. از آن پس، آن رایانه
تازهترین نسخهی امضاشده را نگه میدارد و با دیگران به اشتراک میگذارد. این
رایانه هر ساعت خودش نسخهی جدید را بررسی میکند؛ بنابراین لازم نیست interzone باز
بماند. مانند اشتراکگذاری که در بالا توضیح داده شد، روی درگاه TCP 4001 گوش میدهد
و اعضای شبکه میتوانند ببینند که نرمافزار Matrix دارد.
برای توقف، دوباره صفحهی Host را باز کنید و مشخصات همان رایانه را در فرم وارد
کنید. کلید ctrl+x اشتراکگذاری را متوقف میکند: گره حتی پس از راهاندازی دوباره
خاموش میماند، دادههای دریافتشده حفظ میشوند و با enter دوباره آغاز میشود. کلید
ctrl+d پس از تأیید شما، گره را همراه با همهی دادههای دریافتشدهاش حذف میکند و
فضای دیسک آزاد میشود. سرور ماتریکسی که روی همان رایانه باشد، به کار خود ادامه
میدهد. روی خود سرور نیز این دستور همان کار ctrl+x را انجام میدهد:
sudo systemctl disable --now interzone-ipfs-follow.timer interzone-ipfs



