This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the Worph-AppStore, a fork of the Yundera CasaOS 3rd-Party AppStore that provides a curated collection of Docker Compose applications compatible with CasaOS. The key difference from the main Yundera AppStore is that this fork uses the CDN URL https://cdn.jsdelivr.net/gh/Worph/AppStore@main/ for assets instead of the standard Yundera URLs.
-
Apps Directory: Each application lives in
Apps/{AppName}/containing:docker-compose.yml- Docker Compose configuration with CasaOS metadataicon.png- Application icon (PNG format)screenshot-{1,2,3}.png- Application screenshotsthumbnail.png- Optional thumbnail image- Optional:
rationale.md,pre-install/directory with scripts
-
Configuration Files:
category-list.json- Defines app categories with Material Design iconsrecommend-list.json- List of recommended applicationsfeatured-apps.json- Featured applications list
All apps follow a consistent pattern:
- Services: Main application containers with dependencies (databases, etc.)
- Environment Variables: Uses CasaOS variables like
$PUID,$PGID,$TZ,$default_pwd,$domain - Volumes: Maps to
/DATA/AppData/{appname}/for persistent storage - Networking: Uses
exposeinstead ofportsfor internal communication; main services connect to externalpcsnetwork for Caddy routing - x-casaos metadata: Contains app metadata for the CasaOS interface
- Asset URLs: All use
https://cdn.jsdelivr.net/gh/Worph/AppStore@main/Apps/{AppName}/ - Storage: Applications store data in
/DATA/AppData/{appname}/ - Media: Common media paths:
/DATA/Media/Movies,/DATA/Media/TV Shows,/DATA/Downloads - Networking: Apps use Caddy labels for automatic HTTPS routing with three access methods:
caddy_0: Gateway-routed domain (appname-${APP_DOMAIN}) withgateway_tlsimportcaddy_1: Direct access via nip.io (appname-\${APP_PUBLIC_IP_DASH}.nip.io) withgateway_tlsimportcaddy_2: Direct access via sslip.io (appname-\${APP_PUBLIC_IP_DASH}.sslip.io) - no import, uses Let's Encrypt
- Multi-language Support: Descriptions and taglines support multiple locales (en_us, fr_fr, es_es, zh_cn, ko_kr, de_de)
- Create directory structure:
Apps/{AppName}/ - Add
docker-compose.ymlwith proper CasaOS metadata - Include required assets (icon.png, screenshots)
- Test on actual CasaOS environment before submission
- Update category lists if introducing new categories
Applications must be tested on:
- CasaIMG (dockerized CasaOS)
- Yundera servers with nsl.sh routing
- Both amd64 and arm64 architectures when supported
- Icons: PNG format, square aspect ratio
- Screenshots: PNG format, application interface captures
- Thumbnails: Optional, used for featured display
- All assets served via jsdelivr CDN
Since this is a configuration repository without build processes:
# Validate docker-compose files
docker-compose -f Apps/{AppName}/docker-compose.yml config
# Test app locally (requires CasaOS environment variables)
docker-compose -f Apps/{AppName}/docker-compose.yml up -d
# Lint YAML files
yamllint Apps/*/docker-compose.yml
# Check JSON configuration files
jq . category-list.json
jq . recommend-list.json
jq . featured-apps.jsonReference the main Yundera AppStore contributing guidelines at:
https://raw.githubusercontent.com/Yundera/AppStore/refs/heads/main/CONTRIBUTING.md
Key differences for this fork:
- Use
https://cdn.jsdelivr.net/gh/Worph/AppStore@main/for asset URLs - Maintain compatibility with CasaOS and mesh router architecture
- Ensure HTTPS accessibility through nsl.sh domain routing
- CasaIMG: Docker-based CasaOS image manager
- Mesh-Router: Domain management for containerized applications
- Yundera: Cloud server platform for open source containers
- NSL.SH: Free domain provider for open source projects