Skip to content

Installation and Deployment

comicsnow edited this page Oct 10, 2026 · 1 revision

Docker (Recommended)

Comics Now! publishes automated, production-hardened container images to GitHub Container Registry: ghcr.io/comicsnow/comics-now:latest.

docker run -d \
  --name comics-now \
  -p 3000:3000 \
  -v $(pwd)/data:/app/data \
  -v /path/to/your/comics:/comics:ro \
  --restart unless-stopped \
  ghcr.io/comicsnow/comics-now:latest

Docker Compose

Create a docker-compose.yml file:

services:
  comics-now:
    image: ghcr.io/comicsnow/comics-now:latest
    container_name: comics-now
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - DATA_DIR=/app/data
      - PORT=3000
      # Optional: Cloudflare Zero Trust
      # - CLOUDFLARE_AUD=your-aud-tag
      # - CLOUDFLARE_TEAM_DOMAIN=your-team.cloudflareaccess.com
    volumes:
      # Persistent application state (SQLite databases, cache, thumbnails)
      - ./data:/app/data
      # Your comic library (mount :ro for safety, or :rw if you want archive write-back/renaming)
      - /path/to/comics:/comics:ro
      # Optional custom publisher logos
      - ./logos:/app/logos
    restart: unless-stopped

Run:

docker compose up -d

Bare Metal Installation

If running natively on Linux (Ubuntu, Debian, Raspberry Pi OS):

  1. System Prerequisites:
    sudo apt update
    sudo apt install -y nodejs npm python3 python3-pip python3-venv poppler-utils zip unrar
  2. Clone & Install:
    git clone https://github.com/ComicsNow/comics-now.git
    cd comics-now
    npm install
    npm run build
  3. Environment Setup:
    cp .env.example .env
    # Edit .env with your preferred ports and library paths
  4. Launch:
    npm start

Clone this wiki locally