Skip to Content
GuideSelf-hostedDocker Installation

Docker Installation

Command Line Installation

1. Run the command in your terminal

Run the following command in your terminal (replace the paths with your actual paths):

docker run -d \ --name cinemore-server \ -p 8000:8000 \ -v /path/to/data:/app/data \ -v /path/to/media:/media \ cinemore/cinemore-server:latest

2. Understand port and volume mapping

  • /app/data: Mount config files and data cache. For example, to use /volume3/medias/cinemore as the config directory: /volume3/medias/cinemore:/app/data
  • /media: Mount media files directory. If you have /volume3/medias for movies and TV: /volume3/medias:/media

You can also mount more granularly, e.g.:

  • /volume3/medias/tv:/media/tv, /volume3/medias/movies:/media/movies
  • Or /volume3/medias/tv:/media/TV, /volume3/medias/movies:/media/Movies

GUI Installation

1. Search and download

Search for “cinemore” to download the image. Add image acceleration source if download is slow.

Search cinemore

2. Click Run

Click “Run” on the image details page.

Click Run

3. Fill in port and volume mapping

On the container creation screen, fill in the port and volume paths (see Mount Instructions above).

Port and volumeVolume configCreate container

Command Line to Compose

SQLite Version

Copy the content below into docker-compose.yml, replace /custom with your actual path, then run docker compose up -d:

name: cinemore services: cinemore-server: image: cinemore/cinemore-server:latest container_name: cinemore-server ports: - "8080:8000" volumes: # Config directory mapping - /custom:/app/data # Media directory mapping - /custom:/media # Multi-path mapping example # - /path/to/1:/media/movies1 # - /path/to/2:/media/movies2 # - /path/to/3:/media/tv1 # - /path/to/4:/media/tv2 restart: unless-stopped

Standalone Database Version

For PostgreSQL, copy the content below and replace /custom with your actual path:

name: cinemore services: cinemore-server: image: cinemore/cinemore-server:latest container_name: cinemore-server ports: - "8080:8000" volumes: # Config directory mapping - /custom:/app/data # Media directory mapping - /custom:/media # Multi-path mapping example # - /path/to/1:/media/movies1 # - /path/to/2:/media/movies2 # - /path/to/3:/media/tv1 # - /path/to/4:/media/tv2 environment: - TZ=Asia/Shanghai - PORT=8000 - DATA_PATH=/app/data - MEDIA_PATH=/media - DB_TYPE=postgres - POSTGRES_HOST=postgres - POSTGRES_PORT=5432 - POSTGRES_USER=postgres - POSTGRES_PASSWORD=cinemore_password - POSTGRES_DB=cinemore restart: unless-stopped depends_on: postgres: condition: service_healthy healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8000/health || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - cinemore-network postgres: image: postgres:17 container_name: cinemore-postgres environment: POSTGRES_DB: cinemore POSTGRES_USER: postgres POSTGRES_PASSWORD: cinemore_password volumes: - /custom/postgresql:/var/lib/postgresql/data restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 networks: - cinemore-network networks: cinemore-network: driver: bridge

After the container is created, access the Cinemore Private Cloud server at NAS IP:8000 (or the port you mapped in compose).

Last updated on