Este guia explica como criar um catálogo de aplicações Docker e self-hosted compatível com ZimaOS para um servidor doméstico, homelab ou NAS OS. Abrange os ficheiros de origem mínimos, o processo de compilação v2 e o caminho de publicação estática.
Utilize este caminho quando estiver a criar uma nova loja de terceiros compatível com ZimaOS.
Se já tiver uma loja v1 baseada em ficheiros zip, leia primeiro a Estratégia de migração. A migração reutiliza a maior parte da árvore Apps/ existente e exige menos passos.
Ficheiros de origem mínimos
Uma nova loja que utilize o protocolo v2 começa com:
store-config.json: identidade da loja e texto localizado ao nível da loja.supported-languages.json: locales candidatos para a saída gerada.Apps/<AppName>/docker-compose.yml: um ficheiro Compose de origem por aplicação.- recursos da aplicação, como
icon.svg,thumbnail.pngescreenshot-1.png.
scripts/build_dist.sh é opcional, mas recomendado para compilações locais. A CI pode chamar diretamente IceWhaleTech/build-appstore-action.
Processo de compilação
- Crie a estrutura descrita em Estrutura do repositório.
- Adicione
store-config.jsoncom umstore_idestável,namelocalizado,maintainere uma descrição opcional. - Adicione
supported-languages.jsoncom os locales que a compilação deve considerar. - Adicione um diretório por aplicação dentro de
Apps/. - Coloque a configuração de execução Docker nas secções padrão do Compose.
- Coloque os metadados da loja no bloco superior
x-casaos. - Execute a ação de compilação ou
./scripts/build_dist.sh. - Publique o diretório
dist/gerado num alojamento estático.
Checklist da primeira aplicação
Para cada aplicação, confirme que o Compose de origem inclui:
nameno nível superior do Composeservicesx-casaos.idno nível superiorx-casaos.mainx-casaos.indexx-casaos.port_mapx-casaos.iconx-casaos.titlex-casaos.category
Metadados recomendados:
taglinedescriptionauthordeveloperarchitecturesversionwebsite,repo,supportoudocs, quando disponíveis
Destino de publicação
As lojas que utilizam o protocolo v2 são consumidas como ficheiros estáticos. Qualquer alojamento estático HTTPS funciona:
- GitHub Pages
- Cloudflare Pages
- Netlify
- Nginx self-hosted
- qualquer CDN ou armazenamento de objetos que sirva os ficheiros gerados sem os alterar
Defina o base-url da compilação como o URL público final onde dist/ estará acessível. Este URL é escrito nos caminhos gerados dos ficheiros e recursos das aplicações.