# zima-apps Skelett för att bygga och underhålla ZimaOS/CasaOS-appar i ett eget appstore-repo. ## Mål - Små, reviewbara appdefinitioner. - Säkra default-värden (least privilege, pinned image-taggar, inga `latest`). - Tydlig struktur för metadata, kategorier och rekommendationer. ## Struktur ```text . ├── Apps/ │ └── _template/ │ ├── README.md │ └── docker-compose.yaml ├── category-list.json ├── featured-apps.json ├── recommend-list.json └── scripts/ └── validate-appstore.sh ``` ## Viktiga antaganden - Repo använder `docker-compose.yaml` enligt teamets standard. - Upstream-exempel använder ofta `docker-compose.yml`. - Om en extern pipeline kräver exakt `.yml` behöver vi lägga till en konverterings/rename-step vid publicering. ## Snabbstart 1. Kopiera `Apps/_template` till `Apps/`. 2. Sätt unikt `name` i compose-filen (endast gemener + `-`). 3. Pinna image till explicit version eller digest (inte `latest`). 4. Kör validering: ```bash ./scripts/validate-appstore.sh ``` Inför release/publicering, kör strikt validering för högrisk-inställningar: ```bash ./scripts/validate-appstore.sh --enforce-risk-docs ``` ## Säkerhetsriktlinjer - Undvik privilegierad container, host network och `docker.sock` om det inte är absolut nödvändigt. - Håll mounts snäva och appspecifika (`/DATA/AppData/$AppID/...`). - Sätt `security_opt: ["no-new-privileges:true"]` där det är möjligt. - Dokumentera avvikelser från säkra default-värden i appens `README.md`.