feat: add lidarr_dev stack and update README templates

This commit is contained in:
2026-07-02 21:08:11 -07:00
parent 09e133cec2
commit d3b7ac59fd
5 changed files with 131 additions and 21 deletions
+8 -21
View File
@@ -2,36 +2,23 @@
## Stack conventions ## Stack conventions
- Every stack has exactly 3 files: `compose.yaml` (or `docker-compose.yml`), `sample.env`, `README.md` - Every stack has at least 3 files: `compose.yaml` (dockhand style), `sample.env`, `README.md`
- `_dev` = experimental, `_notes` = docs/minimal examples, no suffix = production-ready - `_dev` = experimental, `_notes` = docs/minimal examples, no suffix = production-ready
- Always references an external `proxy` network (`docker network create proxy` once) - Always references an external `proxy` network (`docker network create proxy` once)
- Volumes use `${VOL_PATH:-/data}` as the base path - Volumes use `${VOL_PATH:-/data}` as the base path
- Timezone defaults to `America/Vancouver` - Timezone defaults to `America/Vancouver`, but only include if the container requires it.
- Restart policy, image tag, and port are configurable via env vars with sensible defaults - Restart policy, image tag, and port are configurable via env vars with sensible defaults
- `deploy.bash` at root emulates Dockhand CLI for local testing (uses `fzf`)
- New stacks: copy from `_docs/template-compose.md` and `_docs/template-readme.md` - New stacks: copy from `_docs/template-compose.md` and `_docs/template-readme.md`
- Compose section order: `image``restart``volumes``environment``ports``networks``depends_on``healthcheck``labels``command``user` - Compose section order: `image``restart``volumes``environment``ports``networks``depends_on``healthcheck``labels``command``user`
- README section order: `Overview``Getting Started``Docker Run``Project Details``Environment Variable Notes``Volume Notes``Network Notes``Additional Notes / Gotchas``Dockhand Stack, Deploy from Git`
## Test a single stack - Every compose file must declare the external `proxy` network at the root level:
```yaml
```sh networks:
# From the stack directory: proxy:
docker compose --env-file sample.env up -d external: true
```
Note: `deploy.bash` only looks for `compose.yaml`, not `docker-compose.yml`.
## Environment loading
`--env-file` supports multiple files, applied in order (last wins):
```sh
docker compose --env-file sample.env --env-file /data/test.env up -d
``` ```
## No CI/CD, no dependency management ## No CI/CD, no dependency management
This is a Docker Compose file collection, not a code project. No tests, no build tools, no lockfiles. This is a Docker Compose file collection, not a code project. No tests, no build tools, no lockfiles.
## OpenCode
The `opencode/` stack runs OpenCode with a local ollama backend. Config is at `opencode/config/config.json`. Requires `ollama/` stack to be running and `OPENCODE_SERVER_PASSWORD` to be set.
+15
View File
@@ -5,6 +5,21 @@
A short 1--3 sentence description of what this Docker Compose project A short 1--3 sentence description of what this Docker Compose project
does. does.
## Getting Started
1. Start the container: `docker compose up -d`
2. Open http://localhost:[PORT] in your browser
3. Follow the initial setup wizard to configure the application
## Docker Run
```bash
docker run -d \
--name=[SERVICE_NAME] \
# ...env vars, ports, volumes...
[IMAGE_NAME]
```
## Project Details ## Project Details
- **Project Repository:** [Link](https://example.com) - **Project Repository:** [Link](https://example.com)
+84
View File
@@ -0,0 +1,84 @@
# Lidarr
## Overview
Lidarr is a music collection manager for Usenet and BitTorrent users. It automatically monitors specified artists, searches for new releases (or upgrades to existing tracks), and sends them to your download client. After download, Lidarr renames and organizes the files into your music library and can notify your media server of the new content.
## Getting Started
Open http://localhost:8686 in your browser and complete the initial setup wizard:
1. **Choose your UI language**
2. **Add a download client** — select qBittorrent, enter its host/port/credentials
3. **Add an indexer** — or connect to Prowlarr for automatic indexer sync
Once the wizard finishes, Lidarr displays **"No artists found"**. To populate your library:
- Go to **Settings → Media Management** and add a **Root Folder** (e.g., `/music`) — this is where your organized music library will live
- Click **Add an artist** and search by name — Lidarr fetches metadata, discography, and album art
- Lidarr cross-references your Root Folder for any existing files and matches them to the artist's catalog
### Download flow
qBittorrent downloads to its own directory → Lidarr picks it up, renames/tags the files, and moves them into `<Root Folder>/Artist Name/Album/`
### Spotify playlist import
Lidarr doesn't natively import Spotify playlists. Use a community tool like [SpotifyToLidarr](https://github.com/Claudemirovsky/SpotifyToLidarr) or set up a **List** (Settings → Lists) from Last.fm or MusicBrainz to auto-add artists based on your listening habits.
## Docker Run
```bash
docker run -d \
--name=lidarr \
-e PUID=1000 \
-e PGID=1000 \
-e UMASK=002 \
-e TZ=America/Vancouver \
-p 8686:8686 \
-v ${VOL_PATH:-./data}/lidarr/config:/config \
-v ${VOL_PATH:-./data}/lidarr/data:/data \
--network proxy \
--restart unless-stopped \
ghcr.io/hotio/lidarr:release
```
## Project Details
- **Project Repository:** [https://lidarr.audio/](https://lidarr.audio/)
- **Container Image:** [ghcr.io/hotio/lidarr](https://hotio.dev/containers/lidarr/)
- **Reverse Proxy Port:** `8686`
## Environment Variable Notes
| Variable | Description |
|---|---|
| `LIDARR_IMAGE` | Container image (default: `ghcr.io/hotio/lidarr:release`) |
| `LIDARR_RESTART` | Restart policy (default: `unless-stopped`) |
| `LIDARR_PORT` | Published port for the web UI (default: `8686`) |
| `VOL_PATH` | Base path for persistent data volumes (default: `./data`) |
| `TZ` | Container timezone (default: `America/Vancouver`) |
## Volume Notes
| Volume | Purpose |
|---|---|
| `${VOL_PATH}/lidarr/config` | Application configuration and database |
| `${VOL_PATH}/lidarr/data` | Download client data and working directory |
## Network Notes
Requires an external `proxy` network. Create it once with:
```bash
docker network create proxy
```
## Dockhand Stack, Deploy from Git
- **Cookbooks Repository**
- **stackname:** lidarr_dev
- **Compose file path:** lidarr_dev/compose.yaml
- **Additional env file (optional):** lidarr_dev/sample.env
Load `lidarr_dev/sample.env` into the Environment variables in Dockhand, then create the Stack.
+20
View File
@@ -0,0 +1,20 @@
services:
lidarr:
image: ${LIDARR_IMAGE:-ghcr.io/hotio/lidarr:release}
restart: ${LIDARR_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-./data}/lidarr/config:/config
- ${VOL_PATH:-./data}/lidarr/data:/data
environment:
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=${TZ:-America/Vancouver}
ports:
- "${LIDARR_PORT:-8686}:8686"
networks:
- proxy
networks:
proxy:
external: true
+4
View File
@@ -0,0 +1,4 @@
# Lidarr
VOL_PATH=./data
LIDARR_IMAGE=ghcr.io/hotio/lidarr:release
TZ="America/Vancouver"