Underground metal discovery for Lidarr. Dig through Bandcamp, Metal Archives, and more. Find heavy music, add it to your library.
  • Python 64.5%
  • HTML 35%
  • Dockerfile 0.5%
Find a file
Pedro Araujo 98f16c7c19
All checks were successful
Deploy / build-and-push (push) Successful in 35s
Deploy / deploy (push) Successful in 14s
Track todos scratchpad
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-23 14:55:57 +01:00
.forgejo/workflows Paginate matched artists and surface add-to-Lidarr results 2026-04-19 17:50:33 +01:00
.github/workflows Remove registry auth from CI (not needed) 2026-04-09 16:28:03 +00:00
docker Switch default DB to SQLite, add entrypoint with auto-migrate 2026-04-09 16:25:38 +00:00
src Search overhaul, per-album badge, Settings, Saved-for-later 2026-04-23 14:55:18 +01:00
.gitignore Initial commit 2026-04-02 11:50:40 -01:00
CLAUDE.md Document Lidarr container log path in CLAUDE.md 2026-04-20 06:51:14 +01:00
docker-compose.production.yml Deploy with sops env file instead of per-repo secrets 2026-04-19 09:22:33 +01:00
docker-compose.yml Add Bandcamp integration and Lidarr API client 2026-04-02 13:51:05 +00:00
Dockerfile Fix 403 on HTMX POSTs and enable gunicorn access logs 2026-04-19 18:05:23 +01:00
pyproject.toml Add Navidrome library scan 2026-04-17 10:46:32 +00:00
README.md Initialize Django project scaffold with CI/CD pipeline 2026-04-02 12:56:09 +00:00
todos Track todos scratchpad 2026-04-23 14:55:57 +01:00
uv.lock Fix CI: use uv dev-dependencies and add build-system 2026-04-02 14:06:48 +00:00

shreddarr

Underground metal discovery for Lidarr. Dig through Bandcamp, Metal Archives, and more. Find heavy music, add it to your library.

Tech Stack

  • Backend: Python / Django
  • Frontend: HTMX + Tailwind CSS + DaisyUI + Alpine.js
  • Data Sources: Bandcamp, Metal Archives, Last.fm, MusicBrainz
  • Integration: Lidarr API
  • Database: PostgreSQL
  • Deployment: Docker

Development

Prerequisites

  • uv (Python package manager)
  • Docker & Docker Compose

Quick Start

# Install dependencies
uv sync --dev

# Run with Docker Compose
docker compose up

# Or run locally (requires PostgreSQL)
cd src
python manage.py migrate
python manage.py runserver

Running Tests

uv run pytest

Linting

uv run ruff check src/

Deployment

The CI/CD pipeline builds and pushes the Docker image on every push to main:

docker pull registry.peddan.com/shreddarr:latest

Environment Variables

Variable Description Default
DJANGO_SECRET_KEY Django secret key insecure-change-me-in-production
DJANGO_SETTINGS_MODULE Settings module shreddarr.settings.prod
DATABASE_URL PostgreSQL connection URL postgres://shreddarr:shreddarr@localhost:5432/shreddarr
DJANGO_ALLOWED_HOSTS Comma-separated allowed hosts *