رفتن به محتوا

روش ۲: اسکریپت نصب، آنلاین

پیش‌نیاز: دسترسی root (sudo) و اینترنت روی سرور. لازم نیست Node.js نصب کنید، همراه بسته می‌آید.

قدم ۱: دامنه را به سرور وصل کنید (پیش از شروع را ببینید).

قدم ۲: اجرای نصب‌کننده

Terminal window
curl -fsSL https://raw.githubusercontent.com/Pourii83/Flock/main/deploy/install.sh | sudo bash

همین یک خط کافی است. اسکریپت بقیه را از شما می‌پرسد (قدم ۳). می‌توانید هر جواب را به‌جای پرسیده شدن به‌صورت گزینه هم بدهید، مثلاً | sudo bash -s -- --domain chat.example.com --turn، تا آن سؤال دیگر پرسیده نشود.

اسکریپت این کارها را می‌کند:

  1. آخرین flock-server-linux-<arch>.tar.gz را از Releases دانلود می‌کند
  2. اگر PostgreSQL نصب نیست، نصبش می‌کند و یک دیتابیس flock با رمز تصادفی می‌سازد
  3. فلاک را در /opt/flock نصب می‌کند، فایل /etc/flock/flock.env را با یک JWT_SECRET تصادفی می‌نویسد و سرویس flock را اجرا می‌کند
  4. اگر دامنه بدهید، Nginx را هم نصب می‌کند، گواهی Let’s Encrypt می‌گیرد (که خودکار تمدید می‌شود) و HTTP را به HTTPS هدایت می‌کند
  5. اگر رله‌ی TURN بخواهید، coturn را نصب و به فلاک وصل می‌کند

قدم ۳: به سؤال‌ها جواب دهید. در نصب اول، اسکریپت همه‌ی گزینه‌ها را می‌پرسد. اگر فقط Enter بزنید، مقدار پیش‌فرض می‌ماند. گزینه‌هایی که در خط فرمان داده‌اید دوباره پرسیده نمی‌شوند.

سؤال پیش‌فرض معادل گزینه‌ی
فایل بسته برای نصب آفلاین ندارد، از GitHub دانلود می‌شود --package
نسخه‌ای که نصب شود آخرین نسخه --version
دامنه برای HTTPS ندارد، از IP سرور استفاده می‌شود --domain
ایمیل برای اعلان انقضای گواهی (فقط با دامنه) ندارد --email
پورت 4000 --port
بیشترین حجم فایل ارسالی، به مگابایت 100 --upload-mb
مدت نگه‌داری فایل‌ها، به روز 7 --retention-days
هر کسی بتواند ثبت‌نام کند؟ بله (تنظیمات ← تنظیمات برنامه)
رله‌ی TURN برای تماس نصب شود؟ بله --turn
آدرس یک PostgreSQL موجود ندارد، PostgreSQL همین‌جا نصب می‌شود --db-url
فلاک بعد از نصب اجرا شود؟ بله --no-start
حساب ادمین ساخته شود؟ بله --no-admin
نام کاربری و رمز ادمین admin و یک رمز تصادفی --admin

بعد خلاصه‌ی جواب‌ها را نشان می‌دهد و فقط وقتی تأیید کنید نصب می‌کند. اگر جوابی را اشتباه دادید، «n» بزنید و دوباره اجرا کنید؛ چیزی نصب نشده.

در پایان، حساب ادمین ساخته می‌شود. اگر رمز را خالی گذاشته باشید، یک رمز ساخته و فقط یک بار نمایش داده می‌شود، پس آن را ذخیره کنید. همه‌ی رمزها به‌صورت هش bcrypt ذخیره می‌شوند. با --yes سؤالی پرسیده نمی‌شود و پیش‌فرض‌ها و گزینه‌هایی که داده‌اید به کار می‌روند (بدون --turn، رله‌ی TURN نصب نمی‌شود).

قدم ۴: باز کردن: https://chat.example.com را باز کنید و با حساب ادمین وارد شوید. بیشتر این تنظیمات را بعداً از داخل اپ، در تنظیمات ← تنظیمات برنامه، عوض می‌کنید.

همه‌ی گزینه‌های نصب‌کننده (بعد از bash -s -- بیایند):

گزینه معنی
--domain NAME فلاک روی https://NAME با Nginx و Let’s Encrypt. برای سروری که فقط مال فلاک است. اگر Nginx سایت‌های دیگری هم دارد، deploy/INSTALL.md را ببینید
--email ADDR ایمیل برای اعلان انقضای گواهی
--port N پورت فلاک (پیش‌فرض 4000، فقط در نصب اول)
--version TAG نصب یک نسخه‌ی مشخص، مثلاً v1.7.0 (پیش‌فرض: آخرین نسخه)
--db-url URL استفاده از یک دیتابیس PostgreSQL موجود به‌جای نصب دیتابیس
--turn نصب رله‌ی TURN برای تماس‌ها (چرا)
--upload-mb N بیشترین حجم فایل ارسالی به مگابایت (پیش‌فرض 100)
--retention-days N مدت نگه‌داری فایل‌ها به روز (پیش‌فرض 7)
--admin NAME حساب ادمینی که ساخته می‌شود (پیش‌فرض admin). روی نصب موجود، رمز آن حساب را عوض و آن را ادمین می‌کند
--no-admin حساب ادمین ساخته نشود
--yes سؤالی پرسیده نشود
--no-start نصب بدون اجرای سرویس
--github-mirror URL / --apt-mirror URL دانلود از طریق میرور (جزئیات)

بدون --domain، فلاک روی http://<IP-سرور>:4000 در دسترس است. برای آزمایش کافی است، ولی تماس از وب‌اپ بدون HTTPS کار نمی‌کند.

نصب‌کننده یک فرمان به اسم flockctl اضافه می‌کند. بدون آرگومان اجرایش کنید تا منو بیاید:

Terminal window
sudo flockctl
Flock server manager (installed: v1.7.2)
1) Install
2) Update
3) Status
4) Restart
5) Logs
6) Reset an admin password
7) Download mirrors
8) Uninstall
0) Exit

هر گزینه یک فرمان هم هست:

فرمان کارش
sudo flockctl update نصب آخرین نسخه (می‌پرسد کدام نسخه؛ با --version v1.7.2 هم می‌شود انتخاب کرد). تنظیمات و دیتابیس می‌مانند
sudo flockctl status نسخه، سرویس، بررسی سلامت، آدرس، رله‌ی TURN و میرورها
sudo flockctl restart راه‌اندازی دوباره و صبر تا فلاک جواب دهد
sudo flockctl logs ۱۰۰ خط آخر لاگ
sudo flockctl admin ادمین کردن یک حساب و تعیین رمزش (اگر رمز ادمین یادتان رفته)
sudo flockctl mirrors میرورهای دانلود، پایین‌تر
sudo flockctl uninstall حذف فلاک. می‌پرسد دیتابیس، فایل‌های آپلودشده و تنظیمات هم پاک شوند یا نه (--purge بدون پرسیدن)

میرورهای دانلود، برای سرورهایی که GitHub یا مخزن‌های Ubuntu/Debian رویشان کند یا بسته است:

  • میرور GitHub: پیشوندی که جلوی لینک‌های دانلود github.com گذاشته می‌شود (به سبک پراکسی: https://gh-proxy.example.com/https://github.com/...). برای دانلود نسخه‌های فلاک.
  • میرور پکیج‌ها (apt): آدرس مخزن Ubuntu/Debian را در منابع apt عوض می‌کند؛ برای PostgreSQL، Nginx، certbot و coturn. از منابع اصلی نسخه‌ی پشتیبان گرفته می‌شود، میرور با apt-get update امتحان می‌شود، و با برگرداندن به پیش‌فرض، منابع دقیقاً مثل قبل برمی‌گردند.
Terminal window
sudo flockctl mirrors --github-mirror https://gh-proxy.example.com/
sudo flockctl mirrors --apt-mirror https://mirror.example.com/ubuntu
sudo flockctl mirrors --reset-mirrors # هر دو به پیش‌فرض

گزینه‌های میرور در نصب اول هم کار می‌کنند (... | sudo bash -s -- --apt-mirror https://mirror.example.com/ubuntu) و برای به‌روزرسانی‌های بعدی می‌مانند.

برای پشتیبان از دیتابیس: sudo -u postgres pg_dump flock > flock-backup.sql