openalice-cdn
[Atlas card](https://atlas.blal.pro/repos/openalice-cdn)
Architecture rating
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.
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.
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.
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.
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.
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.
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.ymlnginx-served static asset bucket — bundled BGM, SFX, scene backgrounds, and default VRM consumed by live / persona / app / radio.
- CDN_PUBLIC_HOST
- 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/*
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.
- DOMAIN
- CDN_PUBLIC_HOST
Roadmap · what's planned next
- cdn-origin-swap-pathin progress23%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-headersplanned2%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-bundledone100%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-attributionsdone100%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- Python85.3%
- YAML11.6%
- Dockerfile3.1%
- Python85.3%
- YAML11.6%
- Dockerfile3.1%
- Python85.3%· 191
- YAML11.6%· 26
- Dockerfile3.1%· 7
| Language | % code | code | comments | blanks | files |
|---|---|---|---|---|---|
| Python | 85.3% | 191 | 37 | 25 | 1 |
| YAML | 11.6% | 26 | 33 | 1 | 1 |
| Dockerfile | 3.1% | 7 | 13 | 0 | 1 |
| Markdown | 0.0% | 0 | 323 | 109 | 4 |
Telemetry ribbon · last 90 days
6 eventscdn/deploy
1 feature- cdn.compose.deploydocker-compose.yml:3docker-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.ymlsince 0.1.0
cdn/nginx
1 feature- cdn.nginx.servenginx.conf:4nginx static-asset server — cache-control immutable, CORS *, plain-text 404. Routes /audio /vrm /scenes /avatars under cdn.${DOMAIN}.file:nginx.confsince 0.1.0
cdn/tools
1 feature- cdn.tools.placeholdersscripts/generate-placeholders.py:2generate-placeholders.py — produces silent BGM MP3s + labelled scene-bg placeholders so the live page never 404s before real assets land.script:scripts/generate-placeholders.pysince 0.1.0