soju(1) General Commands Manual soju(1)

soju - باونسر IRC

soju [options...]

دستور soju یک باونسر (bouncer) کاربرپسند برای IRC است. این برنامه از طرف کاربر به سرورهای بالادستی IRC متصل می‌شود تا امکانات بیشتری را فراهم کند.

  • اشتراک‌گذاری همزمان یک باونسر توسط چندین کاربر مجزا، که هر کدام سرورهای بالادستی خود را دارند
  • ارسال تاریخچه پیام‌های پیشین (پیام‌های دریافتی هنگام قطع بودن اتصال کاربر از باونسر)، با بافرهای مجزا به ازای هر کلاینت

برای اتصال به باونسر، از نام کاربری و گذرواژه باونسر استفاده کنید. جهت استفاده از کلاینتی که از افزونه IRC با نام soju.im/bouncer-networks پشتیبانی نمی‌کند، برای هر سرور پیکربندی‌شده در soju یک اتصال برقرار کرده و نام شبکه را در نام کاربری به صورت "<username>/<network>" مشخص کنید. سپس می‌توانید به کانال‌ها ملحق شده یا از آن‌ها خارج شوید، درست مانند اینکه مستقیماً به سرور بالادستی متصل هستید.

برای فعال بودن تاریخچه پیام‌ها به ازای هر کلاینت در کلاینت‌هایی که از افزونه IRCv3 با نام chathistory پشتیبانی نمی‌کنند، کلاینت‌ها باید نام خود را مشخص کنند. این کار را می‌توان با افزودن پسوند "@<client>" به نام کاربری انجام داد.

هنگام ملحق شدن به یک کانال، کانال ذخیره شده و در اتصال بعدی به صورت خودکار به آن ملحق می‌شوید. هنگام ثبت‌نام یا احراز هویت در NickServ، اطلاعات هویتی ذخیره شده و در صورتی که سرور از SASL پشتیبانی کند، در اتصال بعدی به صورت خودکار استفاده می‌شود. هنگام ترک کانال با دلیل "detach"، کانال به جای خروج کامل، جدا (detach) می‌شود.

اگر شبکه مشخص‌شده در نام کاربری وجود نداشته باشد و نام شبکه یک نام میزبان معتبر باشد، آن شبکه به صورت خودکار اضافه خواهد شد.

هنگامی که همه کلاینت‌ها از باونسر قطع شوند، کاربر به صورت پیش‌فرض و خودکار به عنوان غایب (away) علامت‌گذاری می‌شود.

برنامه soju با دریافت سیگنال HUP، فایل پیکربندی، گواهی/کلید TLS و فایل MOTD را مجدداً بارگذاری خواهد کرد. گزینه‌های پیکربندی listen، db و log قابل بارگذاری مجدد نیستند.

مدیران سیستم می‌توانند پیامی را با /notice $<hostname> <text> به همه کاربران باونسر همگانی (broadcast) کنند، یا در صورتی که اتصال مقید به شبکه خاصی نباشد از طریق /notice $* <text> اقدام کنند. همه کاربران متصل فعلی باونسر، پیام را از سرویس ویژه BouncerServ دریافت خواهند کرد.

-h, -help

نمایش پیام راهنما و خروج.

-config <path>

مسیر فایل پیکربندی. در صورت تنظیم نشدن، از فایل پیکربندی پیش‌فرض استفاده می‌شود.

-debug

فعال‌سازی گزارش‌گیری اشکال‌زدایی (این کار اطلاعات حساسی مانند گذرواژه‌ها را فاش می‌کند). این تنظیم می‌تواند در زمان اجرا با دستور سرویس server debug بازنویسی شود.

-listen <uri>

شناسه URI شنود (پیش‌فرض: ":6697"). می‌تواند چندین بار مشخص شود.

فایل پیکربندی در هر خط شامل یک دستورالعمل (directive) است.

مثال:

listen ircs://
tls cert.pem key.pem
hostname example.org

دستورالعمل‌های زیر پشتیبانی می‌شوند:

listen <uri>

شناسه URI شنود (پیش‌فرض: ":6697").

شناسه‌های URI زیر پشتیبانی می‌شوند:

  • [ircs://][host][:port] با TLS روی TCP شنود می‌کند (پورت پیش‌فرض در صورت حذف: 6697)
  • irc://localhost[:port] به صورت متن ساده روی TCP شنود می‌کند (پورت پیش‌فرض در صورت حذف: 6667، میزبان باید "localhost" باشد)
  • irc+insecure://[host][:port] به صورت متن ساده روی TCP شنود می‌کند (پورت پیش‌فرض در صورت حذف: 6667)
  • unix://<path> روی یک سوکت دامنه یونیکس (Unix domain socket) شنود می‌کند
  • https://[host][:port] برای اتصالات HTTPS شنود می‌کند (پورت پیش‌فرض: 443) و به درخواست‌های زیر رسیدگی می‌نماید:
  • /socket برای وب‌سوکت (WebSocket)
  • /uploads (و زیرپوشه‌ها) برای بارگذاری فایل
  • http://localhost[:port] برای اتصالات متنی HTTP شنود می‌کند (پورت پیش‌فرض: 80، میزبان باید "localhost" باشد) و مانند https:// به درخواست‌ها رسیدگی می‌کند
  • http+insecure://[host][:port] برای اتصالات متنی HTTP شنود می‌کند (پورت پیش‌فرض: 80) و مانند https:// به درخواست‌ها رسیدگی می‌کند
  • http+unix://<path> برای اتصالات متنی HTTP روی یک سوکت دامنه یونیکس شنود می‌کند و مانند https:// به درخواست‌ها رسیدگی می‌کند
  • wss://[host][:port] برای اتصالات وب‌سوکت روی TLS شنود می‌کند (پورت پیش‌فرض: 443)
  • ws://localhost[:port] برای اتصالات وب‌سوکت متنی شنود می‌کند (پورت پیش‌فرض: 80، میزبان باید "localhost" باشد)
  • ws+insecure://[host][:port] برای اتصالات وب‌سوکت متنی شنود می‌کند (پورت پیش‌فرض: 80)
  • ws+unix://<path> برای اتصالات وب‌سوکت متنی روی یک سوکت دامنه یونیکس شنود می‌کند
  • ident://[host][:port] برای اتصالات ident متنی شنود می‌کند (پورت پیش‌فرض: 113)
  • http+prometheus://localhost:<port> برای اتصالات متنی HTTP شنود کرده و معیارهای پرومتئوس (Prometheus) را ارائه می‌دهد (میزبان باید "localhost" باشد)
  • http+pprof://localhost:<port> برای اتصالات متنی HTTP شنود کرده و داده‌های پروفایل زمان اجرای pprof را ارائه می‌دهد (میزبان باید "localhost" باشد). برای اطلاعات بیشتر، ببینید: https://pkg.go.dev/net/http/pprof.
  • unix+admin://[path] روی یک سوکت دامنه یونیکس برای اتصالات مدیریتی، مانند sojuctl شنود می‌کند (مسیر پیش‌فرض: /run/soju/admin)

در صورت حذف طرح‌واره (scheme)، مقدار "ircs" فرض می‌شود. در صورت مشخص شدن چندین دستورالعمل listen، برنامه soju روی تک‌تک آن‌ها شنود خواهد کرد.

hostname <name>

نام میزبان سرور (پیش‌فرض: نام میزبان سیستم).

این گزینه باید روی یک نام دامنه کاملاً معین (FQDN) تنظیم شود.

title <title>

عنوان سرور. زمانی که کلاینت‌ها شبکه مشخصی را انتخاب نکرده باشند، این مقدار به عنوان مقدار ISUPPORT NETWORK ارسال می‌شود.

tls <cert> <key>

فعال‌سازی پشتیبانی از TLS. فایل‌های گواهی و کلید باید دارای کدگذاری PEM باشند.

db <driver> <source>

تنظیم مکان پایگاه‌داده برای ذخیره‌سازی کاربران، شبکه‌ها و کانال‌ها. به صورت پیش‌فرض، یک پایگاه‌داده sqlite3 در مسیر "./soju.db" باز می‌شود.

درایورهای پشتیبانی‌شده:

  • درایور sqlite3 انتظار دارد که source مسیری به فایل SQLite باشد
  • درایور postgres انتظار دارد که source فهرستی از پارامترهای key=value با جداکننده فاصله باشد، مانند db postgres "host=/run/postgresql dbname=soju". توجه داشته باشید که مقدار پیش‌فرض sslmode برابر با require است. برای اطلاعات بیشتر درباره رشته‌های اتصال، ببینید: https://pkg.go.dev/github.com/lib/pq#hdr-Connection_String_Parameters.

message-store <driver> [source]

تنظیم مکان پایگاه‌داده برای پیام‌های IRC. به صورت پیش‌فرض، از db استفاده می‌شود.

درایورهای پشتیبانی‌شده:

  • درایور db پیام‌ها را در پایگاه‌داده ذخیره می‌کند. برای افزایش سرعت پرس‌وجوهای جستجو، از یک نمایه جستجوی تمام‌متن استفاده می‌شود.
  • درایور fs پیام‌ها را روی دیسک، با همان فرمت ZNC ذخیره می‌کند. پارامتر source الزامی است و مسیر دایرکتوری ریشه برای پایگاه‌داده می‌باشد. این فرمت روی دیسک با اتلاف داده (lossy) همراه است: برخی پیام‌های IRCv3 (مانند TAGMSG) و تمام برچسب‌های پیام نادیده گرفته می‌شوند.
  • درایور memory پیام‌ها را در حافظه ذخیره می‌کند. برای هر کانال/کاربر، تنها ۴ هزار پیام آخر در حافظه نگه داشته شده و پیام‌های قدیمی‌تر حذف می‌شوند. این درایور بسیار پایه بوده و از قابلیت‌هایی مانند افزونه chathistory و جستجو پشتیبانی نمی‌کند.

(دستورالعمل log یک نام مستعار منسوخ‌شده برای این گزینه است.)

file-upload <driver> [source]

تنظیم مکان پایگاه‌داده برای فایل‌های بارگذاری‌شده.

بارگذاری فایل نیازمند راه‌اندازی یک شنونده HTTP است (به شناسه‌های URI نوع https:// و http+insecure:// در دستورالعمل listen مراجعه کنید).

درایورهای پشتیبانی‌شده:

  • درایور fs فایل‌های بارگذاری‌شده را روی دیسک ذخیره می‌کند. مقدار source الزامی است.
  • درایور http فایل‌های بارگذاری‌شده را از طریق یک سرویس خارجی HTTP ذخیره می‌کند. مقدار source الزامی است و باید یک نشانی اینترنتی HTTP باشد. هنگام دریافت فایل، soju یک درخواست HTTP POST به آن نشانی ارسال می‌کند و فایل را همان‌طور که هست در بدنه درخواست HTTP می‌فرستد؛ همچنین نام کاربری بارگذار در soju را در هدر Soju-Username ارسال می‌نماید. سرور HTTP در صورت موفقیت باید با کد وضعیت HTTP 201 پاسخ دهد و هدر Location روی نشانی فایل بارگذاری‌شده تنظیم شده باشد.

http-origin <patterns...>

فهرست مبداهای (origins) مجاز HTTP برای شنوندگان وب‌سوکت. پارامترها به عنوان الگوهای شل تفسیر می‌شوند، به glob(7) مراجعه کنید.

به صورت پیش‌فرض، فقط میزبان درخواست مجاز است. از این دستورالعمل برای فعال‌سازی وب‌سوکت‌های چندمبدایی (cross-origin WebSockets) استفاده کنید.

http-ingress <url>

نشانی اینترنتی خارجی که شنوندگان HTTPS روی آن در دسترس قرار می‌گیرند.

به صورت پیش‌فرض، این مقدار https://<hostname> است.

accept-proxy-ip <cidr...>

مجاز ساختن نشانی‌های IP مشخص‌شده برای عمل به عنوان پراکسی. پراکسی‌ها قابلیت بازنویسی نشانی‌های اتصال دوردست و محلی را دارند (از طریق پروتکل PROXY، فیلد هدر Forwarded در HTTP تعریف‌شده در RFC 7239، یا فیلدهای هدر X-Forwarded-* در HTTP). نام ویژه "localhost" نشانی‌های لوپ‌بک 127.0.0.0/8 و ::1/128 را می‌پذیرد.

به صورت پیش‌فرض، تمامی نشانی‌های IP رد می‌شوند.

max-user-networks <limit>

حداکثر تعداد شبکه‌های فعال برای هر کاربر. به صورت پیش‌فرض، هیچ محدودیتی وجود ندارد.

motd <path>

مسیر فایل MOTD (پیام روز). پیام MOTD باونسر به کلاینت‌هایی که مقید به شبکه خاصی نیستند ارسال می‌شود. به صورت پیش‌فرض، هیچ MOTD ارسال نمی‌شود.

upstream-user-ip <cidr...>

فعال‌سازی نشانی‌های IP اختصاصی به ازای هر کاربر. یک محدوده IPv4 و/یا یک محدوده IPv6 می‌تواند در قالب نمادگذاری CIDR مشخص شود. از هر محدوده، یک نشانی IP به هر کاربر اختصاص داده شده و به عنوان نشانی مبدا هنگام اتصال به شبکه بالادستی استفاده خواهد شد.

این گزینه می‌تواند برای جلوگیری از مسدود شدن کل باونسر در یک شبکه بالادستی به دلیل فعالیت یک کاربر مخرب مفید باشد.

disable-inactive-user <duration>

غیرفعال کردن کاربران غیرفعال پس از مدت زمان مشخص‌شده.

کاربر زمانی غیرفعال محسوب می‌شود که آخرین اتصال فرودستی (downstream) او بسته شود.

مدت زمان، یک عدد اعشاری مثبت است که به دنبال آن واحد "d" (روز) می‌آید. برای نمونه، "30d" کاربران را ۳۰ روز پس از آخرین قطع اتصالشان از باونسر غیرفعال می‌کند.

enable-user-on-auth true|false

فعال کردن کاربران هنگام احراز هویت موفقیت‌آمیز.

این گزینه می‌تواند همراه با disable-inactive-user برای غیرفعال‌سازی و فعال‌سازی مجدد و یکپارچه کاربران در دوره‌های طولانی عدم فعالیت استفاده شود.

هنگام استفاده از احراز هویت خارجی (مانند auth oauth2)، کاربران باونسر پس از احراز هویت موفق به صورت خودکار ایجاد می‌شوند.

auth <driver> ...

تعیین روش احراز هویت. به صورت پیش‌فرض از احراز هویت داخلی استفاده می‌شود.

درایورهای پشتیبانی‌شده:

auth internal

استفاده از احراز هویت داخلی.
auth http <url>
استفاده از احراز هویت پایه خارجی HTTP (Basic Authentication). یک درخواست HTTP به نشانی داده‌شده ارسال شده و اطلاعات کاربری را در هدر Authorization Basic ارسال می‌کند. اطلاعات کاربری با دریافت کد وضعیت HTTP 200 معتبر در نظر گرفته می‌شود؛ با دریافت HTTP 403 نامعتبر تلقی شده؛ و هر کد خطای دیگری به معنای وقوع خطا است.
auth oauth2 <url>
استفاده از احراز هویت خارجی OAuth 2.0. نشانی سرور مجوزدهی (Authorization Server) باید ارائه شود. شناسه کلاینت (Client ID) و رمز کلاینت (Client Secret) را می‌توان به عنوان نام کاربری و گذرواژه در نشانی اینترنتی قرار داد. سرور مجوزدهی باید از متادیتای سرور مجوزدهی OAuth 2.0 (RFC 8414) و درون‌نگری توکن OAuth 2.0 (RFC 7662) پشتیبانی کند.
auth pam
استفاده از احراز هویت PAM.

برنامه soju یک سرویس IRC به نام BouncerServ را برای مدیریت باونسر ارائه می‌دهد. دستورات را می‌توان از طریق پیام‌های خصوصی معمولی ارسال کرد (/msg BouncerServ <command> [args...]). دستورات را می‌توان به شکل کامل یا مختصر نوشت، برای نمونه network را می‌توان به صورت net یا تنها n خلاصه کرد.

دستورات بر اساس قوانین شل POSIX تجزیه می‌شوند. به‌ویژه، کلمات می‌توانند درون نقل‌قول قرار گیرند (تکی یا دوتایی) و یک بک‌اسلش کاراکتر بعدی را اسکیپ می‌کند.

help [command]

نمایش فهرستی از دستورات. اگر command مشخص شده باشد، پیام راهنمای آن دستور نمایش داده می‌شود.

network create -addr <addr> [options...]

اتصال به یک شبکه جدید در نشانی addr. گزینه -addr الزامی است.

پارامتر addr از چندین نوع اتصال پشتیبانی می‌کند:

  • [ircs://]<host>[:port] با استفاده از TLS روی TCP متصل می‌شود
  • irc+insecure://<host>[:port] با استفاده از TCP متنی و بدون رمزنگاری متصل می‌شود
  • irc+unix:///<path> به یک سوکت یونیکس متصل می‌شود

برای نمونه، جهت اتصال به Libera Chat:

net create -addr irc.libera.chat

سایر گزینه‌ها عبارتند از:

-name <name>

نام کوتاه شبکه. از این نام به جای addr برای اشاره به شبکه استفاده خواهد شد.

-username <username>

اتصال با نام کاربری مشخص‌شده. به صورت پیش‌فرض، از نام مستعار (nickname) استفاده می‌شود.

-pass <pass>

اتصال با گذرواژه سرور مشخص‌شده.

-realname <realname>

اتصال با نام واقعی (real name) مشخص‌شده. به صورت پیش‌فرض، در صورت تنظیم بودن از نام واقعی حساب کاربری استفاده می‌شود، در غیر این صورت از نام مستعار شبکه استفاده خواهد شد.

-certfp <fingerprint>

به جای استفاده از مراجع صدور گواهی (CA) برای بررسی گواهی TLS سرور، بررسی می‌کند که آیا گواهی سرور با اثرانگشت (fingerprint) ارائه‌شده مطابقت دارد یا خیر. از این گزینه می‌توان برای اتصال به سرورهایی با گواهی‌های خودامضا استفاده کرد. قالب اثرانگشت SHA512 است. رشته خالی اثرانگشت‌های قبلی را حذف می‌کند.

برای دریافت اثرانگشت گواهی یک سرور IRC می‌توان از دستور زیر استفاده کرد:

openssl s_client -connect irc.example.org:6697 -verify_quiet </dev/null | openssl x509 -fingerprint -sha512 -noout -in /dev/stdin

-nick <nickname>

اتصال با نام مستعار مشخص‌شده. به صورت پیش‌فرض، از نام کاربری حساب استفاده می‌شود.

-auto-away true|false

فعال یا غیرفعال کردن قابلیت غیبت خودکار (auto-away). در صورت فعال بودن، هنگامی که همه کلاینت‌ها از باونسر قطع شوند، کاربر به عنوان غایب علامت‌گذاری می‌شود. به صورت پیش‌فرض، auto-away فعال است.

-enabled true|false

فعال یا غیرفعال کردن شبکه. در صورت غیرفعال بودن شبکه، باونسر به آن متصل نخواهد شد. به صورت پیش‌فرض، شبکه فعال است.

-ignore-limit true|false

نادیده گرفتن محدودیت حداکثر شبکه‌ها برای این دستور. تنها کاربران مدیر می‌توانند محدودیت را نادیده بگیرند.

-connect-command <command>

ارسال رشته نقل‌قول‌شده مشخص به عنوان یک دستور خام IRC بلافاصله پس از اتصال به سرور. در صورتی که سرور از SASL پشتیبانی نکند، می‌توان از این گزینه برای احراز هویت (identify) در یک حساب کاربری استفاده کرد.

برای نمونه، جهت احراز هویت در NickServ، می‌توان از دستور زیر استفاده کرد:

"PRIVMSG NickServ :IDENTIFY <password>"

این گزینه می‌تواند چندین بار برای ارسال چندین پیام IRC مشخص شود. برای پاک کردن همه دستورات، آن را روی رشته خالی تنظیم کنید.

network update [name] [options...]

به‌روزرسانی یک شبکه موجود. گزینه‌ها مشابه دستور network create هستند.

هنگام اجرای این دستور، soju اتصال شبکه را قطع کرده و مجدداً متصل می‌شود.

اگر name مشخص نشود، شبکه فعلی به‌روزرسانی خواهد شد.

network delete [name]

قطع اتصال و حذف یک شبکه.

اگر name مشخص نشود، شبکه فعلی حذف خواهد شد.

network quote [name] <command>

ارسال یک خط خام IRC همان‌طور که هست به یک شبکه.

اگر name مشخص نشود، دستور به شبکه فعلی ارسال می‌شود.

network status

نمایش فهرستی از شبکه‌های ذخیره‌شده و وضعیت فعلی آن‌ها.

channel status [options...]

نمایش فهرستی از کانال‌های ذخیره‌شده و وضعیت فعلی آن‌ها.

گزینه‌ها:

-network <name>

تنها نمایش کانال‌های مربوط به شبکه مشخص‌شده. به صورت پیش‌فرض، فقط کانال‌های موجود در شبکه فعلی نمایش داده می‌شوند.

channel create <name> [options...]

پیوستن به یک کانال جدید.

پیوستن به یک کانال معمولاً باید با یک دستور ساده join از طرف کلاینت انجام شود، اما در صورت استفاده همراه با user run، این دستور می‌تواند برای وارد کردن کاربری دیگر به یک کانال استفاده شود.

گزینه‌ها عبارتند از:

-detached true|false

متصل (attach) یا جدا (detach) کردن این کانال.

یک کانال جداشده (detached) پیوسته باقی می‌ماند اما توسط باونسر پنهان می‌شود. این قابلیت به عنوان نمونه برای جمع‌آوری گزارش‌ها و پیام‌های هایلایت در کانال‌های کم‌اهمیت یا پرتردد مفید است.

-relay-detached <mode>

تعیین زمان بازپخش پیام‌های کانال‌های جداشده به کاربر با یک اعلان BouncerServ NOTICE.

حالت‌ها عبارتند از:

message

بازپخش هر پیامی از این کانال در هنگام جدا بودن.

highlight

بازپخش تنها پیام‌هایی که در هنگام جدا بودن به شما اشاره می‌کنند.

none

عدم بازپخش هرگونه پیام از این کانال در هنگام جدا بودن.

default

در حال حاضر مشابه highlight است. این رفتار پیش‌فرض است.

-reattach-on <mode>

تعیین زمان اتصال خودکار مجدد (reattach) به کانال‌های جداشده.

حالت‌ها عبارتند از:

message

اتصال مجدد به این کانال به محض دریافت هر پیامی.

highlight

اتصال مجدد به این کانال به محض دریافت هر پیامی که به شما اشاره می‌کند.

none

عدم اتصال خودکار مجدد به این کانال در هر حالتی.

default

در حال حاضر مشابه none است. این رفتار پیش‌فرض است.

-detach-after <duration>

جداسازی خودکار این کانال پس از سپری شدن مدت زمان مشخص‌شده بدون دریافت هرگونه پیامی مطابق با -detach-on.

نمونه مقادیر مدت زمان: 1h30m، 30s، 2.5h.

تنظیم این مقدار روی 0 این رفتار را غیرفعال می‌کند، یعنی این کانال هرگز به صورت خودکار جدا نخواهد شد. این رفتار پیش‌فرض است.

-detach-on <mode>

تعیین زمان بازنشانی تایمر جداسازی خودکار مورد استفاده توسط -detach-after، که باعث می‌شود قبل از جداسازی، دوباره به اندازه مدت زمان تعیین‌شده منتظر بماند. پیوستن، اتصال مجدد، ارسال پیام، یا تغییر هر گزینه کانال علاوه بر پیام‌های مشخص‌شده توسط حالت، تایمر را بازنشانی می‌کند.

حالت‌ها عبارتند از:

message

دریافت هر پیامی از این کانال، تایمر جداسازی خودکار را بازنشانی می‌کند.

highlight

دریافت هر پیامی از این کانال که به شما اشاره می‌کند، تایمر جداسازی خودکار را بازنشانی می‌کند.

none

دریافت پیام‌ها از این کانال تایمر جداسازی خودکار را بازنشانی نخواهد کرد. با این حال، ارسال پیام یا پیوستن به کانال همچنان تایمر را بازنشانی می‌کند.

default

در حال حاضر مشابه message است. این رفتار پیش‌فرض است.

channel update <name> [options...]

به‌روزرسانی گزینه‌های یک کانال موجود. گزینه‌ها مشابه دستور network create هستند.

channel delete <name>

ترک و فراموش کردن یک کانال.

certfp generate [options...]

تولید گواهی خودامضا و استفاده از آن برای احراز هویت (از طریق SASL EXTERNAL).

به صورت پیش‌فرض یک کلید خصوصی ۳۰۷۲ بیتی RSA تولید می‌کند.

توجه داشته باشید که برای استفاده از گواهی تازه‌تولیدشده، اتصال مجدد به شبکه بالادستی الزامی است.

گزینه‌ها عبارتند از:

-network <name>

انتخاب یک شبکه. به صورت پیش‌فرض، شبکه فعلی (در صورت وجود) انتخاب می‌شود.

-key-type <type>

الگوریتم کلید خصوصی مورد استفاده. مقادیر معتبر عبارتند از: rsa، ecdsa و ed25519. گزینه ecdsa از منحنی NIST P-521 استفاده می‌کند.

-bits <bits>

اندازه کلید RSA برای تولید. برای سایر انواع کلید نادیده گرفته می‌شود.

certfp fingerprint [options...]

نمایش اثرانگشت‌های SHA-1 و SHA-256 برای گواهی‌ای که در حال حاضر با شبکه استفاده می‌شود.

گزینه‌ها عبارتند از:

-network <name>

انتخاب یک شبکه. به صورت پیش‌فرض، شبکه فعلی (در صورت وجود) انتخاب می‌شود.

sasl status [options...]

نمایش وضعیت فعلی SASL.

گزینه‌ها عبارتند از:

-network <name>

انتخاب یک شبکه. به صورت پیش‌فرض، شبکه فعلی (در صورت وجود) انتخاب می‌شود.

sasl set-plain [options...] <username> <password>

تنظیم اطلاعات کاربری SASL PLAIN.

توجه داشته باشید که برای اعمال تنظیمات جدید، اتصال مجدد به شبکه بالادستی الزامی است.

گزینه‌ها عبارتند از:

-network <name>

انتخاب یک شبکه. به صورت پیش‌فرض، شبکه فعلی (در صورت وجود) انتخاب می‌شود.

sasl reset [options...]

غیرفعال‌سازی احراز هویت SASL و حذف اطلاعات کاربری ذخیره‌شده.

توجه داشته باشید که برای اعمال تنظیمات جدید، اتصال مجدد به شبکه بالادستی الزامی است.

گزینه‌ها عبارتند از:

-network <name>

انتخاب یک شبکه. به صورت پیش‌فرض، شبکه فعلی (در صورت وجود) انتخاب می‌شود.

user status [username]

نمایش فهرستی از کاربران این سرور. تنها مدیران می‌توانند این اطلاعات را پرس‌وجو کنند.

اگر username مشخص شود، آمار تنها برای این کاربر نمایش داده می‌شود.

user create -username <username> -password <password> [options...]

ایجاد یک کاربر جدید soju. تنها کاربران مدیر می‌توانند حساب‌های کاربری جدید ایجاد کنند. فلگ‌های -username و -password الزامی هستند.

گزینه‌ها عبارتند از:

-username <username>

نام کاربری باونسر. این مقدار پس از ایجاد کاربر قابل تغییر نیست.

-password <password>

گذرواژه باونسر.

-disable-password

غیرفعال‌سازی احراز هویت با گذرواژه. کاربر قادر به ورود نخواهد بود.

-admin true|false

ارتقای کاربر جدید به مدیر سیستم.

-nick <nick>

تنظیم نام مستعار (nickname) کاربر. در صورت عدم تنظیم نام مستعار برای یک شبکه، از این مقدار به عنوان جایگزین استفاده می‌شود.

-realname <realname>

تنظیم نام واقعی (realname) کاربر. در صورت عدم تنظیم نام واقعی برای یک شبکه، از این مقدار به عنوان جایگزین استفاده می‌شود.

-enabled true|false

فعال یا غیرفعال کردن کاربر. اگر کاربر غیرفعال باشد، باونسر به هیچ‌یک از شبکه‌های او متصل نخواهد شد و اتصالات فرودستی فوراً بسته خواهند شد. به صورت پیش‌فرض، کاربران فعال هستند.

-max-networks <max-networks>

تعیین محدودیت برای تعداد شبکه‌های فعالی که این کاربر می‌تواند استفاده کند. مقدار 0 به معنای عدم دسترسی به شبکه و مقدار -1 به معنای پیروی از مقدار پیکربندی سراسری max-user-networks است.

user update [username] [options...]

به‌روزرسانی یک کاربر. گزینه‌ها مشابه دستور user create هستند.

اگر username ذکر نشود، کاربر فعلی به‌روزرسانی می‌شود. تنها مدیران می‌توانند سایر کاربران را به‌روزرسانی کنند.

همه فلگ‌ها در همه زمینه‌ها معتبر نیستند:

  • فلگ -username هرگز معتبر نیست؛ نام‌های کاربری تغییرناپذیرند.
  • فلگ‌های -nick و -realname تنها هنگام به‌روزرسانی کاربر فعلی معتبر هستند.
  • فلگ‌های -admin، -enabled و -max_networks تنها هنگام به‌روزرسانی کاربری دیگر معتبر هستند.

user delete <username> [confirmation token]

حذف یک کاربر soju.

تنها مدیران می‌توانند کاربران دیگر را حذف کنند.

user run <username> <command...>

اجرای یک دستور به عنوان کاربری دیگر.

تنها مدیران می‌توانند از این دستور استفاده کنند.

server status

نمایش آمارهای مربوط به باونسر. تنها مدیران می‌توانند این اطلاعات را پرس‌وجو کنند.

server notice <message>

همگانی کردن یک اعلان (notice). تمامی کاربران متصل فعلی باونسر، پیام را از سرویس ویژه BouncerServ دریافت خواهند کرد. تنها مدیران می‌توانند یک اعلان را همگانی کنند.

server debug <true|false>

فعال/غیرفعال کردن گزارش‌گیری اشکال‌زدایی (این کار اطلاعات حساسی را فاش می‌کند). این تنظیم هر مقداری را که در -debug به soju داده شده باشد بازنویسی می‌کند.

توسعه و نگهداری توسط Simon Ser <contact@emersion.fr>، با همکاری سایر مشارکت‌کنندگان پروژه‌های متن‌باز. برای اطلاعات بیشتر درباره توسعه soju، ببینید: https://soju.im.

sojuctl(1)

2025-11-13