Add caddy-autogen app, tests, and agent policy updates
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# 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/<app-id>`.
|
||||
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`.
|
||||
Reference in New Issue
Block a user