عن المشروع
توفر static-server خادم ملفات HTTP صغيرًا داخل حاوية لمواقع الويب الثابتة وبنى SPA. الصورة مبنية من scratch باستخدام برنامج Go مرتبط ثابتًا، وتستخدم المكتبة القياسية، وتتطلب CGO_ENABLED=0، وتعمل بمعرف مستخدم UID 65534 دون shell أو مدير حزم أو libc أو مسارات قابلة للكتابة في وقت التشغيل.
تشمل قدرات الخدمة الأساسية:
- خدمة الملفات من SERVE_DIR، مع تسلسل اختياري لـ FALLBACK_DIR للقيم الافتراضية المدمجة.
- وضع SPA الذي يعيد index.html لمسارات التنقل بدون امتداد بينما تبقى مسارات الأصول المفقودة استجابات 404.
- تسليم اختياري لملفات .br و .gz المجاورة عندما يقبل العميل الترميز.
- بادئة تخزين مؤقت غير قابلة للتغيير قابلة للتكوين للأصول ذات البصمات، بينما تستخدم استجابات HTML والتنقل no-cache.
- تسجيل تلقائي لأنواع MIME، بما في ذلك application/wasm لملفات .wasm.
- GET و HEAD فقط؛ الطرق الأخرى تتلقى استجابات 405.
- تعطيل قوائم الدليل، مع اشتراط وجود index.html في الدلائل.
- رؤوس أمان على الاستجابات وإعداد اختياري لـ Content-Security-Policy.
يعرض الخادم /healthz لفحوصات الجاهزية والبقاء في Kubernetes، و /version لإصدار وقت البناء، و /llms.txt كمرجع قابل للقراءة آليًا. يتعامل مع SIGTERM للإغلاق السلس ويمكن توفير المحتوى من خلال ربط قراءة فقط، أو ConfigMap، أو emptyDir يتم ملؤه بواسطة initContainer، أو وحدة تخزين أخرى.
يعتمد التكوين على متغيرات البيئة، بما في ذلك PORT و SERVE_DIR و FALLBACK_DIR و SPA_FALLBACK و CACHE_IMMUTABLE_PREFIX و CONTENT_SECURITY_POLICY و PRECOMPRESSED. يتضمن المستودع أمثلة تشغيل Docker، وبيانات نشر Kubernetes، وتوليد Kustomize ConfigMap، وأمثلة تراكب جزئي، وأنماط initContainer لمخرجات البناء أو عرض القوالب.
تُنشر الصور إلى Quay.io و Docker Hub بوسوم latest ووسوم مُرقّمة بالإصدار. تستخدم البناءات المحلية Docker و Docker Buildx و Make و Go 1.24 أو أحدث؛ وتُدعم البناءات متعددة المنصات linux/amd64 و linux/arm64. تخصص وسائط البناء تسميات OCI وقالب index.html الافتراضي. يشغل CI اختبارات go vet واختبارات مع تفعيل race، بينما يدفع نشر الوسوم صورًا متعددة المنصات. يُصدر المشروع تحت رخصة BSD Zero Clause.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.