
نرخبان
بنیانگذار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 نداشت.
- سند وضعیت پروژه شواهد تاریخدار نگه میدارد و صریحاً میگوید چه چیزی اثبات نشده؛ مثلاً ادعای «بدون قطعی» نمیکند.
