Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Use Founder / Developer tabs in the docs sidebar to filter this page. Uploads are documented under RingFileBase; this page covers public delivery.
Ring CDN is the read path for objects stored by RingFileBase: an NGINX edge (ring-filebase-cdn) that proxies GET /files/<key> to MinIO (or RGW) with caching headers. Browsers and crawlers never need MinIO credentials. Keys include originals (/files/{uuid}) and derivatives (/files/{uuid}_v_thumb.webp, /files/{uuid}_v_video_frame_0_480.webp, …) — same {fileId}_v_* scheme as RingFileBase.
| Layer | Component | Namespace (typical) |
|---|---|---|
| Edge | ring-filebase-cdn Deployment + Ingress | ring-filebase |
| Origin | minio-service | ring-filebase-minio |
| Writer | ring-filebase-api | ring-filebase |
Public hosts follow cdn.<clone-domain> (examples in empire: cdn.ring-platform.org, cdn.greenfood.live, cdn.vikka.ua).
Users and search engines load product photos, avatars, and generated media from a stable CDN hostname, not from your app pods. That keeps Next.js free of large static payloads, lets you cache aggressively, and lets you place edges closer to members (US / EU / UA) without changing application code.
Map cdn.yourdomain → your MinIO bucket via Ingress + NGINX map $host $target_bucket.
Store product images once via RingFileBase; serve forever from CDN URLs stored in Postgres.
ImageConductor / VideoConductor outputs should land on RingFileBase so OG and newsroom assets use CDN URLs.
Use Founder / Developer tabs in the docs sidebar to filter this page. Uploads are documented under RingFileBase; this page covers public delivery.
Ring CDN is the read path for objects stored by RingFileBase: an NGINX edge (ring-filebase-cdn) that proxies GET /files/<key> to MinIO (or RGW) with caching headers. Browsers and crawlers never need MinIO credentials. Keys include originals (/files/{uuid}) and derivatives (/files/{uuid}_v_thumb.webp, /files/{uuid}_v_video_frame_0_480.webp, …) — same {fileId}_v_* scheme as RingFileBase.
| Layer | Component | Namespace (typical) |
|---|---|---|
| Edge | ring-filebase-cdn Deployment + Ingress | ring-filebase |
| Origin | minio-service | ring-filebase-minio |
| Writer | ring-filebase-api | ring-filebase |
Public hosts follow cdn.<clone-domain> (examples in empire: cdn.ring-platform.org, cdn.greenfood.live, cdn.vikka.ua).
Users and search engines load product photos, avatars, and generated media from a stable CDN hostname, not from your app pods. That keeps Next.js free of large static payloads, lets you cache aggressively, and lets you place edges closer to members (US / EU / UA) without changing application code.
Map cdn.yourdomain → your MinIO bucket via Ingress + NGINX map $host $target_bucket.
Store product images once via RingFileBase; serve forever from CDN URLs stored in Postgres.
ImageConductor / VideoConductor outputs should land on RingFileBase so OG and newsroom assets use CDN URLs.
Use Founder / Developer tabs in the docs sidebar to filter this page. Uploads are documented under RingFileBase; this page covers public delivery.
Ring CDN is the read path for objects stored by RingFileBase: an NGINX edge (ring-filebase-cdn) that proxies GET /files/<key> to MinIO (or RGW) with caching headers. Browsers and crawlers never need MinIO credentials. Keys include originals (/files/{uuid}) and derivatives (/files/{uuid}_v_thumb.webp, /files/{uuid}_v_video_frame_0_480.webp, …) — same {fileId}_v_* scheme as RingFileBase.
| Layer | Component | Namespace (typical) |
|---|---|---|
| Edge | ring-filebase-cdn Deployment + Ingress | ring-filebase |
| Origin | minio-service | ring-filebase-minio |
| Writer | ring-filebase-api | ring-filebase |
Public hosts follow cdn.<clone-domain> (examples in empire: cdn.ring-platform.org, cdn.greenfood.live, cdn.vikka.ua).
Users and search engines load product photos, avatars, and generated media from a stable CDN hostname, not from your app pods. That keeps Next.js free of large static payloads, lets you cache aggressively, and lets you place edges closer to members (US / EU / UA) without changing application code.
Map cdn.yourdomain → your MinIO bucket via Ingress + NGINX map $host $target_bucket.
Store product images once via RingFileBase; serve forever from CDN URLs stored in Postgres.
ImageConductor / VideoConductor outputs should land on RingFileBase so OG and newsroom assets use CDN URLs.
CDN is a cache — back up the MinIO/RGW bucket, not only the NGINX PVC.
cdn.<domain> → cluster ingress IP(s).RINGBASE_PUBLIC_URL=https://cdn.<domain>./files/... URL returns 200 in the browser.| Host |
|---|
| Bucket |
|---|
cdn.ring-platform.org | ring-filebase |
cdn.greenfood.live | ring-filebase |
cdn.vikka.ua | ring-vikka-ua |
Object keys are whatever ring-filebase-api wrote (some deployed API images still prefix keys with a project segment such as ring-greenfood-live/<uuid>). The CDN path is always /files/ + that key.
| Variable | Purpose |
|---|---|
RINGBASE_PUBLIC_URL | Absolute origin embedded in upload responses (https://cdn.<domain>) |
REFMAGIC_CDN_INTERNAL_URL | Optional in-cluster fetch (http://ring-filebase-cdn.ring-filebase.svc.cluster.local) |
CDN_URL | Optional legacy/commented flag in env.local.template — prefer RINGBASE_PUBLIC_URL for RingFileBase |
Ringdom operates CDN edges as a geo set (documented in AI-CONTEXT cdn-edge-architecture): US (k3s-1 / Ashburn), EU (Finland), UA (k8s). Each zone runs local MinIO + CDN proxy; DNS may publish multiple A/AAAA records for cdn.*. Your clone may use one zone only — still use the same /files/ contract.
MinIO objects are often uploaded with private ACL. The CDN proxy needs anonymous GetObject (or equivalent signed fetch) on the bucket, or browsers see 403 XML from MinIO through NGINX.
Apply CDN ConfigMaps, Deployment, Service, and cdn.<domain> Ingress with cert-manager TLS. Confirm server_name includes your host.
Set RINGBASE_PUBLIC_URL=https://cdn.<domain> so RingBaseAdapter / API responses emit CDN URLs. Restart the Ring Deployment after ConfigMap changes.
Expect 200. 403 → bucket policy / ACL. 404 → wrong bucket map or key prefix.
/files/ — uploads go through RingFileBase API with Bearer auth.minio-service ClusterIP./files/<id> keys reduce directory enumeration versus dated folder trees (see RingFileBase security hardening notes in AI-CONTEXT).CDN is a cache — back up the MinIO/RGW bucket, not only the NGINX PVC.
cdn.<domain> → cluster ingress IP(s).RINGBASE_PUBLIC_URL=https://cdn.<domain>./files/... URL returns 200 in the browser.| Host |
|---|
| Bucket |
|---|
cdn.ring-platform.org | ring-filebase |
cdn.greenfood.live | ring-filebase |
cdn.vikka.ua | ring-vikka-ua |
Object keys are whatever ring-filebase-api wrote (some deployed API images still prefix keys with a project segment such as ring-greenfood-live/<uuid>). The CDN path is always /files/ + that key.
| Variable | Purpose |
|---|---|
RINGBASE_PUBLIC_URL | Absolute origin embedded in upload responses (https://cdn.<domain>) |
REFMAGIC_CDN_INTERNAL_URL | Optional in-cluster fetch (http://ring-filebase-cdn.ring-filebase.svc.cluster.local) |
CDN_URL | Optional legacy/commented flag in env.local.template — prefer RINGBASE_PUBLIC_URL for RingFileBase |
Ringdom operates CDN edges as a geo set (documented in AI-CONTEXT cdn-edge-architecture): US (k3s-1 / Ashburn), EU (Finland), UA (k8s). Each zone runs local MinIO + CDN proxy; DNS may publish multiple A/AAAA records for cdn.*. Your clone may use one zone only — still use the same /files/ contract.
MinIO objects are often uploaded with private ACL. The CDN proxy needs anonymous GetObject (or equivalent signed fetch) on the bucket, or browsers see 403 XML from MinIO through NGINX.
Apply CDN ConfigMaps, Deployment, Service, and cdn.<domain> Ingress with cert-manager TLS. Confirm server_name includes your host.
Set RINGBASE_PUBLIC_URL=https://cdn.<domain> so RingBaseAdapter / API responses emit CDN URLs. Restart the Ring Deployment after ConfigMap changes.
Expect 200. 403 → bucket policy / ACL. 404 → wrong bucket map or key prefix.
/files/ — uploads go through RingFileBase API with Bearer auth.minio-service ClusterIP./files/<id> keys reduce directory enumeration versus dated folder trees (see RingFileBase security hardening notes in AI-CONTEXT).CDN is a cache — back up the MinIO/RGW bucket, not only the NGINX PVC.
cdn.<domain> → cluster ingress IP(s).RINGBASE_PUBLIC_URL=https://cdn.<domain>./files/... URL returns 200 in the browser.| Host |
|---|
| Bucket |
|---|
cdn.ring-platform.org | ring-filebase |
cdn.greenfood.live | ring-filebase |
cdn.vikka.ua | ring-vikka-ua |
Object keys are whatever ring-filebase-api wrote (some deployed API images still prefix keys with a project segment such as ring-greenfood-live/<uuid>). The CDN path is always /files/ + that key.
| Variable | Purpose |
|---|---|
RINGBASE_PUBLIC_URL | Absolute origin embedded in upload responses (https://cdn.<domain>) |
REFMAGIC_CDN_INTERNAL_URL | Optional in-cluster fetch (http://ring-filebase-cdn.ring-filebase.svc.cluster.local) |
CDN_URL | Optional legacy/commented flag in env.local.template — prefer RINGBASE_PUBLIC_URL for RingFileBase |
Ringdom operates CDN edges as a geo set (documented in AI-CONTEXT cdn-edge-architecture): US (k3s-1 / Ashburn), EU (Finland), UA (k8s). Each zone runs local MinIO + CDN proxy; DNS may publish multiple A/AAAA records for cdn.*. Your clone may use one zone only — still use the same /files/ contract.
MinIO objects are often uploaded with private ACL. The CDN proxy needs anonymous GetObject (or equivalent signed fetch) on the bucket, or browsers see 403 XML from MinIO through NGINX.
Apply CDN ConfigMaps, Deployment, Service, and cdn.<domain> Ingress with cert-manager TLS. Confirm server_name includes your host.
Set RINGBASE_PUBLIC_URL=https://cdn.<domain> so RingBaseAdapter / API responses emit CDN URLs. Restart the Ring Deployment after ConfigMap changes.
Expect 200. 403 → bucket policy / ACL. 404 → wrong bucket map or key prefix.
/files/ — uploads go through RingFileBase API with Bearer auth.minio-service ClusterIP./files/<id> keys reduce directory enumeration versus dated folder trees (see RingFileBase security hardening notes in AI-CONTEXT).