Create your first app

This article explains how you can continue after onboarding and upload your first app for distribution.

High-level description

Before you create and upload an app, it helps to understand a few basic concepts.

App Store data model

The App Store data model is a hierarchy of app maintainers, apps, and versions. An app maintainer can publish many apps, and each app can have many versions. You can think of apps as folders that contain uploaded versions. For example:

- samplemaintainer
  - nextcloud
    - 33.0
    - 34.0
  - vaultwarden
    - ...
- samplemaintainer2
  - ...

Local data model

On your local machine, keep your app definitions in one folder. Each app definition is a Docker Compose YAML file, such as nextcloud.yml or vaultwarden.yml. For example:

/home/sampleuser/Documents/quollix-apps:
- nextcloud.yml
- vaultwarden.yml
- ...

The local files usually represent only the current app versions you maintain. The App Store keeps the full history of uploaded versions.

Upload signing

App version uploads are signed with your private key. This helps prevent users from downloading malicious app definitions if an App Store server is compromised.

Create your first app

First, create the app in the App Store with qsc. This creates the app entry that uploaded versions are attached to. The example below uses HedgeDoc.

./qsc apps create hedgedoc

List your apps to confirm that hedgedoc was created.

./qsc apps list

Then create an apps folder and add a HedgeDoc app definition at /home/sampleuser/Documents/quollix-apps/hedgedoc.yml:

# This file is licensed under the 0BSD License: https://opensource.org/license/0bsd

services:
  hedgedoc:
    image: quay.io/hedgedoc/hedgedoc:1.12.0-alpine
    container_name: <replace-me-by-your-app-maintainer-name>_hedgedoc_hedgedoc
    environment:
      CMD_DB_URL: "sqlite://:memory:"
      CMD_DOMAIN: "hedgedoc.${BASE_DOMAIN}"
      CMD_PROTOCOL_USESSL: "true"
      CMD_URL_ADDPORT: "false"
    labels:
      quollix.port: 3000

This app definition is not meant for production use. Next, upload the file:

./qsc versions upload -d /home/sampleuser/Documents/quollix-apps

List the app versions to confirm that the upload succeeded:

./qsc versions list <your-app-maintainer-name> hedgedoc

After the upload succeeds, the definition should appear in search results on the App Store page. To find it, search for your exact app maintainer name.

Last modified September 13, 2026: publish app store (59ec717)