Quick Start
To use Cardinal Music, Photos, and Cinema, you will need to run Cardinal Media Server.
Cardinal Media Server is available for free on Docker Hub, and comes bundled with all of Cardinal's web apps.
Docker Composeโ
Use the sample docker-compose.yaml files below for your chosen release channel and database. Both SQLite and PostgreSQL are supported. If you aren't sure which database to use, go with SQLite.
These examples are designed to maximize ease of access, at the expense of hardening. Before you go live with your Media Server, you should visit the Deployment guide to optimize and secure your self-hosted setup.
SQLiteโ
- Stable
- Beta
services:
cardinal-media-server-stable-sqlite:
image: cardinalapps/media-server:stable
container_name: cardinal-media-server-stable-sqlite
ports:
- 24900:24900
volumes:
- cardinal-media-server-stable-sqlite-data:/config
- PATH_TO_MY_MUSIC_FILES:/music # Update or remove this
- PATH_TO_MY_PHOTO_FILES:/photos # Update or remove this
- PATH_TO_MY_TV_FILES:/tv # Update or remove this
- PATH_TO_MY_MOVIE_FILES:/movies # Update or remove this
restart: unless-stopped
volumes:
cardinal-media-server-stable-sqlite-data:
services:
cardinal-media-server-beta-sqlite:
image: cardinalapps/media-server:beta
container_name: cardinal-media-server-beta-sqlite
ports:
- 24900:24900
volumes:
- cardinal-media-server-beta-sqlite-data:/config
- PATH_TO_MY_MUSIC_FILES:/music # Update or remove this
- PATH_TO_MY_PHOTO_FILES:/photos # Update or remove this
- PATH_TO_MY_TV_FILES:/tv # Update or remove this
- PATH_TO_MY_MOVIE_FILES:/movies # Update or remove this
restart: unless-stopped
volumes:
cardinal-media-server-beta-sqlite-data:
PostgreSQLโ
- Stable
- Beta
services:
cardinal-media-server-stable-postgres:
image: cardinalapps/media-server:stable
container_name: cardinal-media-server-stable-postgres
ports:
- 24900:24900
environment:
- CARDINAL_POSTGRES=true
volumes:
- cardinal-media-server-stable-postgres-data:/config
- PATH_TO_MY_MUSIC_FILES:/music # Update or remove this
- PATH_TO_MY_PHOTO_FILES:/photos # Update or remove this
- PATH_TO_MY_TV_FILES:/tv # Update or remove this
- PATH_TO_MY_MOVIE_FILES:/movies # Update or remove this
depends_on:
- cardinal-media-server-stable-postgres-db
links:
- cardinal-media-server-stable-postgres-db
restart: unless-stopped
cardinal-media-server-stable-postgres-db:
image: postgres:16.3
container_name: cardinal-media-server-stable-postgres-db
restart: always
environment:
- POSTGRES_USER=cardinal
- POSTGRES_PASSWORD=cardinal
ports:
- 24910:5432
volumes:
- cardinal-media-server-stable-postgres-db-data:/var/lib/postgresql/data
volumes:
cardinal-media-server-stable-postgres-data:
cardinal-media-server-stable-postgres-db-data:
services:
cardinal-media-server-beta-postgres:
image: cardinalapps/media-server:beta
container_name: cardinal-media-server-beta-postgres
ports:
- 24900:24900
environment:
- CARDINAL_POSTGRES=true
volumes:
- cardinal-media-server-beta-postgres-data:/config
- PATH_TO_MY_MUSIC_FILES:/music # Update or remove this
- PATH_TO_MY_PHOTO_FILES:/photos # Update or remove this
- PATH_TO_MY_TV_FILES:/tv # Update or remove this
- PATH_TO_MY_MOVIE_FILES:/movies # Update or remove this
depends_on:
- cardinal-media-server-beta-postgres-db
links:
- cardinal-media-server-beta-postgres-db
restart: unless-stopped
cardinal-media-server-beta-postgres-db:
image: postgres:16.3
container_name: cardinal-media-server-beta-postgres-db
restart: always
environment:
- POSTGRES_USER=cardinal
- POSTGRES_PASSWORD=cardinal
ports:
- 24911:5432
volumes:
- cardinal-media-server-beta-postgres-db-data:/var/lib/postgresql/data
volumes:
cardinal-media-server-beta-postgres-data:
cardinal-media-server-beta-postgres-db-data:
Note 1: If you want to change either the POSTGRES_USER or POSTGRES_PASSWORD values, you must also pass them to the Cardinal environment.
Note 2: You cannot change the POSTGRES_USER or POSTGRES_PASSWORD values after PostgreSQL creates its volume.
Was this article helpful?