Skip to main content

Quick Start

To use Cardinal you will need to get Cardinal Home Server up and running. It's available with Docker, it comes with all the web apps, and it supports both SQLite and PostgreSQL.

Choosing a database

See the Database guide for information about each type of database. If you aren't sure, go with SQLite.

Docker Compose

Use the sample docker-compose.yaml files below, or customize them for your environment.

With SQLite

docker-compose.yaml
services:
cardinal:
image: cardinalapps/home-server:stable
container_name: cardinal
ports:
- 24900:24900
volumes:
- cardinal-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-data:

With PostgreSQL

docker-compose.yaml
services:
cardinal-home-server:
image: cardinalapps/home-server:stable
container_name: cardinal
ports:
- 24900:24900
environment:
- CARDINAL_POSTGRES=true
volumes:
- cardinal-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
cardinal-postgres:
image: postgres:latest
container_name: cardinal_postgres
restart: always
environment:
- POSTGRES_USER=cardinal
- POSTGRES_PASSWORD=cardinal
ports:
- 24910:5432
volumes:
- postgres-data:/var/lib/postgresql/data
volumes:
cardinal-data:
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.