1
0
Fork 0
mirror of https://github.com/CardinalApps/self-hosted.git synced 2026-06-02 12:23:14 -07:00
No description
  • TypeScript 51.2%
  • SCSS 28.1%
  • CSS 20.2%
  • JavaScript 0.3%
  • MDX 0.1%
  • Other 0.1%
Find a file
briiian 229fa736fc chore(media-server): swap pkg → @yao-pkg/pkg, target node22
vercel/pkg is deprecated and capped at Node 18 prebuilds, which was
keeping CI pinned to Node 18. ffmpeg now ships next to the binary
(yao-pkg's snapshot can't spawn() embedded executables), and a new
FFMPEG_PATH env var lets users point at a custom ffmpeg build.

internal-repo-sha: b7f67870efacdd642af059ff694eec9849e51eaa
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 00:00:27 -04:00
.github chore(media-server): swap pkg → @yao-pkg/pkg, target node22 2026-05-19 00:00:27 -04:00
.vscode chore: vs code launch script for feedback server 2026-05-01 23:31:23 -04:00
apps refactor: convert SettingsPanel from routed page to slide-up bottom sheet 2026-05-19 00:00:27 -04:00
compose fix: expose MongoDB port and document macOS vs Linux connection strings 2026-05-19 00:00:27 -04:00
config chore(music-rn): wire up shared eslint/ts configs and fix lint+typecheck 2026-05-19 00:00:27 -04:00
docs docs: interactive launch in quick start 2026-05-19 00:00:27 -04:00
libraries refactor: convert SettingsPanel from routed page to slide-up bottom sheet 2026-05-19 00:00:27 -04:00
servers/media chore(media-server): swap pkg → @yao-pkg/pkg, target node22 2026-05-19 00:00:27 -04:00
.dockerignore Publish self-hosted code [main] [0ee49f9] [2026-03-10T05:54:38] 2026-03-10 18:17:43 -04:00
.gitignore chore: gitignore *.tsbuildinfo and untrack existing ones 2026-05-19 00:00:27 -04:00
.npmrc Publish self-hosted code [main] [0ee49f9] [2026-03-10T05:54:38] 2026-03-10 18:17:43 -04:00
Dockerfile.media-server chore(media-server): swap pkg → @yao-pkg/pkg, target node22 2026-05-19 00:00:27 -04:00
LICENSE Publish self-hosted code [main] [0ee49f9] [2026-03-10T05:54:38] 2026-03-10 18:17:43 -04:00
package.json chore(media-server): swap pkg → @yao-pkg/pkg, target node22 2026-05-19 00:00:27 -04:00
pnpm-lock.yaml chore(media-server): swap pkg → @yao-pkg/pkg, target node22 2026-05-19 00:00:27 -04:00
pnpm-workspace.yaml refactor: move music-rn to apps/, scaffold @cardinalapps/native-ui 2026-05-19 00:00:27 -04:00
README.md docs: udpdate desc 2026-03-29 14:40:02 -04:00
turbo.json feat: add library dev tasks to turbo.json 2026-05-19 00:00:27 -04:00

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

Elastic License 2.0

Copyright Cardinal Apps Inc. 2023 - 2026