روش ۲: اسکریپت نصب، آنلاین
پیشنیاز: دسترسی root (sudo) و اینترنت روی سرور. لازم نیست Node.js نصب کنید، همراه بسته میآید.
قدم ۱: دامنه را به سرور وصل کنید (پیش از شروع را ببینید).
قدم ۲: اجرای نصبکننده
curl -fsSL https://raw.githubusercontent.com/Pourii83/Flock/main/deploy/install.sh | sudo bashهمین یک خط کافی است. اسکریپت بقیه را از شما میپرسد (قدم ۳). میتوانید هر جواب را بهجای پرسیده شدن بهصورت گزینه هم بدهید، مثلاً | sudo bash -s -- --domain chat.example.com --turn، تا آن سؤال دیگر پرسیده نشود.
اسکریپت این کارها را میکند:
- آخرین
flock-server-linux-<arch>.tar.gzرا از Releases دانلود میکند - اگر PostgreSQL نصب نیست، نصبش میکند و یک دیتابیس
flockبا رمز تصادفی میسازد - فلاک را در
/opt/flockنصب میکند، فایل/etc/flock/flock.envرا با یکJWT_SECRETتصادفی مینویسد و سرویسflockرا اجرا میکند - اگر دامنه بدهید، Nginx را هم نصب میکند، گواهی Let’s Encrypt میگیرد (که خودکار تمدید میشود) و HTTP را به HTTPS هدایت میکند
- اگر رلهی 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
Section titled “مدیریت سرور: flockctl”نصبکننده یک فرمان به اسم flockctl اضافه میکند. بدون آرگومان اجرایش کنید تا منو بیاید:
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امتحان میشود، و با برگرداندن به پیشفرض، منابع دقیقاً مثل قبل برمیگردند.
sudo flockctl mirrors --github-mirror https://gh-proxy.example.com/sudo flockctl mirrors --apt-mirror https://mirror.example.com/ubuntusudo flockctl mirrors --reset-mirrors # هر دو به پیشفرضگزینههای میرور در نصب اول هم کار میکنند (... | sudo bash -s -- --apt-mirror https://mirror.example.com/ubuntu) و برای بهروزرسانیهای بعدی میمانند.
برای پشتیبان از دیتابیس: sudo -u postgres pg_dump flock > flock-backup.sql
