In quick test, the app-store-urls needs a URL to return a YAML array, with same YAML as /app/add yaml= as elements of the top-level list. The app store does not use the --- seperators between multiple app definations...instead it uses an YAML array with - and 2 indents.
So if a web server linked from /app/settings set app-store-urls= returned something like below, you'd have a DNS app store:
-
name: bind9
services:
bind9:
ports:
- 53:53/udp:dns
- 53:53/tcp:dns
image: docker.io/internetsystemsconsortium/bind9:9.18
-
name: unbound
services:
unbound:
ports:
- 53:53/tcp:dns
- 53:53/udp:dns
image: docker.io/klutchell/unbound:latest
And, if you want to be in the App Store business yourself... (and in keeping the dense multi-layered examples MikroTik generally uses in their docs)
You can add a single custom /app, which can then be an "App Store"... this uses busybox httpd to server the single YAML file needed :
/app/add yaml="
name: tikappstore
descr: Serve /app YAML for 'app-store-urls', using busybox httpd
services:
tikappstore:
image: docker.io/library/busybox
command: busybox httpd -f -h /www -v -p 3000 -c /etc/httpd.conf
ports:
- 3000:3000/tcp:web
configs:
- source: 'tikappstore.yaml'
target: '/www/tikappstore.yaml'
- source: 'httpd.conf'
target: '/etc/httpd.conf'
configs:
'httpd.conf':
content: |
.yaml:text/yaml
'tikappstore.yaml':
content: |
-
name: bind9
services:
bind9:
ports:
- 53:53/udp:dns
- 53:53/tcp:dns
image: docker.io/internetsystemsconsortium/bind9:9.18
-
name: unbound
services:
unbound:
ports:
- 53:53/tcp:dns
- 53:53/udp:dns
image: docker.io/klutchell/unbound:latest
"
To use it:
/app/enable tikappstore
/app/settings/set app-store-urls=("http://$[/app/get tikappstore ip-address]:3000/tikappstore.yaml")
Keep in mind app-store-urls is an array, so above would remove any existing one. Unlikely currently, but FWIW for future.
To edit the app store's catalog:
/file/edit "$[/app/settings/get disk]/apps/tikappstore/config-tikappstore.yaml" contents
or perhaps use VSCode to get validation and syntax checking of /app YAML syntax which now supports "app-store" YAML format.
