رفتن به محتوا

پروژه‌ها

محصولاتی که بنیان گذاشتم و ابزارهایی که ساختم؛ هرکدام با لینک سورس.

پروژه‌هایی که به آن‌ها افتخار می‌کنم

نرخبان

بنیان‌گذار

Nerkhbaan · ۲۰۲۶ — اکنون

فعال روی nerkhbaan.ir

پلتفرم قیمت طلا، ارز و رمزارز که بنیانش را گذاشتم؛ همراه با تاریخچه، هشدار قیمت و اپلیکیشن‌های وب، پنل مدیریت و دسکتاپ. هر قیمت زمان منبعش را نشان می‌دهد و به‌جای کهنه‌شدن، منقضی می‌شود.

اطلاعات کلیدی

نسخهٔ فعال
2.8.1
مسیر API
۱۱۷
جاب موفق CI
۱۵/۱۵
قانون هشدار
۸

سهم من

  • ساخت کل محصول: FastAPI، TimescaleDB، Redis، اپ وب و پنل مدیریت با React، اپ دسکتاپ با Electron و سایدکار فید با Go.
  • اداره‌کردن پروداکشن توسط خودم: Compose پشت Nginx، دو رپلیکای API، بکاپ و هشدارهای Prometheus.
  • CI روی هر پوش: تست یکپارچگی روی TimescaleDB، تست مرورگر و اسکن ایمیج با Trivy.
  • FastAPI
  • TimescaleDB
  • Redis
  • React
  • Electron
  • Go
  • Docker
  • Nginx
  • Prometheus
  • GitHub Actions
  • Trivy
یادداشت‌های مهندسی

مسئله

منابع قیمت قطع می‌شوند، تأخیر دارند و با هم اختلاف دارند. نمایش یک قیمت قدیمی به‌جای قیمت روز از نمایش ندادن بدتر است، و هر انتشار باید کاربران و تاریخچهٔ موجود را دست‌نخورده نگه دارد.

نقش من

بنیان‌گذار و تنها مهندس پروژه: API، مدل داده و مایگریشن‌ها، فرانت‌اندها، سایدکار Go، استک پروداکشن Compose، CI و مانیتورینگ.

رویکرد

  • CI روی هر پوش: بیلد قفل‌شدهٔ Node، تست‌های واحد Python، سایدکار Go، اعتبارسنجی Compose، تست‌های end-to-end مرورگر، اسکن امنیتی مخزن و اسکن Trivy برای هر ایمیج.
  • جاب‌های یکپارچگی روی TimescaleDB و Redis واقعی اجرا می‌شوند: مایگریشن‌ها باید idempotent و دارای checksum باشند و جابه‌جایی lease بین رپلیکاهای API تست می‌شود.
  • وابستگی‌های Python از روی lock فایل‌های دارای hash نصب و با pip-audit بررسی می‌شوند.

امنیت و پایداری

  • بررسی readiness علاوه بر زنده‌بودن پروسه، سلامت دیتابیس، Redis و قیمت‌ها را هم می‌سنجد. پورت 8000 API فقط داخلی است.
  • قوانین هشدار Prometheus: از دسترس خارج‌شدن API، قیمت ناموجود یا منقضی، توقف به‌روزرسانی، نرخ خطای منابع، dead letterها، صف عقب‌افتادهٔ ذخیره‌سازی و حافظهٔ Redis.
  • ورکرهای خارجی قیمت، رکوردهایی را که می‌فرستند امضا می‌کنند؛ سایدکار فید هیچ دسترسی به دیتابیس یا پنل مدیریت ندارد.
  • پنل مدیریت کوکی نشست جدا، محافظت CSRF، بررسی مجوز، احراز هویت مجدد و TOTP MFA دارد.

نتیجه

  • نسخهٔ 2.8.1 پیش از استقرار از هر ۱۵ جاب CI عبور کرد و ایمیج نهایی API هیچ آسیب‌پذیری HIGH یا CRITICAL نداشت.
  • سند وضعیت پروژه شواهد تاریخ‌دار نگه می‌دارد و صریحاً می‌گوید چه چیزی اثبات نشده؛ مثلاً ادعای «بدون قطعی» نمی‌کند.

دلفین

هم‌بنیان‌گذار

Dolphin CRM · ۲۰۲۶ — اکنون

نسخهٔ 2.40.55 · اکتبر ۲۰۲۶

یک CRM/ERP فارسی‌محور که هم‌بنیان‌گذارش هستم: سرنخ، پیش‌فاکتور، فاکتور، پرداخت، انبار، تلفن و خدمات پس از فروش در یک پنل راست‌به‌چپ زنده. هر نصب، استک ایزولهٔ خودش را دارد.

اطلاعات کلیدی

ماژول قابلیت
۴۰
تست خودکار
۳٬۵۱۰
نسخهٔ تگ‌دار
۵۷
نقش دیتابیس
۴

سهم من

  • مهندس ارشد اپلیکیشن Django: ۴۰ ماژول قابل فعال‌سازی و پنل راست‌به‌چپ با به‌روزرسانی زنده.
  • طراحی مدل استقرار: استک Compose ایزوله برای هر نصب، مانیفست قابلیت‌ها با امضای Ed25519 و چهار نقش PostgreSQL با حداقل دسترسی.
  • نسخه‌های تگ‌دار، اسکریپت استقرار با امکان بازگشت و بکاپ‌هایی که فقط پس از بازیابی آزمایشی معتبرند.
  • Django
  • Python
  • PostgreSQL
  • Docker
  • Nginx
  • Gunicorn
  • Asterisk
  • Selenium
  • GNU Bash
یادداشت‌های مهندسی

مسئله

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

نقش من

هم‌بنیان‌گذار و مهندس ارشد: اپلیکیشن، راه‌اندازی PostgreSQL، توپولوژی Compose، لبهٔ Nginx، اسکریپت‌های استقرار و ران‌بوک عملیات.

رویکرد

  • فعال‌بودن قابلیت‌ها از مانیفستی می‌آید که با کلید Ed25519 امضا شده و کلید خصوصی آن هرگز از دست صاحب پلتفرم خارج نمی‌شود. اگر مانیفست نباشد، دست‌کاری شده باشد یا امضای ناشناس داشته باشد، پروداکشن اجرا نمی‌شود.
  • چهار کاربر PostgreSQL با دسترسی‌های جدا: راه‌انداز، مالک مایگریشن، اپلیکیشن در حال اجرا و یک نقش فقط‌خواندنی برای بکاپ. جاب‌های یک‌باره (db-bootstrap → migrate → db-finalize) پیش از اجرای وب، دسترسی‌های دقیق را اعمال می‌کنند.
  • ایمیج‌ها با digest نوع sha256 ارجاع داده می‌شوند و از کامیت تگ‌دار ساخته می‌شوند، نه از فایل‌های در حال ویرایش.

امنیت و پایداری

  • deploy.sh ارتقای نیمه‌کاره را نمی‌پذیرد: بکاپ، مایگریشن، به‌روزرسانی دسترسی‌ها و بارگذاری مجدد Nginx به ترتیبی ثابت اجرا می‌شوند و با --rollback به ایمیج قبلی برمی‌گردد.
  • حالت write-stop در Nginx هنگام نگهداری، درخواست‌های POST/PUT/PATCH/DELETE را رد می‌کند و خواندن همچنان کار می‌کند.
  • بکاپ‌ها checksum دارند و در کانتینری ایزوله و بدون شبکه بازیابی می‌شوند؛ بکاپ فقط وقتی معتبر است که بازیابی شده باشد.
  • کانتینرها فقط‌خواندنی، بدون هیچ capability و با no-new-privileges اجرا می‌شوند.

نتیجه

  • نسخه‌های تگ‌دار با changelog برای هرکدام (نسخهٔ 2.40.55 در اکتبر ۲۰۲۶)؛ مخزن حدود ۳٬۵۱۰ تست خودکار دارد.
  • یک ران‌بوک واحد، نصب اولیه، به‌روزرسانی، بکاپ و بازیابی، بازگشت نسخه و واکنش به حادثه را پوشش می‌دهد.

پروژه‌های دیگر

  • Prometheus & Jira → Matrix bridges

    ورک‌فلوهای n8n · مانیتورینگ · ۲۰۲۵

    دو ورک‌فلوی n8n که هشدارهای Prometheus و به‌روزرسانی‌های Jira را به چت Matrix تیم می‌رسانند.

    • وب‌هوک‌های Alertmanager به پیام‌های رنگیِ فعال/برطرف‌شده با لینک به نمودار Prometheus تبدیل می‌شوند.
    • واگذاری‌ها و منشن‌های Jira به پیام مستقیم Matrix همان شخص می‌رسند.
    • توکن‌ها خودکار بررسی و تمدید می‌شوند و ارسال با تأخیر نمایی و jitter دوباره تلاش می‌کند.
  • Stackplore

    سرویس Go · چارت Helm · اتوماسیون و عملیات · ۲۰۲۶

    کاوشگر self-hosted برای سرویس‌های Docker و Kubernetes؛ در حال توسعه و هنوز پیش از نسخهٔ ۱٫۰.

    • توپولوژی، سلامت، لاگ، متریک و رویدادها پشت یک قرارداد OpenAPI نسخه‌دار.
    • API با Go همراه با مایگریشن‌های PostgreSQL و CI.
    • ایمیج‌های non-root، فایل Compose و چارت Helm.
  • Matrix User Manager

    ابزار ترمینالی Bash · اتوماسیون و عملیات · ۲۰۲۵

    منوی ترمینالی برای مدیریت کاربران سرور Synapse که روی Docker اجرا می‌شود.

    • کانتینرهای Synapse را خودش پیدا می‌کند و homeserver.yaml را می‌خواند.
    • با PostgreSQL یا SQLite کار می‌کند و هنگام نوشتن روی SQLite سرویس را امن متوقف و اجرا می‌کند.
    • بکاپ دیتابیس را هم شامل می‌شود.
  • LinSecGuard

    ابزار خط فرمان Bash · امنیت · ۲۰۲۵

    بررسی تعاملی امن‌سازی برای سرورهای لینوکس.

    • ورود root و پورت SSH، قوانین UFW و سرویس‌های در حال اجرا را بررسی می‌کند.
    • دسترسی‌های ناامن فایل‌ها و پورت‌های باز را پیدا می‌کند.
    • تلاش‌های ناموفق ورود و به‌روزرسانی‌های امنیتی معوق را گزارش می‌دهد.
  • EasyCert

    ابزار خط فرمان Bash · امنیت · ۲۰۲۵

    رابط تعاملی OpenSSL برای یک مرجع صدور گواهی (CA) محلی.

    • یک CA محلی و گواهی‌های wildcard یا زیردامنه می‌سازد.
    • کانتینر Nginx یا Traefik را برای بارگذاری گواهی‌ها ری‌استارت می‌کند.
  • CipherCert

    اپلیکیشن دسکتاپ · امنیت · ۲۰۲۶

    تحلیلگر دسکتاپ برای گواهی‌های TLS.

    • رابط Electron/React روی موتور FastAPI.
    • زنجیرهٔ گواهی و انقضا را بررسی می‌کند و به دامنه‌ها نمره می‌دهد.
    • تاریخچهٔ اسکن را در SQLite نگه می‌دارد.
  • SysTrack

    Bash · cron · مانیتورینگ · ۲۰۲۵

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

    • مصرف CPU، حافظه، دیسک و شبکه را دنبال می‌کند.
    • با عبور از آستانه، ایمیل هشدار می‌فرستد.
    • لاگ‌های خودش را می‌چرخاند.
  • Automated Backup Script

    ابزار خط فرمان Bash · اتوماسیون و عملیات · ۲۰۲۵

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

    • آرشیو tar یا zip را طبق زمان‌بندی cron می‌سازد.
    • اجراها را لاگ می‌کند و بکاپ‌های قدیمی‌تر از هفت روز را پاک می‌کند.
  • Clockwork OrangeHRM

    خط فرمان + دسکتاپ · اپلیکیشن · ۲۰۲۶

    گزارش حضور و غیاب و حقوق از OrangeHRM نصب‌شده روی سرور خود سازمان.

    • حضور و غیاب را مستقیم از دیتابیس OrangeHRM می‌خواند.
    • ساعت کاری و بازه‌های حقوقی را به CSV یا PDF خروجی می‌دهد.
    • یک ابزار خط فرمان Bash و یک اپ دسکتاپ Electron برای ویندوز.