Quick Start
To use Cardinal you will need to self-host Cardinal Home Server. It's available with Docker, it includes all the web apps, and it supports both SQLite and PostgreSQL.
Docker Compose
Use the sample docker-compose.yaml
files below. If you aren't sure which database to use, go with SQLite.
SQLite
- Stable
- Beta
services:
cardinal:
image: cardinalapps/home-server:stable
container_name: cardinal-home-server
ports:
- 24900:24900
volumes:
- cardinal-home-server-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-home-server-data:
services:
cardinal:
image: cardinalapps/home-server:beta
container_name: cardinal-home-server-beta
ports:
- 24900:24900
volumes:
- cardinal-home-server-beta-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-home-server-beta-data:
PostgreSQL
- Stable
- Beta
services:
cardinal:
image: cardinalapps/home-server:stable
container_name: cardinal-home-server
ports:
- 24900:24900
environment:
- CARDINAL_POSTGRES=true
volumes:
- cardinal-home-server-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:
- postgres
links:
- postgres
restart: unless-stopped
postgres:
image: postgres:latest
container_name: cardinal-postgres
restart: always
environment:
- POSTGRES_USER=cardinal
- POSTGRES_PASSWORD=cardinal
ports:
- 24910:5432
volumes:
- cardinal-home-server-postgres-data:/var/lib/postgresql/data
volumes:
cardinal-home-server-data:
cardinal-home-server-postgres-data:
services:
cardinal:
image: cardinalapps/home-server:beta
container_name: cardinal-home-server-beta
ports:
- 24900:24900
environment:
- CARDINAL_POSTGRES=true
volumes:
- cardinal-home-server-beta-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:
- postgres
links:
- postgres
restart: unless-stopped
postgres:
image: postgres:latest
container_name: cardinal-postgres
restart: always
environment:
- POSTGRES_USER=cardinal
- POSTGRES_PASSWORD=cardinal
ports:
- 24910:5432
volumes:
- cardinal-home-server-beta-postgres-data:/var/lib/postgresql/data
volumes:
cardinal-home-server-beta-data:
cardinal-home-server-beta-postgres-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.
Docker CLI
You can use the Docker CLI instead of Docker Compose to run Cardinal Home Server with SQLite. Using PostgreSQL with the CLI is not officially supported.
docker run \
-d \
--name cardinal \
-p 24900:24900 \
-v cardinal-data:/config \
-v PATH_TO_MY_MUSIC_FILES:/music \
-v PATH_TO_MY_PHOTO_FILES:/photos \
-v PATH_TO_MY_TV_FILES:/tv \
-v PATH_TO_MY_MOVIE_FILES:/movies \
--restart unless-stopped \
cardinalapps/home-server:stable
Environment Variables
See the Environment Variables guide.
Next Steps
There are a few suggestions for what to do next in the Next Steps.