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
PlexandJellyfin - 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
QbittorrentandNZBGet.
- It also includes golang clients for
- Tower is the service that manages all of the media and communications with
PlexandJellyfin. - Scry is the search service. It handles searching the
Elasticsearchindexes of media and releases (torrents and nzbs) as well as searches againstTheTVDBandTheMovieDB. - UI is the web UI for the system. It's built with
ReactandTypescript.
- 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
Golang1.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.
Arcaneis 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.