Frontmatter:
---
title: Calibre-web Stack
description: Automated Calibre-web setup in NetGrimoire
published: true
date: 2026-05-05T18:38:55.823Z
tags: docker,swarm,Calibre-web,netgrimoire
editor: markdown
dateCreated: 2026-05-05T18:38:55.823Z
---

# Calibre-web

## Overview
The Calibre-web stack provides a self-contained solution for serving Calibre web interface in NetGrimoire. This stack consists of the automated setup, configuration, and management of the Calibre-web service.

---

## Architecture
| Service | Image | Port | Role |
|---------|-------|------|------|
- **calibre-web-automated**: crocodilestick/calibre-web-automated:latest | 807 | Web UI &amp; API |
- **caddy**: Docker image for Caddy reverse proxy | - | - |
- **kuma**: Uptime Kuma monitoring and dashboard | - | - |

Exposed via: `books.pncharris.com`, `books.netgrimoire.com`

Homepage group: PNCHarris Apps

---

## Build & Configuration

### Prerequisites
This stack requires a Docker Swarm manager (`znas`) and worker nodes (`docker4`). Ensure that these roles are correctly assigned in your NetGrimoire configuration.

### Volume Setup
```bash
mkdir -p /DockerVol/Calibre-web/Config
chown calibre:calibre /DockerVol/Calibre-web/Config
```

### Environment Variables
```bash
# generate: openssl rand -hex 32
PUID=1964
PGID=1964
TZ=America/Chicago
CWA_PORT_OVERRIDE=8083
```

### Deploy
```bash
cd services/swarm/stack/Calibre-web
set -a && source .env && set +a
docker stack config --compose-file Calibre-web-stack.yml > resolved.yml
docker stack deploy --compose-file resolved.yml Calibre-web
rm resolved.yml
docker stack services Calibre-web
```

### First Run
After the initial deployment, ensure that Caddy is configured correctly by verifying its labels and checking for any authentication issues.

---

## User Guide

### Accessing Calibre-web
| Service | URL | Purpose |
|---------|-----|---------|
- **calibre-web-automated**: http://calibre-web-automated:807 |
- **Caddy**: https://books.netgrimoire.com, https://books.pncharris.com |

### Primary Use Cases
This stack is designed to be used as a primary Calibre web interface for users. It provides an automated setup and management solution.

### NetGrimoire Integrations
This stack connects to other NetGrimoire services through environment variables and labels. Ensure that the necessary dependencies are installed on your manager node before deploying this service.

---

## Operations

### Monitoring
[kuma monitors from kuma.* labels]
```bash
docker stack services Calibre-web
```

### Backups
Critical vs reconstructable backups for `/DockerVol/Calibre-web/Config` and `/DockerVol/Calibre-web/library`. Ensure that these volumes are properly backed up before making any changes.

### Restore
```bash
cd services/swarm/stack/Calibre-web
./deploy.sh
```

---

## Common Failures
| Symptom | Cause | Fix |
|---------|------|-----|
- No CWA Web UI access | Incorrect Caddy configuration or Calibre-web setup issues | Review Caddy labels and verify Calibre-web is properly deployed. |
- Calibre-web crashes on startup | Insufficient resources for the service | Increase resources allocated to the `calibre-web-automated` service. |
- Unable to connect to library | Incorrect library path or permissions issues | Verify that the `/DockerVol/Calibre-web/library` volume has correct permissions and ownership. |

---

## Changelog

| Date | Commit | Summary |
|------|--------|---------|
| 2026-05-05 | e437881c | Initial documentation and deployment script generation |
| 2026-05-05 | 578ae21a | First run setup for Calibre-web |
| 2026-05-01 | c3b0c0f5 | Minor improvements to service configuration and logging |
| 2026-04-29 | 11e0a461 | Initial commit with swarm and docker-stack configuration |
| 2026-04-29 | 8e2d4d37 | Initial setup for Calibre-web stack in NetGrimoire |

<Write a paragraph summarizing the evolution of this service based on the diffs above. If no diffs available, note that this is the initial documentation.>

---

## Notes
- Generated by Gremlin on 2026-05-05T18:38:55.823Z
- Source: swarm/Calibre-web.yaml
- Review User Guide and Changelog sections