Files
Inanis_Vault/21-Server Reference/homelab/stacks/calibre.md

2.3 KiB

Calibre

Self-hosted e-book library manager (Calibre desktop server).

Status: STOPPED — The main calibre container is in Created state and the Tailscale sidecar exited with code 128. This stack is not currently running.

Access (when running)

Containers

Container Image Status
calibre lscr.io/linuxserver/calibre:latest Created (never started)
calibre-tailscale-sidecar tailscale/tailscale (pinned image) Exited (128) ~3 weeks ago

The Tailscale sidecar is running a pinned image hash (sha256:1a2e759f...) rather than latest. This may be why it failed — the image may be outdated or incompatible.

Compose File

Path: /home/artanis/DockerFiles/Calibre/docker-compose.yaml

services:
  calibre:
    image: lscr.io/linuxserver/calibre:latest
    container_name: calibre
    pull_policy: always
    restart: unless-stopped
    ports:
      - "8088:8080"
      - "8089:8081"
      - "8181:8181"
    volumes:
      - /home/artanis/DockerFiles/Calibre/server-config:/config
      - /home/artanis/DockerFiles/Calibre/books:/books
    environment:
      PUID: 1000
      PGID: 1000
      TZ: America/Chicago

  calibre-tailscale-sidecar:
    image: tailscale/tailscale:latest
    container_name: calibre-tailscale-sidecar
    restart: always
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun
    volumes:
      - calibre_tailscale_state:/var/lib/tailscale
    environment:
      - TS_AUTHKEY=<redacted>
      - TS_HOSTNAME=calibre
      - TS_STATE_DIR=/var/lib/tailscale
    network_mode: "service:calibre"

volumes:
  calibre_tailscale_state:

# calibre-web service is commented out in compose

Data Layout

Path Contents
/home/artanis/DockerFiles/Calibre/server-config Calibre server configuration
/home/artanis/DockerFiles/Calibre/books E-book library files

Notes

  • A calibre-web service (separate lightweight web UI) is fully defined in the compose file but commented out
  • To restart this stack, the Tailscale sidecar image may need to be re-pulled (pull_policy: always is set on calibre but not the sidecar)