Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
minimal — مجموعة صور حاويات مصغّرة ومحصّنة ضد CVE | Kitploit
أدوات/GitHubGitHub/rtvkiz/minimal
ماسحات الثغرات الأمنيةأمن الحاوياتتدقيق التكوينأمن السحابةDevSecOpsأمن سلسلة التوريد
GitHubrtvkiz/minimal

minimal

مجموعة صور حاويات مصغّرة ومحصّنة ضد CVE

عرض المستودع
513213منذ 14س 27دتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

minimal — hardened container images

صور حاويات صغيرة ومحصنة، مجانية ومرخصة بموجب MIT.
مبنية من المصدر باستخدام حزم apko وWolfi من Chainguard، وتُعاد بناؤها كل ست ساعات.
كل صورة موقعة بـ cosign، وتحتوي على إثبات SPDX SBOM، وتحمل شهادة بناء SLSA Level 3. يمكنك التحقق من كل ذلك بدون حساب.

🌐  تصفح الكتالوج الكامل على minimalcontainers.com  →

Build status Image Catalog License: MIT SLSA Level 3 Images: 57 Architectures

كتالوج الصور · تحقق من صورة · ·

جميع الصور الـ57
مناقشة HN

سحب الصورة والتحقق منها في 30 ثانية

الهدف من هذه الصور هو أنك لست مضطرًا للثقة بي. اسحب صورة واحدة، ثم تحقق من مصدرها بنفسك:```bash

Pull. It's public — no login, no rate limit.

docker pull ghcr.io/rtvkiz/minimal-python:latest

Verify the build provenance. This proves the image was produced by the

workflow file in this repo, at a specific commit, on a GitHub-hosted runner.

gh attestation verify oci://ghcr.io/rtvkiz/minimal-python:latest --owner rtvkiz

Pull the SPDX SBOM so you can see exactly what's inside.

cosign verify-attestation --type spdxjson
--certificate-identity-regexp='https://github.com/rtvkiz/minimal/'
--certificate-oidc-issuer='https://token.actions.githubusercontent.com'
ghcr.io/rtvkiz/minimal-python:latest
| jq -r '.payload | @base64d | fromjson | .predicate' > python-sbom.spdx.json

root@kitploit:~
توجد وصفات تحقق إضافية (توقيع cosign، قائمة مكونات البرمجيات SBOM، إثبات الأصل SLSA) في [`.github/SECURITY.md`](https://github.com/rtvkiz/minimal/blob/main/.github/SECURITY.md).

## كيف يختلف `minimal`

|  | minimal | Chainguard | Docker Hardened | Minimus / RapidFort |
|---|:---:|:---:|:---:|:---:|
| **الترخيص** | MIT | Proprietary | Apache-2.0 | Proprietary |
| **التكلفة** | $0 | ~$30k/image/yr | Free + paid support | Sales call |
| **مصادقة السحب** | لا | نعم | نعم | نعم |
| **حدود المعدل** | لا يوجد | نعم | نعم | نعم |
| **وصفات البناء عامة** | نعم، كل `melange.yaml` | لا | نعم، ملفات Docker | لا |
| **توقيع Cosign + قائمة مكونات البرمجيات + SLSA L3** | نعم | نعم | نعم | نعم |
| **اتفاقية مستوى الخدمة من البائع، FedRAMP/STIG** | لا | نعم (مدفوع) | نعم (مدفوع) | نعم (مدفوع) |

استخدم `minimal` إذا كنت تريد صورًا مُحصّنة دون دفع أو تسجيل، إذا كنت تريد قراءة كل وصفة بناء من البداية إلى النهاية، أو إذا كنت تريد قالبًا عمليًا لتفرعه في كتالوجك الداخلي.

ربما لا يكون الخيار المناسب إذا كنت تحتاج إلى عقد بائع، أو أوراق اعتماد FedRAMP أو STIG، أو أكثر من ألف صورة في اليوم الأول — هذه أشياء حقيقية لا يحاول هذا المشروع حلها.

## ما تشمله كل صورة

- توقيع cosign بدون مفتاح، يمكن التحقق منه مقابل سجل الشفافية العام Rekor.
- قائمة مكونات برمجيات SPDX مرفقة كشهادة in-toto — كل حزمة وإصدار وترخيص.
- إثبات بناء SLSA v1.0 — دليل تشفيري على أي سير عمل وأي commit وأي مشغل أنتج الصورة.
- فحص Grype يومي، مع النتائج في [الكتالوج العام](https://minimalcontainers.com) وعلامة تبويب الأمان في GitHub.
- إصدارات أصلية `linux/amd64` و `linux/arm64`.
- مستخدم غير جذر افتراضيًا (UID 65532)، إلا إذا أصر المصدر الأصلي على خلاف ذلك.
- لا يوجد شل حيثما أمكن — معظم الصور لا تضم `/bin/sh`.
- وتيرة إعادة بناء كل ست ساعات، لذا تصل تصحيحات Wolfi للثغرات الأمنية في ساعات وليس أيام.

## الصور المتاحة — 57 صورة

| الفئة | العدد | أبرز ما فيها |
|---|---|---|
| **اللغات وبيئات التشغيل** | 9 | python, node-slim, bun, go, java, ruby, php, dotnet, deno |
| **قواعد البيانات** | 5 | mysql, mariadb, postgres-slim, sqlite, opensearch |
| **التخزين المؤقت، قوائم الانتظار، المراسلة** | 7 | redis-slim, valkey, memcached, kafka, rabbitmq, nats, mosquitto |
| **خوادم الويب وبروكسيات** | 6 | nginx, httpd, caddy, haproxy, traefik, envoy |
| **المراقبة** | 14 | prometheus, alertmanager, victoria-metrics, thanos, mimir, jaeger, loki, tempo, otelcol, fluent-bit, telegraf, node-exporter, blackbox-exporter, pushgateway |
| **البنية التحتية** | 7 | coredns, etcd, openbao, keycloak, qdrant, registry, consul |
| **Kubernetes، التكامل المستمر والبنية كرمز** | 4 | helm, kubectl, opentofu, trivy |
| **التطبيقات** | 5 | jenkins, gitea, minio, rails, mailpit |

تصفح كل صورة — مع فحص الثغرات المباشر، جميع الوسوم، قوائم المكونات، وإثبات البناء — على **[minimalcontainers.com](https://minimalcontainers.com)**، أو قم بتوسيع قائمة أوامر السحب الكاملة أدناه.

<details>
<summary><strong>كتالوج الصور الكامل مع أوامر السحب</strong></summary>

<br>

| الصورة | أمر السحب | الشل | حالة الاستخدام |
|-------|--------------|-------|----------|
| | | **اللغات** | |
| Python | `docker pull ghcr.io/rtvkiz/minimal-python:latest` | لا | تطبيقات Python، الخدمات المصغرة |
| Node.js-slim | `docker pull ghcr.io/rtvkiz/minimal-node-slim:latest` | لا | تطبيقات Node.js، JavaScript |
| Bun | `docker pull ghcr.io/rtvkiz/minimal-bun:latest` | لا | بيئة تشغيل سريعة لـ JavaScript/TypeScript |
| Go | `docker pull ghcr.io/rtvkiz/minimal-go:latest` | لا | تطوير Go، بنيات CGO |
| .NET Runtime | `docker pull ghcr.io/rtvkiz/minimal-dotnet:latest` | لا | بيئة تشغيل .NET 10 للتطبيقات |
| Java | `docker pull ghcr.io/rtvkiz/minimal-java:latest` | لا | JRE OpenJDK 26 لتطبيقات Java |
| Ruby | `docker pull ghcr.io/rtvkiz/minimal-ruby:latest` | لا | بيئة تشغيل Ruby 4.0 (مبنية من المصدر) |
| PHP | `docker pull ghcr.io/rtvkiz/minimal-php:latest` | لا | CLI PHP 8.5 (مبني من المصدر) |
| Rails | `docker pull ghcr.io/rtvkiz/minimal-rails:latest` | لا | Ruby 4.0 + Rails 8.1 (مبني من المصدر) |
| Deno | `docker pull ghcr.io/rtvkiz/minimal-deno:latest` | لا | بيئة تشغيل آمنة لـ TypeScript/JavaScript |
| | | **قواعد البيانات** | |
| MySQL | `docker pull ghcr.io/rtvkiz/minimal-mysql:latest` | نعم | MySQL LTS 8.4.x، مبني من المصدر |
| MariaDB | `docker pull ghcr.io/rtvkiz/minimal-mariadb:latest` | نعم | MariaDB LTS 11.4.x، مبني من المصدر |
| PostgreSQL-slim | `docker pull ghcr.io/rtvkiz/minimal-postgres-slim:latest` | لا | قاعدة بيانات علائقية |
| SQLite | `docker pull ghcr.io/rtvkiz/minimal-sqlite:latest` | لا | CLI قاعدة بيانات SQL مدمجة |
| OpenSearch | `docker pull ghcr.io/rtvkiz/minimal-opensearch:latest` | لا* | OpenSearch 3.x — بحث وتحليلات |
| | | **التخزين المؤقت، قوائم الانتظار، المراسلة** | |
| Redis-slim | `docker pull ghcr.io/rtvkiz/minimal-redis-slim:latest` | لا | مخزن بيانات في الذاكرة |
| Memcached | `docker pull ghcr.io/rtvkiz/minimal-memcached:latest` | لا | تخزين مؤقت في الذاكرة (مبني من المصدر) |
| Valkey | `docker pull ghcr.io/rtvkiz/minimal-valkey:latest` | لا | فرع Redis مرخص تحت BSD (LF) |
| Kafka | `docker pull ghcr.io/rtvkiz/minimal-kafka:latest` | نعم | Apache Kafka 4.x، وضع KRaft |
| RabbitMQ | `docker pull ghcr.io/rtvkiz/minimal-rabbitmq:latest` | نعم | وسيط RabbitMQ 4.x AMQP |
| NATS | `docker pull ghcr.io/rtvkiz/minimal-nats:latest` | لا | خادم NATS مع JetStream |
| Mosquitto | `docker pull ghcr.io/rtvkiz/minimal-mosquitto:latest` | لا | وسيط Eclipse Mosquitto MQTT (EPL-2.0/EDL-1.0) |
| | | **خوادم الويب وبروكسيات** | |
| Nginx | `docker pull ghcr.io/rtvkiz/minimal-nginx:latest` | لا | بروكسي عكسي، ملفات ثابتة |
| HTTPD | `docker pull ghcr.io/rtvkiz/minimal-httpd:latest` | ربما* | خادم ويب Apache |
| Caddy | `docker pull ghcr.io/rtvkiz/minimal-caddy:latest` | لا | خادم ويب HTTPS تلقائي |
| HAProxy | `docker pull ghcr.io/rtvkiz/minimal-haproxy:latest` | لا | موازن تحميل TCP/HTTP |
| Traefik | `docker pull ghcr.io/rtvkiz/minimal-traefik:latest` | لا | بروكسي عكسي سحابي أصلي |
| Envoy | `docker pull ghcr.io/rtvkiz/minimal-envoy:latest` | لا | بروكسي الخدمات وموازن تحميل |
| | | **المراقبة** | |
| Prometheus | `docker pull ghcr.io/rtvkiz/minimal-prometheus:latest` | لا | جمع المقاييس والتنبيه |
| VictoriaMetrics | `docker pull ghcr.io/rtvkiz/minimal-victoria-metrics:latest` | لا | تخزين مقاييس عالي الأداء |
| Jaeger | `docker pull ghcr.io/rtvkiz/minimal-jaeger:latest` | لا | تتبع موزع (v2) |
| Loki | `docker pull ghcr.io/rtvkiz/minimal-loki:latest` | لا | تجميع السجلات (Grafana Labs) |
| Tempo | `docker pull ghcr.io/rtvkiz/minimal-tempo:latest` | لا | خلفية تتبع موزع (Grafana Labs, AGPL) |
| OTel Collector | `docker pull ghcr.io/rtvkiz/minimal-otelcol:latest` | لا | نواة جامع OpenTelemetry |
| Fluent Bit | `docker pull ghcr.io/rtvkiz/minimal-fluent-bit:latest` | لا | معالج سجلات خفيف الوزن |
| Node Exporter | `docker pull ghcr.io/rtvkiz/minimal-node-exporter:latest` | لا | مقاييس أجهزة ونظام المضيف Prometheus |
| Blackbox Exporter | `docker pull ghcr.io/rtvkiz/minimal-blackbox-exporter:latest` | لا | استقصاء نقاط النهاية Prometheus (HTTP/DNS/TCP/ICMP) |
| Pushgateway | `docker pull ghcr.io/rtvkiz/minimal-pushgateway:latest` | لا | دفع مقاييس Prometheus لمهام الدفعة |
| | | **البنية التحتية** | |
| CoreDNS | `docker pull ghcr.io/rtvkiz/minimal-coredns:latest` | لا | DNS افتراضي لـ Kubernetes |
| etcd | `docker pull ghcr.io/rtvkiz/minimal-etcd:latest` | لا | مخزن مفاتيح-قيم موزع |
| OpenBao | `docker pull ghcr.io/rtvkiz/minimal-openbao:latest` | لا | إدارة الأسرار (فرع Vault) |
| Keycloak | `docker pull ghcr.io/rtvkiz/minimal-keycloak:latest` | نعم | إدارة الهوية والوصول |
| Qdrant | `docker pull ghcr.io/rtvkiz/minimal-qdrant:latest` | لا | قاعدة بيانات متجهة للذكاء الاصطناعي/التعلم الآلي (Rust) |
| Registry | `docker pull ghcr.io/rtvkiz/minimal-registry:latest` | لا | سجل توزيع OCI (Docker Registry v2)، مبني من المصدر |
| Consul | `docker pull ghcr.io/rtvkiz/minimal-consul:latest` | لا | اكتشاف الخدمة HashiCorp Consul + KV (BUSL-1.1) |
| | | **Kubernetes والتكامل المستمر** | |
| Helm | `docker pull ghcr.io/rtvkiz/minimal-helm:latest` | لا | CLI Helm 3 لنشر مخططات Kubernetes |
| kubectl | `docker pull ghcr.io/rtvkiz/minimal-kubectl:latest` | لا | CLI kubectl لعمليات مجموعة Kubernetes |
| | | **التطبيقات** | |
| Jenkins | `docker pull ghcr.io/rtvkiz/minimal-jenkins:latest` | نعم | أتمتة CI/CD |
| Gitea | `docker pull ghcr.io/rtvkiz/minimal-gitea:latest` | نعم | خدمة Git مستضافة ذاتيًا |
| MinIO | `docker pull ghcr.io/rtvkiz/minimal-minio:latest` | لا | تخزين كائنات متوافق مع S3 |
| Mailpit | `docker pull ghcr.io/rtvkiz/minimal-mailpit:latest` | لا | اختبار SMTP والبريد الإلكتروني للمطورين، مبني من المصدر |
| | | **الذكاء الاصطناعي / التعلم الآلي** | |
| CUDA Python | *معطل* | لا | Python + CUDA 12.9 + cuDNN 9.10 (تم إيقاف البناء، تم الاحتفاظ بالكود) |

*\*HTTPD, Jenkins, Kafka, MySQL, OpenSearch, Gitea, Keycloak تتضمن شل (`sh`/`busybox`/`bash`) عبر تبعيات Wolfi غير المباشرة أو لأن نقطة الدخول الأصلية تتطلب ذلك. يعامل CI وجود الشل كمعلومات فقط.*

</details>

## بداية سريعة```bash
# Python app
docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-python:latest /app/main.py

# Nginx reverse proxy
docker run -d -p 8080:80 ghcr.io/rtvkiz/minimal-nginx:latest

# PostgreSQL
docker run -d -p 5432:5432 -v pgdata:/var/lib/postgresql/data \
  ghcr.io/rtvkiz/minimal-postgres-slim:latest

# Redis
docker run -d -p 6379:6379 ghcr.io/rtvkiz/minimal-redis-slim:latest

# Kafka (KRaft mode — auto-initializes storage on first boot)
docker run -d -p 9092:9092 -v kafkadata:/var/kafka/data \
  ghcr.io/rtvkiz/minimal-kafka:latest
المزيد من أمثلة docker run (Node, Go, MySQL, MariaDB, Java, .NET, PHP, Rails, RabbitMQ, Gitea, …)


```bash

Node.js

docker run --rm -v $(pwd):/app -w /app ghcr.io/rtvkiz/minimal-node-slim:latest index.js

Bun

docker run --rm ghcr.io/rtvkiz/minimal-bun:latest --version

Go

docker run --rm -v $(pwd):/app -w /app ghcr.io/rtvkiz/minimal-go:latest build -o /tmp/app .

HTTPD

docker run -d -p 8080:80 ghcr.io/rtvkiz/minimal-httpd:latest

Jenkins

docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home ghcr.io/rtvkiz/minimal-jenkins:latest

MySQL

docker run -d -p 3306:3306 -v mysqldata:/var/lib/mysql ghcr.io/rtvkiz/minimal-mysql:latest

Memcached

docker run -d -p 11211:11211 ghcr.io/rtvkiz/minimal-memcached:latest

SQLite

docker run --rm -v $(pwd):/data ghcr.io/rtvkiz/minimal-sqlite:latest /data/mydb.sqlite "SELECT sqlite_version();"

.NET

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-dotnet:latest /app/myapp.dll

Java

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-java:latest -jar /app/myapp.jar

PHP

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-php:latest /app/index.php

Rails

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-rails:latest -e "require 'rails'; puts Rails.version"

RabbitMQ

docker run -d -p 5672:5672 -v rabbitmqdata:/var/lib/rabbitmq ghcr.io/rtvkiz/minimal-rabbitmq:latest

Gitea

docker run -d -p 3000:3000 -v giteadata:/data/gitea ghcr.io/rtvkiz/minimal-gitea:latest

root@kitploit:~
</details>

## الاستخدام في الإنتاج

**ثبّت علامات الإصدار الثابتة.** كل صورة تُنشر بعلامتين:

| العلامة | الصيغة | مثال | قابل للتغيير |
|---|---|---|---|
| الإصدار | `VERSION-rEPOCH` | `ghcr.io/rtvkiz/minimal-redis-slim:8.4.1-r0` | لا |
| الأحدث | `latest` | `ghcr.io/rtvkiz/minimal-redis-slim:latest` | نعم |

### المتغيرات الخاصة بالتطوير (`:latest-dev`)

معظم الصور تنشر نسخة `-dev` مبنية من **نفس المصدر المستخدم للإنتاج** — نفس إصدار وقت التشغيل، نفس مجموعة الحزم المنتقاة — بالإضافة إلى شل، مدير حزم، مجموعة أدوات مترجم، وأدوات تصحيح مناسبة للصورة. مُخصصة لمراحل البناء في CI وتصحيح الأخطاء داخل الحاوية، **وليست لنشر الإنتاج**.

الاستخدام النموذجي متعدد المراحل:```dockerfile
FROM ghcr.io/rtvkiz/minimal-ruby:latest-dev AS build
WORKDIR /work
COPY Gemfile Gemfile.lock ./
RUN bundle install

FROM ghcr.io/rtvkiz/minimal-ruby:latest
COPY --from=build /work /work

للحصول على شل تفاعلي، تجاوز نقطة الدخول (صور التطوير تحافظ على نقطة الدخول الإنتاجية للتوافق المباشر):```bash docker run -it --entrypoint /bin/sh ghcr.io/rtvkiz/minimal-:latest-dev docker run -it --entrypoint /bin/bash ghcr.io/rtvkiz/minimal-:latest-dev

root@kitploit:~
المتغيرات التطويرية (Dev variants) تشارك توقيع صورة الإنتاج (prod image's signing) وقائمة المكونات البرمجية (SBOM) وخط سير المصدر (SLSA provenance pipeline). **لا يتم تتبعها على لوحة التحكم العامة لـ CVE** — فهي تتعمد شحن سطح هجوم أكبر. راجع [`.github/SECURITY.md`](https://github.com/rtvkiz/minimal/blob/main/.github/SECURITY.md#dev-variants--dev-tags) للسياسة و[`docs/dev-variants/CONVENTIONS.md`](https://github.com/rtvkiz/minimal/blob/main/docs/dev-variants/CONVENTIONS.md) لقواعد تكوين الحزمة.

**الشحن اليوم:** 57 من 57 متغيرًا تطويريًا — كل صورة في الكتالوج تشحن الآن رفيق `:latest-dev` مبني من نفس مصدر الإنتاج.

<details>
<summary><strong>حالة المتغيرات التطويرية لكل صورة</strong></summary>

<br>

الوسيلة الإيضاحية: ✅ يتم شحن `:latest-dev` · 🚧 قيد التقدم · 📝 مخطط

تتبع الفئات القوالب الثلاثة في [`docs/dev-variants/templates/`](https://github.com/rtvkiz/minimal/blob/main/docs/dev-variants/templates) (وقت التشغيل / خفي / خادم). يُظهر عمود "المرجع" المكان الذي نعكس فيه مجموعة حزم Chainguard العامة `<image>-public/devConfigs`; **داخلي** يعني أن Chainguard تشحن صورة مخصصة للمؤسسات فقط وقمنا بتصميم التركيبة التطويرية بأنفسنا.

| الصورة | الفئة | المرجع | الحالة |
|---|---|---|---|
| ruby | وقت التشغيل | Chainguard `ruby-public` | ✅ |
| python | وقت التشغيل | Chainguard `python-public` | ✅ |
| node-slim | وقت التشغيل | Chainguard `node-public` | ✅ |
| go | وقت التشغيل | Chainguard `go-public` | ✅ |
| java | وقت التشغيل | Chainguard `jdk-public` | ✅ |
| dotnet | وقت التشغيل | Chainguard `dotnet-runtime-10-public` | ✅ |
| php | وقت التشغيل | داخلي (composer مؤجلة — انظر PR) | ✅ |
| rails | وقت التشغيل | داخلي (مشتق من ruby) | ✅ |
| bun | وقت التشغيل | داخلي | ✅ |
| deno | وقت التشغيل | داخلي | ✅ |
| postgres-slim | خفي | Chainguard `postgres-public` | ✅ |
| mariadb | خفي | Chainguard `mariadb-public` | ✅ |
| mysql | خفي | داخلي | ✅ |
| redis-slim | خفي | Chainguard `redis-public` | ✅ |
| valkey | خفي | Chainguard `valkey-public` | ✅ |
| memcached | خفي | داخلي | ✅ |
| sqlite | خفي | داخلي | ✅ |
| opensearch | خفي | داخلي | ✅ |
| kafka | خفي | داخلي | ✅ |
| rabbitmq | خفي | داخلي | ✅ |
| nats | خفي | داخلي | ✅ |
| etcd | خفي | داخلي | ✅ |
| qdrant | خفي | داخلي | ✅ |
| nginx | خادم | Chainguard `nginx-public` | ✅ |
| haproxy | خادم | Chainguard `haproxy-public` | ✅ |
| minio | خادم | Chainguard `minio-client-public` (الخادم داخلي) | ✅ |
| httpd | خادم | داخلي | ✅ |
| caddy | خادم | داخلي | ✅ |
| traefik | خادم | داخلي | ✅ |
| envoy | خادم | داخلي | ✅ |
| prometheus | خادم | داخلي | ✅ |
| victoria-metrics | خادم | داخلي | ✅ |
| jaeger | خادم | داخلي | ✅ |
| otelcol | خادم | داخلي | ✅ |
| loki | خادم | داخلي | ✅ |
| fluent-bit | خادم | داخلي | ✅ |
| node-exporter | خادم | داخلي | ✅ |
| blackbox-exporter | خادم | داخلي | ✅ |
| pushgateway | خادم | داخلي | ✅ |
| coredns | خادم | داخلي | ✅ |
| gitea | خادم | داخلي | ✅ |
| jenkins | خادم | داخلي | ✅ |
| keycloak | خادم | داخلي | ✅ |
| openbao | خادم | داخلي | ✅ |
| registry | خادم | Chainguard `registry-public` | ✅ |
| mailpit | خادم | داخلي (Chainguard لا تشحن mailpit عام) | ✅ |
| consul | خادم | داخلي (Chainguard لا تشحن consul عام؛ BUSL-1.1) | ✅ |
| tempo | خادم | داخلي (Chainguard لا تشحن tempo عام؛ AGPL-3.0) | ✅ |
| mosquitto | خفي | داخلي (Chainguard لا تشحن mosquitto عام؛ EPL-2.0/EDL-1.0) | ✅ |

</details>```dockerfile
# Production Dockerfile — pin by version tag, ideally by digest
FROM ghcr.io/rtvkiz/minimal-go:1.26.0-r0 AS build
WORKDIR /src
COPY . .
RUN go build -o /out/app

FROM ghcr.io/rtvkiz/minimal-python:3.14.0-r0
COPY --from=build /out/app /usr/bin/app
ENTRYPOINT ["/usr/bin/app"]

فرض التوقيع + المصدر في Kubernetes باستخدام sigstore-policy-controller أو Kyverno:```yaml

Kyverno ClusterPolicy — only allow signed minimal-* images

apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: verify-minimal-images spec: validationFailureAction: Enforce rules: - name: check-signature match: any: - resources: kinds: [Pod] verifyImages: - imageReferences: - "ghcr.io/rtvkiz/minimal-" attestors: - entries: - keyless: subject: "https://github.com/rtvkiz/minimal/" issuer: "https://token.actions.githubusercontent.com"

root@kitploit:~
اللاحقة `-r0` هي رقم المراجعة — يتم إعادة تعيينها إلى `r0` عند كل ترقية للإصدار الرئيسي، وتزداد (`r1`, `r2`, …) لإعادة بناء نفس الإصدار الرئيسي (مثل تصحيحات التبعيات). يتم الاحتفاظ بعلامات الإصدار القديمة عبر عمليات إعادة البناء.

## خط التجميع

<details>
<summary><strong>مخطط خط التجميع</strong></summary>

<br>```
┌─────────────────────────────────────────────────────────────────────────────┐
│                            BUILD PIPELINE                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  Signing Keys:                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  PRs: keygen job (ephemeral) │ Main: repository secrets (persistent)│    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                              │                                              │
│                              ▼                                              │
│  ┌─────────────────────────────┐    ┌─────────────────────────────────────┐ │
│  │  melange-build              │    │      build-apko                     │ │
│  │  Native ARM64 runners       │    │      Wolfi pre-built packages       │ │
│  │  ┌────────┐  ┌────────────┐ │    │  ┌─────────┐     ┌───────────────┐  │ │
│  │  │ x86_64 │  │  aarch64   │ │    │  │  Wolfi  │────►│ apko publish  │  │ │
│  │  │ ubuntu │  │ ubuntu-arm │ │    │  │ packages│     │ (multi-arch)  │  │ │
│  │  └────┬───┘  └─────┬──────┘ │    │  └─────────┘     └───────┬───────┘  │ │
│  │       └─────┬──────┘        │    │                          │          │ │
│  │             ▼               │    └──────────────────────────│──────────┘ │
│  │     ┌──────────────┐        │                               │            │
│  │     │   artifacts  │        │                               │            │
│  │     │ (x86+arm64)  │        │                               │            │
│  │     └──────┬───────┘        │                               │            │
│  └────────────│────────────────┘                               │            │
│               ▼                                                │            │
│  ┌─────────────────────────────┐                               │            │
│  │  build-melange              │                               │            │
│  │  ┌─────────┐ ┌────────────┐ │                               │            │
│  │  │  merge  │►│   apko     │─┼───────────────────────────────┤            │
│  │  │ packages│ │  publish   │ │                               │            │
│  │  └─────────┘ └────────────┘ │                               │            │
│  └─────────────────────────────┘                               │            │
│                                                                ▼            │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                     Verification & Attestation                       │   │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌─────────────────────┐   │   │
│  │  │  Grype   │─►│   Test   │─►│  cosign  │─►│  SBOM + SLSA L3     │   │   │
│  │  │ CVE scan │  │  image   │  │   sign   │  │    attestations     │   │   │
│  │  └──────────┘  └──────────┘  └──────────┘  └─────────────────────┘   │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  Note: PRs build and test but do not publish. Only main branch publishes.   │
└─────────────────────────────────────────────────────────────────────────────┘

جدول التحديث

المحفزمتىالغرض
مجدولكل 6 ساعاتالحصول على آخر تصحيحات CVE من Wolfi
دفععند الدمج في mainنشر تغييرات التهيئة
يدويإرسال سير العملإعادة بناء طارئة

تظهر نتائج فحص الثغرات في الكتالوج المباشر، وملخص المهمة، وعلامة تبويب أمان GitHub.

التتبع الآلي للمنبع

يتم تتبع الصور المبنية من المصدر بواسطة سير عمل مخصصة تتحقق من المنبع يوميًا وتفتح طلبات السحب (PRs):

سير عمل التحديث لكل صورة (21 إجمالًا)
سير العمليراقبماذا يفعل
update-jenkins.ymlإصدارات Jenkins LTSيحدث الإصدار في تهيئة melange وملف Makefile و build.yml
update-redis.ymlإصدارات Redis على GitHubيحدث الإصدار و SHA256
update-mysql.ymlوسوم MySQL LTS (8.4.x) على GitHubيحدث الإصدار و SHA256
update-memcached.ymlإصدارات Memcached على GitHubيحدث الإصدار و SHA256
update-kafka.ymlوسوم Apache Kafka 4.x على GitHubيحدث الإصدار و SHA512
update-php.ymlواجهة إصدارات php.netيحدث الإصدار و SHA256؛ يفتح مشكلة للسلسلة الثانوية/الرئيسية الجديدة
update-rails.ymlواجهة RubyGems + وسوم Ruby على GitHubيحدث إصدارات حزمة Rails ومصدر Ruby بشكل مستقل
update-rabbitmq.ymlإصدارات RabbitMQ على GitHubيحدث الإصدار و SHA256
update-minio.ymlإصدارات MinIO على GitHubيحدث وسام الإصدار والإصدار المستند إلى التاريخ و SHA256
update-victoria-metrics.ymlإصدارات VictoriaMetrics على GitHubيحدث الإصدار و SHA256
update-jaeger.ymlإصدارات Jaeger v2.x على GitHubيحدث الإصدار و SHA256؛ يحذر عند تغيير الإصدار الرئيسي
update-otelcol.ymlإصدارات OTel Collector المستقرةيحدث الإصدار و SHA256؛ يتجاوز الإصدارات التجريبية
update-qdrant.ymlإصدارات Qdrant v1.x على GitHubيحدث الإصدار و SHA256
update-etcd.ymlإصدارات etcd v3.x على GitHubيحدث الإصدار و SHA256
update-opensearch.ymlإصدارات OpenSearch 3.x على GitHubيحدث الإصدار في ملف Makefile و README
update-gitea.ymlوسوم Gitea v1.x على GitHubيحدث الإصدار و SHA256
update-coredns.ymlوسوم CoreDNS v1.x على GitHub

يتم إنشاء طلبات السحب للتحديثات التصحيحية تلقائيًا والتحقق منها بواسطة CI. تؤدي الزيادات الثانوية/الرئيسية إلى إنشاء مشكلة على GitHub مع قائمة تحقق للترقية اليدوية.

مواصفات الصور (الإصدارات، المستخدمون، نقاط الدخول)
الصورةالإصدارالمستخدمنقطة الدخولدليل العمل
Python3.14.xnonroot (65532)/usr/bin/python3/app
Node.js-slim25.xnonroot (65532)/usr/bin/dumb-init -- /usr/bin/node/app
Bunlatestnonroot (65532)/usr/bin/bun/app
Go1.26.xnonroot (65532)/usr/bin/go/app
Nginxmainlinenginx (65532)/usr/sbin/nginx -g "daemon off;"/
HTTPD2.4.xwww-data (65532)/usr/sbin/httpd -DFOREGROUND/var/www/localhost/htdocs
Jenkins2.555.x LTSjenkins (1000)tini -- java -jar jenkins.war/var/jenkins_home
Redis8.6.xredis (65532)/usr/bin/redis-server/
MySQL8.4.xmysql (65532)/usr/bin/docker-entrypoint.sh/
MariaDB11.4.xmariadb (65532)/usr/bin/mariadbd/var/lib/mysql
Memcached1.6.xmemcached (65532)/usr/bin/memcached/
PostgreSQL18.xpostgres (70)/usr/bin/postgres/
SQLite3.51.xnonroot (65532)/usr/bin/sqlite3/data
.NET Runtime10.x

البناء محليًا```bash

Prerequisites

go install chainguard.dev/apko@latest go install chainguard.dev/melange@latest brew install anchore/grype/grype

Build & test a specific image

make python make test-python

Build everything

make build

Scan for CVEs

make scan

root@kitploit:~
انظر [Makefile](https://github.com/rtvkiz/minimal/blob/main/Makefile) للحصول على قائمة الأهداف الكاملة.

## هيكل المشروع

<details>
<summary><strong>تخطيط المستودع</strong></summary>

<br>```
minimal/
├── <image>/
│   ├── apko/<name>.yaml          # final image config
│   ├── melange.yaml              # source build (optional)
│   └── test.sh                   # smoke test
├── .github/
│   ├── SECURITY.md               # disclosure policy + verification recipes
│   └── workflows/
│       ├── build.yml             # main CI pipeline (6h rebuilds)
│       ├── patch-go-deps.yml     # daily Go transitive CVE patching
│       ├── update-<image>.yml    # per-image upstream version tracking
│       └── update-wolfi-packages.yml
├── Makefile
├── README.md
├── CONTRIBUTING.md
└── LICENSE

الحالة والخطة الزمنية

تم إدراجها مؤخرًا:

  • توقيعات Cosign بدون مفتاح على كل صورة.
  • مرفقات SPDX SBOMs كشهادات in-toto، يمكن التحقق منها باستخدام cosign verify-attestation.
  • أصل البناء وفق SLSA v1.0، يمكن التحقق منه باستخدام gh attestation verify.
  • لوحة تحكم عامة لـ CVE مع تحليلات لكل صورة.
  • وتيرة إعادة بناء كل ست ساعات، بالإضافة إلى تصحيح يومي لـ CVEs الانتقالية في Go.

التالي:

  • بيانات VEX لـ CVEs التي ليست قابلة للاستغلال فعليًا في صورنا، حتى تتوقف لوحة التحكم عن إظهار الضوضاء.
  • دمج سير عمل التحديث لكل صورة في وظيفة واحدة مدفوعة بالمصفوفة (matrix-driven).
  • صور AI/ML المتخصصة (إصدارات Python المتوافقة مع CUDA) — هناك موضوع HN حيث تم طرح هذا الأمر ويبدو الأمر يستحق الاستكشاف.

ما ليس هذا المشروع:

  • يتم صيانته بواسطة فرد واحد، لذلك لا يوجد SLA من البائع ولا جدول مناوبات.
  • غير معتمد من FedRAMP / FIPS / STIG. يساعد أصل البناء القابل للتحقق و SBOMs في التدقيق، لكنها لا تحل محل الأوراق الرسمية.

المساهمة

PRs مرحب بها. يحتوي CONTRIBUTING.md على إعداد البناء، واصطلاحات الصور، وقائمة التحقق من الصحة المحلية التي أقوم بتشغيلها قبل الدفع.

إذا وجدت مشكلة أمنية، فيرجى استخدام الإبلاغ الخاص عن الثغرات في GitHub بدلاً من فتح مشكلة عامة. سياسة الإفصاح والجدول الزمني للرد موجودان في .github/SECURITY.md.

الترخيص

MIT — انظر LICENSE.

صور الحاوية تتضمن حزمًا من Wolfi ومصادر أخرى، كل منها له تراخيصه الخاصة (Apache-2.0, MIT, GPL, LGPL, BSD, إلخ). معلومات الترخيص الكاملة موجودة في SBOM لكل صورة:```bash cosign download sbom ghcr.io/rtvkiz/minimal-python:latest | jq '.packages[].licenseConcluded'

root@kitploit:~
تنزيل الأداة
يحدث الإصدار و SHA256
update-openbao.ymlوسوم OpenBao v2.x على GitHubيحدث الإصدار و SHA256
update-loki.ymlوسوم Loki v3.x على GitHubيحدث الإصدار و SHA256
update-fluent-bit.ymlوسوم Fluent Bit v5.x على GitHubيحدث الإصدار و SHA256
update-keycloak.ymlوسوم Keycloak 26.x على GitHubيحدث الإصدار و SHA256
update-wolfi-packages.ymlفهرس حزم Wolfi APKيكتشف إصدارات جديدة من Python و Node و Go و .NET و Java و PostgreSQL و Deno
nonroot (65532)
/usr/bin/dotnet
/app
Java26.xnonroot (65532)/usr/bin/java/app
Ruby4.0.xnonroot (65532)/usr/bin/ruby/work
PHP8.5.xnonroot (65532)/usr/bin/php/app
RailsRuby 4.0.x + Rails 8.1.xnonroot (65532)/usr/bin/ruby/app
Kafka4.2.xkafka (65532)/usr/bin/kafka-entrypoint.sh/
RabbitMQ4.3.xrabbitmq (65532)/opt/rabbitmq/sbin/rabbitmq-server/
NATSlatestnonroot (65532)/usr/bin/nats-server/
Valkeylatestnonroot (65532)/usr/bin/valkey-server/
MinIORELEASE.2025-10-15minio (65532)/usr/bin/minio server --console-address :9001 /data/data
OpenSearch3.7.0opensearch (65532)/usr/share/opensearch/opensearch-docker-entrypoint.sh/usr/share/opensearch/data
etcd3.6.xnonroot (65532)/usr/bin/etcd/var/lib/etcd
VictoriaMetrics1.142.xnonroot (65532)/usr/bin/victoria-metrics/
Jaeger2.18.xnonroot (65532)/usr/bin/jaeger/
OTel Collector0.151.xnonroot (65532)/usr/bin/otelcol/
Qdrant1.17.xnonroot (65532)/usr/bin/qdrant/qdrant
Deno2.xnonroot (65532)/usr/bin/deno/app
Gitea1.26.xgitea (65532)/usr/bin/gitea web --config /etc/gitea/app.ini/var/lib/gitea
CoreDNS1.14.xnonroot (65532)/usr/bin/coredns/
OpenBao2.5.xopenbao (65532)/usr/bin/bao server/openbao/data
Keycloak26.6.xkeycloak (65532)/opt/keycloak/bin/kc.sh start-dev/opt/keycloak/data
Loki3.6.xloki (65532)/usr/bin/loki/loki
Fluent Bit5.0.xnonroot (65532)/usr/bin/fluent-bit/