A backend-free replacement for marketplace.owncloud.com. Publishers submit apps via pull request; CI validates each submission; a static website and a JSON API are generated from the catalog and hosted on GitHub Pages. There is no server and no database — the Git repository itself is the source of truth.
This repository contains two independent npm packages: tools/ (the TypeScript
validator and API generator) and website/ (the Astro site). Each is installed
and built on its own.
git clone https://github.com/owncloud/marketplace.git
cd marketplace
# Validator + API generator
cd tools
npm install
npm test
npm run typecheck
# Static website
cd ../website
npm install
npm run build- apps/ — the ownCloud Classic catalog and source of truth (one
folder per app/release):
apps/<app-id>/releases/<version>/package.tar.gz. Metadata is read from theappinfo/info.xmlinside each tarball. - extensions/ — the ownCloud Infinite Scale (oCIS) web-extension catalog
(one folder per extension/release):
extensions/<ext-id>/releases/<version>/bundle.zipplus anextension.yaml. See Contributing. - tools/ — TypeScript validator and API generator (run with
tsx, tested with Vitest). Seetools/README.md. - website/ — Astro static site that renders the catalog.
- .github/ — CI workflows, the publish-app pull request template, and Dependabot configuration.
Open a pull request that adds a single file:
apps/<app-id>/releases/<version>/package.tar.gz
All metadata is read from the appinfo/info.xml inside the tarball. Optionally
add a CHANGELOG.md next to it. CI validates the submission; once merged to
main, the catalog, API and website are regenerated and deployed automatically.
See the pull request template for the full checklist.
Served as static JSON from GitHub Pages:
ownCloud Classic (market app):
GET /api/v1/categories.jsonGET /api/v1/apps.json— full catalogGET /api/v1/platform/{ocVersion}/apps.json— back-compat with themarketappGET /api/v1/bundles.jsonGET /api/v1/downloads.json— latest ownCloud Classic, desktop and mobile release downloads
ownCloud Infinite Scale (oCIS) web extensions:
GET /api/ocis/v1/apps.json— a drop-in oCIS app-store repository feed. Add this URL to the oCISwebapp's app-storerepositoriesconfiguration.
- Publishing workflow and catalog layout — this README and the pull request template
- Validator and API generator internals —
tools/README.md
Star this repo and Watch for release notifications!
We welcome contributions! Please read the Contributing Guidelines and our Code of Conduct before getting started.
- Rebase Early, Rebase Often! We use a rebase workflow. Always rebase on the target branch before submitting a PR.
- Dependabot: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly.
- Signed Commits: All commits must be PGP/GPG signed. See GitHub's signing guide.
- DCO Sign-off: Every commit must carry a
Signed-off-byline:git commit -s -S -m "your commit message" - GitHub Actions Policy: Workflows may only use actions that are (a) owned by
owncloud, (b) created by GitHub (actions/*), or (c) verified in the GitHub Marketplace. All actions are pinned to a full commit SHA.
Do not open a public GitHub issue for security vulnerabilities.
Report vulnerabilities at https://security.owncloud.com — see SECURITY.md.
Bug bounty: YesWeHack ownCloud Program
This project is licensed under the Apache License 2.0.
The Kiteworks Open Source Program Office, operating under the ownCloud brand, launched on May 5, 2026, to steward the open source ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance, community health, and sustainable collaboration between the open source community and Kiteworks, which acquired ownCloud in 2023.
- OSPO Home: https://kiteworks.com/opensource
- GitHub: https://github.com/owncloud
- ownCloud: https://owncloud.com
For questions about the OSPO or licensing, contact ospo@kiteworks.com.