- TypeScript 48.1%
- SCSS 30%
- CSS 21.3%
- JavaScript 0.4%
- MDX 0.1%
- Other 0.1%
Signed-off-by: briiian <brian@cardinalapps.io> internal-repo-sha: 79da858196be1ec291cb30888c077a5c9be80328 |
||
|---|---|---|
| .github | ||
| .vscode | ||
| apps | ||
| compose | ||
| config | ||
| docs | ||
| libraries | ||
| servers/media | ||
| .dockerignore | ||
| .gitignore | ||
| .npmrc | ||
| CLAUDE.md | ||
| Dockerfile.media-server | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| turbo.json | ||
Self-Hosted Cardinal Apps
This monorepo contains the source code for all self-hosted Cardinal apps.
Made with:
- TypeScript
- React (Vite)
- Redux (RTK)
- Node.js (Nest.js)
Quick start
See Quick Start for instructions on how to run this code.
Packages
These are the packages in this monorepo.
| Package | Directory | Dev Port | Description |
|---|---|---|---|
admin-web |
/apps |
3090 |
Cardinal Media Server Admin web app |
cinema-web |
/apps |
3096 |
Cardinal Cinema web app |
music-web |
/apps |
3094 |
Cardinal Music web app |
photos-web |
/apps |
3092 |
Cardinal Photos web app |
eslint |
/config |
- | ESLint configurations |
typescript |
/config |
- | TypeScript configurations |
access-control |
/libraries |
- | Access Control (RBAC) core |
app-settings |
/libraries |
- | App settings and utils |
products |
/libraries |
- | Data about Cardinal's products |
topology |
/libraries |
- | Infrastructure topology |
types |
/libraries |
- | Not used |
ui |
/libraries |
3099 |
UI layer & React component library with Storybook |
media |
/servers |
3080, 24800 |
Monolithic Media Server |
About This Repository
How do I use this as someone that wants to build an app that uses Cardinal's APIs?
You should develop against the beta or latest release available on Docker Hub instead.
How do I build the apps?
The official builds that are on Docker Hub are built and published by Cardinal's CI. While you can definitely build and use Docker images using this repository, doing so is out of scope of this repository and there is no orchestration available for it beyond running the pnpm commands yourself one by one.
Running self-built containers is not offically supported, and this repository may change at any time in ways that break self-build setups.
Can I use this to verify the integrity of the public builds?
Sort of? The Media Server binary that you can build with this repository will exactly match the one that is shipped in the public Docker builds.
But, like other CI things, this is out of scope of this repository.
Is this made with AI?
Guidelines for working with AI coding assistants can be found in the Contributors docs. The first AI code was added in 2026. All code prior to that was pure human.
About the commit history
This repository was created in March 2026. Prior to that, this project was closed source.
This project began in 2023, in pure JavaScript in separate repositories, and by 2026 it had become the fully TypeScript monorepo that is seen here. During those years the code went through a few different repositories, so there is unfortunately no single linear history of commits.
The second commit in this repository is a squashed commit containing all the self-hosted code since the beginning. That one commit adds 270k lines of code, and it is also the last commit before AI coding assistants were allowed to contribute.
Contributing
- Suggestions: Create a post on the forums or create a GitHub issue.
- Bug Reports: Create a GitHub issue. For a serious vulnerability, please disclose responsibly using the email on the Contact page.
- Code Contributions: Public contributions are currently closed. If you particularly like this project then come say hello in the Forums or on Reddit.
License
Copyright Cardinal Apps Inc. 2023 - 2026