الأوامر
نوعان من الأوامر: السكربتات في scripts/، التي تهيئ المضيف والعقدة والعميل، وcasty، وهو العميل
نفسه. كل سكربت وكل أمر يقبل --help ويطبع قائمة خياراته كاملة.
البدء السريع
Section titled “البدء السريع”تحتاج إلى fid لحساب Farcaster تجريبي ومحفظة تحمل عنوان الحفظ الخاص به؛ ولعقدة جديدة أيضًا رمز Hetzner أو بيانات اعتماد AWS أو مضيف Linux بذاكرة 16 GB وقرص فارغ 2 TB.
الحساب الذي أُنشئ في تطبيق Farcaster يحفظ هذا العنوان داخل التطبيق لا في محفظة المتصفح: اعرض عبارة الاسترداد في التطبيق على هاتفك واستوردها مرة واحدة إلى MetaMask أو Rabby، أو أدخلها في ./bin/casty init في طرفيتك الخاصة بدلًا من casty web.
# a new node of your owngit clone https://github.com/castyfun/casty.git && cd castyexport HCLOUD_TOKEN=<token> # Hetzner; or AWS credentials, or 0-provision.sh --host user@ip./scripts/0-provision.sh # (0) compute: a server, a 2 TB volume, a firewall./scripts/1-node.sh # (1) a Snapchain read node, synced (hours), and a tunnel./scripts/2-client.sh --fid <your fid> # (2) a client, ./bin/casty, reading from your node./bin/casty web # open the link; under "you": "add a key with your wallet"./bin/casty feed # read; ./bin/casty cast "hello" writes./scripts/0-provision.sh --destroy # when you are done: server, volume and firewall goأو من دون عقدة خاصة بك، على عقدة تعمل بالفعل:
# casty on a node that already runsgit clone https://github.com/castyfun/casty.git && cd casty./scripts/2-client.sh --node https://snap.farcaster.xyz:3381 --fid <your fid>./bin/casty web # open the link; under "you": "add a key with your wallet"./bin/casty feed # read; ./bin/casty cast "hello" writesالسكربتات
Section titled “السكربتات”| الأمر | ما يفعله |
|---|---|
./scripts/deploy.sh |
يشغّل الخطوات 0 و1 و2 بالترتيب، ومع --domain أو --tailscale يضع الصفحة على المضيف. يمكن إعادة تشغيله بأمان: يتابع من حيث توقف التشغيل السابق. |
./scripts/0-provision.sh |
ينشئ خادمًا وقرص بيانات بسعة 2 TB وجدار حماية على Hetzner أو AWS، بحسب بيانات الاعتماد المضبوطة، ويكتب node.env. يسأل قبل إنشاء أي شيء يكلّف مالًا. |
./scripts/0-provision.sh --host user@ip |
يستخدم جهازًا تملكه من قبل: لا ينشئ شيئًا، ويفحص الذاكرة والقرص وDocker والساعة عبر SSH. |
./scripts/0-provision.sh --dry-run |
يطبع كل استدعاء للمزوّد بدل تنفيذه. |
./scripts/0-provision.sh --https |
يفتح أيضًا المنفذين 80 و443، للصفحة على المضيف. |
./scripts/0-provision.sh --destroy |
يحذف الخادم، ثم قرصه، ثم جدار حمايته. |
./scripts/1-node.sh |
يفحص المضيف، ويثبّت Snapchain في ~/snapchain، ويشغّله، وينتظر مزامنته ويفتح النفق. |
./scripts/1-node.sh status [--wait] |
مقدار تأخر كل شريحة؛ ومع --wait يستطلع إلى أن تلحق العقدة بالشبكة. |
./scripts/1-node.sh tunnel [--stop] |
يمرّر المنفذين المحليين 3381 و3383 إلى العقدة عبر SSH، فيصل إليها casty على 127.0.0.1:3381. |
./scripts/1-node.sh logs [casty] |
يتابع سجلات العقدة، أو سجلات casty على المضيف. |
./scripts/1-node.sh upgrade |
يجلب أحدث إصدار من Snapchain، أو --release <version>، ويعيد تشغيل العقدة. |
./scripts/1-node.sh serve --domain <name> |
يشغّل casty serve على المضيف خلف Caddy بشهادة من Let’s Encrypt؛ ومع --tailscale يقدّمه على شبكة tailnet الخاصة بك بدلًا من ذلك. |
./scripts/1-node.sh down |
يوقف العقدة، وcasty على المضيف إن كان يعمل هناك. |
./scripts/2-client.sh |
ينزّل casty لمنصتك، ويتحقق منه مقابل المجاميع الاختبارية للإصدار، ويشغّل casty doctor، ثم casty init. |
./scripts/2-client.sh --fid <fid> |
يهيئ دون عبارة البذرة؛ ثم تضيف المفتاح بمحفظتك في casty web. |
./scripts/2-client.sh --from-source |
يبني casty هنا باستخدام Node 22.12 أو أحدث بدل تنزيله. |
رموز خروج السكربتات: 0 تم، 1 غير متزامن أو لم تُجب العقدة، 2 وسائط خاطئة، 3 متطلب مسبق مفقود، 4 فشل المزوّد أو SSH أو تنزيل، 5 المضيف لا يفي بالمتطلبات.
خيارات لكل أمر
Section titled “خيارات لكل أمر”| الخيار | ما يفعله |
|---|---|
--node <url> |
واجهة HTTP API للعقدة. الافتراضي http://127.0.0.1:3381، وهو النفق من الخطوة 1. يتذكر casty init العقدة التي يُعطاها للأوامر اللاحقة. |
--json |
يطبع النتيجة بصيغة JSON، للسكربتات. |
--quiet |
يطبع النتيجة فقط، دون ملاحظات التقدم. |
--config <dir> |
المكان الذي يحفظ فيه casty إعداداته ومفاتيحه. الافتراضي ~/.config/casty. |
التهيئة
Section titled “التهيئة”| الأمر | ما يفعله |
|---|---|
casty doctor |
يتحقق من أن العقدة تُجيب، ومقدار تأخرها، وساعتك مقارنة بساعة العقدة، وما هو مهيأ محليًا. |
casty init --fid <fid> |
يهيئ لحسابك دون عبارة البذرة ودون مفتاح؛ ثم يضيف casty web مفتاحًا بمحفظتك. |
casty init |
يضيف مفتاح تطبيق بلا رسوم غاز من عبارة البذرة، تُكتب في مُدخل مخفي ولا تُحفظ أبدًا. --ttl 90d لأطول مدة صلاحية، و--address-index <n> لحساب آخر من العبارة نفسها. |
casty whoami |
معرّف fid الخاص بك، واسم المستخدم، وعنوان الحفظ (custody address)، ومفتاح التطبيق النشط، والتخزين. |
casty key list |
المفاتيح المسجلة لمعرّف fid الخاص بك، مع تمييز المفاتيح التي يحملها casty هذا. |
casty key revoke --self |
يزيل مفتاح casty هذا، بتوقيع المفتاح نفسه. |
casty key revoke <key> |
يزيل أي مفتاح لمعرّف fid الخاص بك؛ ويطلب عبارة البذرة. |
القراءة
Section titled “القراءة”| الأمر | ما يفعله |
|---|---|
casty feed |
أحدث المنشورات منك ومن الحسابات التي تتابعها، مرقّمة. تضيّقها --limit و--since 24h و--no-replies و--channel /name و--only-app و--exclude-app؛ و--fids 2,@alice يقرأ حسابات أخرى. |
casty mentions |
المنشورات التي تذكرك والردود على منشوراتك، الأحدث أولًا. |
casty thread <cast> |
منشور، وما يرد عليه، وردوده. |
casty clients [--fid <fid>] |
مفاتيح التطبيق لحساب ما وأي تطبيق طلب كلًّا منها. |
casty storage [--fid <fid>] |
وحدات التخزين ومدى امتلاء كل مخزن رسائل. |
casty node status |
مزامنة العقدة فقط؛ رمز الخروج 1 إلى أن تلحق بالشبكة. |
الكتابة
Section titled “الكتابة”| الأمر | ما يفعله |
|---|---|
casty cast "<text>" |
ينشر منشورًا: حتى 320 بايت، أو 1024 كمنشور طويل. --reply <cast> و--channel /name و--embed <url> (مرتين على الأكثر)؛ وتصبح @names إشارات ذِكر. |
casty reply <cast> "<text>" |
يرد على منشور. |
casty delete <cast> |
يحذف أحد منشوراتك. |
casty like <cast> / casty unlike <cast> |
يسجّل إعجابًا بمنشور، أو يسحب الإعجاب. |
casty recast <cast> / casty unrecast <cast> |
يعيد نشر منشور لمتابعيك، أو يسحب إعادة النشر. |
casty follow <fid or @name> / casty unfollow |
يتابع حسابًا، أو يتوقف عن متابعته. |
كل كتابة تذهب إلى عقدتك، التي تمرّرها إلى الشبكة؛ وينتظر casty إلى أن يتمكن من قراءة الرسالة مجددًا، ويخبرك إن لم يتمكن.
في المتصفح
Section titled “في المتصفح”| الأمر | ما يفعله |
|---|---|
casty web |
التغذية وسلاسل المحادثة والإشارات والملفات الشخصية ومربع كتابة على http://127.0.0.1:3390، يُقرن بالرابط الذي يطبعه. --listen 0.0.0.0:3390 يسمح بدخول هاتف على الشبكة نفسها؛ و--read-only يُبقي المفتاح مقفلًا. |
casty serve |
الصفحة نفسها فوق فهرس للتغذية، مع إشعارات الدفع، لمضيف العقدة خلف HTTPS. يثبّتها 1-node.sh serve. |
تسمية منشور
Section titled “تسمية منشور”حيثما يقبل أمر ما <cast>، يصلح أي مما يلي:
- رقمه في آخر قائمة عرضها
casty feedأوmentionsأوthreadأو الصفحة:casty like 2؛ <fid>:<0x hash>:casty like 2000000001:0x1a2b...؛- رابطه على farcaster.xyz.
رموز الخروج
Section titled “رموز الخروج”| الرمز | المعنى |
|---|---|
| 0 | تم. |
| 1 | غير متزامن (casty node status)، أو فشل آخر. |
| 2 | وسائط خاطئة. |
| 3 | رفضت العقدة الرسالة، أو لم تُدمج. |
| 4 | لا يمكن الوصول إلى العقدة. |
| 5 | مشكلة في الإعدادات أو مخزن المفاتيح أو عبارة البذرة. |
تسرد صفحة استكشاف الأخطاء وإصلاحها الرسائل وراء كل رمز وما يجب فعله.