95cd7d9ba8
- Apps/snacks/: docker-compose.yaml (2.3.1, host networking, privileged, /dev/dri) and README.md with full security exception documentation for: network_mode:host, privileged:true, device mount /dev/dri - apps.md: converted to agent-readable table backlog with instructions for future apps - Jellyfin-ffmpeg paths as defaults, 1G memory reservation, amd64 only (single-arch image) - Validation: ./scripts/validate-appstore.sh passes
15 lines
769 B
Markdown
15 lines
769 B
Markdown
## Backlog
|
|
|
|
| # | Done | Name | Source | What | Agent instructions |
|
|
|---|---|---|---|---|---|
|
|
| 1 | [x] | Snacks | https://github.com/derekshreds/snacks | Automated video library encoder | Branch `snacks/initial/add-video-encoder`; implemented in `Apps/snacks/` |
|
|
|
|
## Adding a new app
|
|
|
|
1. Copy `Apps/_template/` → `Apps/<app-id>/`
|
|
2. Set `name` in compose (lowercase + hyphen only)
|
|
3. Pin image to explicit version/tag (no `:latest`); verify tag exists in registry
|
|
4. Add `x-casaos` metadata (title, description, icon, category, author, port_map)
|
|
5. Write `README.md` with purpose, ports, volumes, envs, and risk justifications
|
|
6. Validate: `./scripts/validate-appstore.sh`
|
|
7. Run final validation before release: `./scripts/validate-appstore.sh --enforce-risk-docs` |