حَامِد | tech
424 subscribers
218 photos
47 videos
10 files
252 links
قناة انشر فيها خواطر و نصائح برمجية ، تطورات السوق و تعليقات على مواضيع تقنية
Download Telegram
يا اخوان جزاكم الله خيرا


اعاني من حوالي اسبوع من مشاكل في النوم

حد عنده حل؟ يعني نوم متقطع و نوم متاخر و ربك المعين
كل مرة بتشغل:
sudo docker compose up -d --build

دوكر بيرجع يعمل build للصورة من جديد.
بس الفكرة المهمة إنو دوكر ذكي، بيخزن مراحل البناء (layers) ليخلي العملية أسرع بالمرة الجاية.

خليني بسطها شوي:

تخيل عندك Dockerfile فيه هيك خطوات:
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build

دوكر بيخزن نتيجة كل خطوة.
يعني إذا package-lock.json ما تغيّر، ما رح يعيد تحميل dependencies، وهاي أوفر عليك وقت كبير.

بس هالـ cache بياخد مساحة من الديسك.

هلا أنواع المساحة اللي بيستخدمها Docker:

1. Images

هاي الصور المبنية للتطبيق، مثل:

my-app
my-app-worker
postgres
nginx

إذا الصور قيد الاستخدام من containers شغالة، ما في شي ينحذف منها.

2. Containers

هاي النسخ اللي شغالة من الصور.
عادة حجمها صغير.

3. Volumes

هاي أهم نقطة.

هون بتنحفظ البيانات، مثل قاعدة البيانات (Postgres).
يعني بياناتك الفعلية موجودة هون.

لا تمسحها إلا إذا فاهم شو عم تعمل.

4. Build Cache

هاي ملفات مؤقتة بس لتسريع الـ build.

مثلا ممكن تلاقي:

Build Cache: 8GB

هاي مو بيانات مهمة، بس لتسريع الشغل.

ممكن تحذفها بأمان:
sudo docker builder prune -f

وهالشي ما بيأثر على التطبيق أبدا.

بعد التنظيف

ممكن يصير عندك:

Build Cache: 0B
Images: 2GB

يعني كل شي شغال طبيعي.

عادات منيحة بعد كل فترة

شوف استخدام المساحة:
sudo docker system df

نظف الكاش:
sudo docker builder prune -f

تنظيف أوسع (بحذر)
sudo docker system prune -f

لا تستخدم إلا إذا فاهم تماما
sudo docker system prune -a --volumes

لأن --volumes ممكن تمسح قاعدة البيانات وتخسر كل شي.

الخلاصة
الكاش مفيد للسرعة بس بيأخذ مساحة
حذفه آمن
أما الـ volumes فهي بياناتك الحقيقية، لا تقرب عليها بدون وعي
معلومات تفيدك حتى ما تخرب الدنيا في ال production
و عشان ما تحط اللوم على docker انه مطيرلك المساحة
البناء مع ال ai
https://dev.yorhel.nl/ncdu

فادني جدا في تنظيف الجهاز من المساحات الطايرة

zig btw
ترقبوا لشيء جميل جدا
حَامِد | tech
docker.zip
Production Infrastructure Stack

هذا مثال على بنية تحتية جاهزة للإنتاج، قوية وقابلة للتوسع، ومناسبة لأي تطبيق Full Stack باستخدام TypeScript مثل Next.js أو TanStack Start أو Remix.

الفكرة الأساسية هي فصل التطبيق عن الخدمات الحساسة مثل قاعدة البيانات والشبكة، حتى يصير عندك نظام مستقر وسهل التوسع.

Core Architecture
1. Application Layer

طبقة التطبيق مبنية باستخدام Docker Multi Stage مع Bun، والهدف هو سرعة البناء وتقليل حجم وعبء التشغيل.

يتم استخدام Docker cache لتسريع عملية build
استخدام lockfiles يضمن نفس النتيجة في كل مرة
NODE_ENV مضبوط على production في كل المراحل
تقدر تستخدم أي framework بسهولة فقط بتغيير build script
2. Networking Layer

إدارة الترافيك تتم باستخدام Traefik

دعم SSL تلقائي باستخدام Let's Encrypt
إعدادات أمان مثل read only filesystem و no new privileges
routing ديناميكي بدون إعادة تشغيل السيرفر
3. Data and State Layer

النظام يعتمد على خدمات قوية ومجربة:

PostgreSQL نسخة 17 مع إعدادات مخصصة للأداء مثل shared_buffers و work_mem
Redis يستخدم كـ cache و queue مع سياسة allkeys-lru
Meilisearch لمحرك بحث سريع ويدعم الأخطاء الإملائية
Sockudo سيرفر WebSocket منفصل للتعامل مع real time بدون ما يأثر على التطبيق الأساسي
Security
كل الخدمات داخل شبكة داخلية خاصة، ولا يوجد exposure مباشر للإنترنت
الوصول لقاعدة البيانات يتم عبر SSH tunnel وليس فتح ports
تحديد limits للذاكرة وإعادة تشغيل تلقائي لأي service في حال فشل
Scalability and DevOps
النظام جاهز للعمل مع Docker Swarm للتوسع
دعم zero downtime deployments مع rollback تلقائي
استخدام volumes خارجية لضمان حفظ البيانات
Tech Stack
Runtime: Bun أو Node.js
Gateway: Traefik
Database: PostgreSQL
Cache: Redis
Search: Meilisearch
Real time: Sockudo
Orchestration: Docker Swarm
1
اخذتها من واحد اجنبي على ال discord
شكرا
يا هلا
i know people that make 300k/year that can't figure out how to ssh


عميقة جدا
حَامِد | tech
https://youtu.be/88qc67oYDl4 مقطع جميل جميل
The best advice that rarely gets mentioned in these conversations is to learn a domain other than software engineering and how software solutions can be applied to it.
Forwarded from .
انا لا اعرف الا اساسيات بسيطة بالبرمجة واعمل مواقع باستخدام stitch ثم اربطه بantigravity واذا اردت اعدله عليه بس اكتب برومتات واذا اردت يحوله برنامج سطح مكتب فقط اطلب منه يحوله..وبس
من سهولة الموضوع احس اني بطريق غلط
حتى ضميري يأنبني اذا اشتغل ببيع التطبيقات وغيرها (:
هل الجميع مثلي ؟