Skip to content

About

Live app catalog for Darc, with one service file per category folder

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

Xe Appstore

The live app catalog for Darc.

Each service lives in one JSON file under catalog/<category>/<service-id>.json. The category comes from its folder; it is not repeated inside the service file. Category names and service IDs use lowercase slugs, such as development and darc-code. IDs must be unique across the catalog and match their filenames. The JSON Schema is the source of truth for service fields. The repository check and Darc compile it with ArkType's JSON Schema adapter.

catalog/
  demo/
    welcome-to-docker.json
  design/
    excalidraw.json
  development/
    darc-code.json
    darc-dev.json
assets/
  welcome-to-docker.png
  excalidraw.png
  darc-code.png
  darc-dev.png

Adding a service

Add a JSON file to an existing category, or create a new category folder. Every service requires id, name, description, iconUrl, and type.

A web service uses type: "url" and an HTTP(S) url:

{
  "id": "excalidraw",
  "name": "Excalidraw",
  "description": "Sketch diagrams and whiteboards in a shared canvas.",
  "iconUrl": "assets/excalidraw.png",
  "type": "url",
  "url": "https://excalidraw.com"
}

A Docker service uses type: "docker" and requires githubUrl, branch, pathType (compose, dockerfile, or static), and path (relative to that repository). An optional checkoutPath can prefill the checkout destination in Darc. See darc-code.json for an example.

The demo category includes Welcome to Docker, an Agent54 copy of Docker's official static welcome page with its own compose.yaml. The main branch builds the site and serves it with nginx:alpine-slim as a non-root user on port 8080. The container has a read-only filesystem, resource limits, and no database or host bind mounts. This catalog entry launches the checked-in Compose file directly.

Icons can be an HTTP(S) URL or an assets/... path in this repository. Keep repository assets under assets/ and use an image file extension.

Run deno task check before committing. GitHub Actions runs the same validation on pushes and pull requests.

Live loading

Darc checks the main branch through GitHub's recursive tree API whenever the catalog opens. It loads the schema and each service through the Git blob API using SHAs from that tree, so they belong to the same snapshot. Unchanged blobs are cached in memory; each reopening still checks GitHub for additions, edits, moves, and deletions. No generated index or Darc rebuild is needed for catalog updates merged to main.

This repository is public so browser requests need no token. GitHub's REST API supports CORS directly. If GitHub is unavailable or its public API rate limit is reached, Darc shows an error and a retry button. The initial load uses one tree request, one schema request, and one request per service; subsequent opens request only the tree and changed or new blobs. Icons are served from raw.githubusercontent.com.

About

Live app catalog for Darc, with one service file per category folder

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages