|
|
||
|---|---|---|
| .woodpecker.yaml | ||
| Dockerfile | ||
| entrypoint.sh | ||
| LICENSE.md | ||
| README.md | ||
| renovate.json | ||
Utility Container - Readarr
Note
: These containers are no longer supported by the original author, onedr0p, but were originally from https://github.com/home-operations/containers. This repository maintains them independently.
A lightweight, secure containerized deployment of Readarr, an ebook manager for Usenet and BitTorrent users.
Overview
This project provides a minimal Alpine Linux container running Readarr with security best practices, automated CI/CD pipeline, and comprehensive vulnerability scanning.
Features
- 🛡️ Security First: Minimal Alpine base, non-root user, security scanning
- 🔄 Automated CI/CD: Woodpecker CI with automated builds and deployments
- 📦 Multi-Architecture: Support for amd64 and arm64 platforms
- 🔍 Vulnerability Scanning: Trivy integration for critical vulnerability detection
- ✅ Quality Assurance: Hadolint for Dockerfile best practices
- 📋 SBOM Generation: Software Bill of Materials with Syft and CycloneDX
- 🔐 Container Signing: Optional Cosign signing and attestation
Quick Start
Docker Compose
version: '3.8'
services:
readarr:
image: code.billie.codes/utility-container-readarr:latest
container_name: readarr
restart: unless-stopped
environment:
- TZ=Etc/UTC
- UMASK=0002
- READARR__UPDATE__BRANCH=develop
volumes:
- readarr-config:/config
- /path/to/books:/books
- /path/to/downloads:/downloads
ports:
- "8787:8787"
user: "1000:1000"
volumes:
readarr-config:
Docker Run
docker run -d \
--name=readarr \
--restart=unless-stopped \
-p 8787:8787 \
-e TZ=Etc/UTC \
-e UMASK=0002 \
-e READARR__UPDATE__BRANCH=develop \
-v readarr-config:/config \
-v /path/to/books:/books \
-v /path/to/downloads:/downloads \
--user="1000:1000" \
code.billie.codes/utility-container-readarr:latest
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
TZ |
Etc/UTC |
Timezone for the container |
UMASK |
0002 |
File creation mask |
READARR__UPDATE__BRANCH |
develop |
Readarr update branch (develop or master) |
Volumes
| Path | Description |
|---|---|
/config |
Readarr configuration and database |
/books |
Your ebook library |
/downloads |
Download location for ebooks |
Ports
| Port | Description |
|---|---|
8787 |
Readarr web interface |
Build Information
- Base Image: Alpine Linux 3.22
- Readarr Version: 0.4.12.2753 (develop channel)
- Architecture: Multi-arch (amd64, arm64)
- Init System: Catatonit (lightweight init system)
Security Features
- ✅ Non-root user execution (
nobody:nogroup) - ✅ Minimal attack surface (Alpine Linux)
- ✅ Automated vulnerability scanning (Trivy)
- ✅ Container image signing (Cosign)
- ✅ Software Bill of Materials (SBOM)
- ✅ Security-focused Dockerfile practices (Hadolint validated)
CI/CD Pipeline
This project uses Woodpecker CI with the following pipeline:
- Security Scanning: Trivy vulnerability assessment
- Linting: Hadolint Dockerfile validation
- Build: Multi-architecture container build
- Deploy: Automated push to registry
- Signing: Optional Cosign signing
- SBOM: Software Bill of Materials generation
Development
Building Locally
# Build for current platform
docker build -t readarr .
# Build for specific platform
docker build --build-arg TARGETPLATFORM=linux/amd64 -t readarr-amd64 .
docker build --build-arg TARGETPLATFORM=linux/arm64 -t readarr-arm64 .
Running Tests
# Lint Dockerfile
hadolint ./Dockerfile
# Security scan
trivy fs . --severity CRITICAL
Version Information
- Readarr: 0.4.12.2753 (develop channel)
- Package Author: PurpleBooth
- Update Method: Docker
- License: MIT
Support
- Readarr Documentation: https://readarr.servarr.com/
- Source Code: https://github.com/Readarr/Readarr
- Issues: Report issues in the project repository
License
This project is released under the MIT License. See LICENSE.md for details. This does not cover any packaged applications, which are included unmodified and are subject to their own licenses.
Note: This container is designed specifically for Readarr ebook management. For other Servarr products, please use their respective dedicated containers.