PVR software similar to Sonarr
, Radarr
, and all the other *-arrs
out there. This is
shawncatz's personal project to manage my media server.
This is also a project that I use to play around with new technologies and experiment with new ideas.
This is the most recent evolution of software that I've been working on - on and off - for over 20 years. It started as a simple PHP site that would manage TV Series and Movies and grew from there.
This code is alpha. It's all public, but it's still pretty rough. Let me know if you're interested or going to use it.
- Manage TV Series and Movies
- Manage an index of torrents and usenet posts
- In the future I'd like to extend this to support other indexing systems (
Jackett
, etc)
- In the future I'd like to extend this to support other indexing systems (
- Automatically download new episodes and movies
- Automatically rename and organize media
- Automatically sync with
Plex
andJellyfin
- Integrates with Qbittorrent and NZBGet for downloading
An overview of all the technology used in this project. Everything is built with golang
and the UI is react
and typescript
.
- Flame is the service that manages communication with the torrent and nzb
downloaders.
- It also includes golang clients for
Qbittorrent
andNZBGet
.
- It also includes golang clients for
- Tower is the service that manages all of the media and communications with
Plex
andJellyfin
. - Scry is the search service. It handles searching the
Elasticsearch
indexes of media and releases (torrents and nzbs) as well as searches againstTheTVDB
andTheMovieDB
. - UI is the web UI for the system. It's built with
React
andTypescript
.
- Golem is a custom framework for managing microservices. I built this to play around with code generation to simplify working on multiple services. It ain't perfect, but it was fun to build.
- Grimoire is a custom ORM that's built on top of
Kamva mgm using
Golang
1.18 generics. - Mercury is a lightweight pub/sub framework built on top of Nats. Simplifies communication between services as well as websockets.
- Minion is a lightweight background job / worker pool / scheduler.
- TVDB is a client for TheTVDB API.
- TMDB is a client for TheMovieDB API.
Arcane
is the setup and management CLI forDashoTV
, it is not yet released.
- MongoDB database
- Nats message bus
- Redis cache
- Elasticsearch indexing and search engine
- Nginx reverse proxy
The entire system is managed as a set of containers through Docker Compose
. This is not ready for production use, and
hasn't been productionized for other people to try it yet.