m5/org/openalice-cdn

openalice-cdn

[Atlas card](https://atlas.blal.pro/repos/openalice-cdn)

Features
3
Status
·unknown
Last activity
11d ago
Branch
mvp

Architecture rating

F5h ago
docsB-

README with Atlas card link, AGENTS.md, VERSIONING.md, valid manifest with clear summary and endpoint inventory; missing nginx.conf inline comments and asset naming conventions doc.

consistencyC

Valid manifest, AGENTS.md, VERSIONING.md, proper docker-compose convention, zero circular deps; 1 dead import (os in generate-placeholders:50) and 1 format issue are minor blemishes.

reliabilityD

100% uptime over 24h and 63ms probe latency are positive, but no evidence of graceful shutdown handling, nginx worker tuning, keepalive config, or fallback behavior in the provided structure.

data layerD

No database or schema by design (static asset bucket); env drift shows undeclared DOMAIN var and unused CDN_PUBLIC_HOST — no asset integrity checks or upload validation evident.

securityF

No evidence of security headers (CSP, X-Content-Type-Options, CORS), rate limiting, or access controls in provided signals; nginx.conf exists but contents unverified — a public CDN with zero visible hardening.

observabilityF

Zero internal metrics, no structured logging, no tracing, no /healthz endpoint — relies entirely on external Atlas probe; 8 console statements in scripts are the only output mechanism.

testingF

Zero tests — no test directory, no test files, no CI evidence; even a smoke test confirming nginx serves assets or a script validation test is absent.

source · auto-grader-2026-07-18

Ecosystem manifest

.atlas-deps.yml

nginx-served static asset bucket — bundled BGM, SFX, scene backgrounds, and default VRM consumed by live / persona / app / radio.

Consumed env
  • CDN_PUBLIC_HOST
Exposes
  • docker_image: openalice-cdn
  • http_endpoint: https://cdn.blal.pro/audio/bgm/*
  • http_endpoint: https://cdn.blal.pro/audio/sfx/*
  • http_endpoint: https://cdn.blal.pro/scenes/*
  • http_endpoint: https://cdn.blal.pro/vrm/*
  • http_endpoint: https://cdn.blal.pro/avatars/*
Env drift · manifest ⇄ code

Atlas grepped the repo's source for env reads (rust env::var · ts process.env · py os.environ · shell $VAR) and diffed against the manifest's consumes_env. Two lists below: stale declarations and undeclared reads.

Code reads, manifest omits
  • DOMAIN
Manifest declares, code unused
  • CDN_PUBLIC_HOST
Observed reads: 1 · declared: 1

Roadmap · what's planned next

56% avg4 goals
  • cdn-origin-swap-path
    in progress
    23%
    Keep all consumer code pointed at cdn.${DOMAIN} so flipping the origin to Cloudflare R2 / Bunny / S3+CloudFront is a single Traefik label + DNS change with zero client churn.
  • immutable-cache-headers
    planned
    2%
    Tighten nginx Cache-Control to long-lived immutable for hashed asset paths so browsers and edge caches can pin BGM/SFX/scene files without revalidation roundtrips.
  • real-asset-bundle
    done
    100%
    Replace silent / solid-colour placeholders with royalty-free real BGM, SFX, scene, and default-VRM assets so every preset URL serves usable content out of the box.
  • per-asset-attributions
    done
    100%
    Maintain assets/ATTRIBUTIONS.md as the canonical per-file licence record (CC0 / CC-BY / VRM Public License) so the bundled set stays audit-ready as new tracks land.

Code composition

tokei · loc
224loc
  • Python85.3%
  • YAML11.6%
  • Dockerfile3.1%
  • Python85.3%· 191
  • YAML11.6%· 26
  • Dockerfile3.1%· 7
Language% codecodecommentsblanksfiles
Python85.3%19137251
YAML11.6%263311
Dockerfile3.1%71301
Markdown0.0%03231094

Telemetry ribbon · last 90 days

6 events
MAYJUNJUL2026-05-21 · commit · new commit cb7c61f → 9bec05f2026-05-22 · commit · new commit 9bec05f → f7490d62026-07-06 · commit · new commit f7490d6 → f201a7b2026-07-07 · commit · new commit f201a7b → b66f5d62026-07-07 · commit · new commit b66f5d6 → d80aead2026-07-07 · commit · new commit d80aead → c5b8194NOW
commitmanifestlifecyclekind

cdn/deploy

1 feature
  • cdn.compose.deploy
    docker-compose.yml:3
    docker-compose.yml — local dev nginx:alpine bound to host:8090 with the assets dir read-only. Production uses the umbrella compose with Traefik labels.
    file:docker-compose.yml
    since 0.1.0

cdn/nginx

1 feature
  • cdn.nginx.serve
    nginx.conf:4
    nginx static-asset server — cache-control immutable, CORS *, plain-text 404. Routes /audio /vrm /scenes /avatars under cdn.${DOMAIN}.
    file:nginx.conf
    since 0.1.0

cdn/tools

1 feature
  • cdn.tools.placeholders
    scripts/generate-placeholders.py:2
    generate-placeholders.py — produces silent BGM MP3s + labelled scene-bg placeholders so the live page never 404s before real assets land.
    script:scripts/generate-placeholders.py
    since 0.1.0