All Projects → eschizoid → flixctl

eschizoid / flixctl

Licence: GPL-3.0 license
A toolkit for controlling the infrastructure necessary for a true MaSaS (Movies and Shows as a Service) architecture.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to flixctl

Cloudbox
Ansible-based solution for rapidly deploying a Docker containerized cloud media server.
Stars: ✭ 1,763 (+4000%)
Mutual labels:  sonarr, plex, radarr, ombi, jackett
Media Docker
all-in-one deployment and configuration for an all-in-one media server, running on docker.
Stars: ✭ 148 (+244.19%)
Mutual labels:  sonarr, plex, plex-media-server, radarr
Usenet Docker
Docker-compose configuration for Sabnzbd, CouchPotato, Plex, Sonarr, Plexpy, Nzbhydra, Muximux, Radarr, NZBGet and Ombi with a Nginx proxy.
Stars: ✭ 153 (+255.81%)
Mutual labels:  sonarr, plex, plex-media-server, radarr
Htpc Docker Standup
A simple docker-compose based configuration to stand up a new HTPC w/ Plex, Deluge, Sonarr, Radarr and more!
Stars: ✭ 160 (+272.09%)
Mutual labels:  torrent, sonarr, plex, radarr
Jackett
API Support for your favorite torrent trackers
Stars: ✭ 6,690 (+15458.14%)
Mutual labels:  torrent, sonarr, radarr, jackett
IMDb-Scout-Mod
Auto search for movie/series on torrent, usenet, ddl, subtitles, streaming, predb and other sites. Adds links to IMDb pages from hundreds various sites. Adds movies/series to Radarr/Sonarr. Adds external ratings from Metacritic, Rotten Tomatoes, Letterboxd, Douban, Allocine. Media Server indicators for Plex, Jellyfin, Emby. Dark theme/style for …
Stars: ✭ 177 (+311.63%)
Mutual labels:  torrent, sonarr, plex, radarr
Plexguide.com
Welcome to https://PlexGuide.com ~ Rapidly deploy multiple-hasty Docker Containers through Ansible with local or Unlimited Google HD Space!
Stars: ✭ 1,631 (+3693.02%)
Mutual labels:  sonarr, plex, radarr, ombi
mediastack
All in one Docker Compose media server
Stars: ✭ 42 (-2.33%)
Mutual labels:  sonarr, plex, radarr, jackett
Bobarr
🍿 The all-in-one alternative for Sonarr, Radarr, Jackett... with a VPN and running in docker
Stars: ✭ 697 (+1520.93%)
Mutual labels:  torrent, sonarr, plex, radarr
Organizr
HTPC/Homelab Services Organizer - Written in PHP
Stars: ✭ 3,605 (+8283.72%)
Mutual labels:  sonarr, plex, radarr, ombi
Overseerr
Request management and media discovery tool for the Plex ecosystem
Stars: ✭ 557 (+1195.35%)
Mutual labels:  nzb, sonarr, plex, radarr
Mellow
Mellow can communicate with several APIs like Ombi, Sonarr, Radarr and Tautulli which are related to home streaming to use those services directly in your Discord client.
Stars: ✭ 193 (+348.84%)
Mutual labels:  sonarr, plex, radarr
Gooby
Gooby: The ultimate infinite Plex media server using a VPS and Cloud service
Stars: ✭ 230 (+434.88%)
Mutual labels:  sonarr, plex, radarr
Sickchill
Less rage, more chill.
Stars: ✭ 2,166 (+4937.21%)
Mutual labels:  torrent, nzb, plex
Heimdall
As the name suggests Heimdall Application Dashboard is a dashboard for all your web applications. It doesn't need to be limited to applications though, you can add links to anything you like.
Stars: ✭ 3,501 (+8041.86%)
Mutual labels:  sonarr, plex, radarr
K8s Mediaserver Operator
Repository for k8s Mediaserver Operator project
Stars: ✭ 81 (+88.37%)
Mutual labels:  sonarr, plex, radarr
Docker Compose Usenet
Docker-powered usenet pipeline
Stars: ✭ 240 (+458.14%)
Mutual labels:  sonarr, plex, radarr
posterr
A digital poster app for Plex, Sonarr, Radarr, and Readarr
Stars: ✭ 211 (+390.7%)
Mutual labels:  sonarr, plex, radarr
ChineseSubFinder
自动化中文字幕下载。字幕网站支持 shooter、xunlei、arrst、a4k 。支持 Emby、Jellyfin、Plex、Sonarr、Radarr、TMM
Stars: ✭ 2,212 (+5044.19%)
Mutual labels:  sonarr, plex, radarr
Muximux
A lightweight way to manage your HTPC
Stars: ✭ 1,008 (+2244.19%)
Mutual labels:  sonarr, plex, radarr

flixctl

Build Status Go Report Card GoDoc

flixctl provides an easy way to provision a Plex installation on the cloud. After the provisioning of the main infrastructure it’s done, flixctl can also be used to control some of the most popular components that users normally bundle up with Plex: torrent and newsgroup clients (transmission and nzbget), movies and shows searches (sonarr and radarr), movies and shows requests (ombi), and monitoring utilities (tautulli) just to mention a few.

Inspired by kubectl, flixctl was designed to be leveraged using Slack Slash API in conjunction with AWS Lambda. The flexibility of this architecture allows an easy installation of the full flixctl API into any Slack workspace. This means the provision and administration of a true MaSaS (Movies and Shows as a Service) architecture can be done via Slack.

Architecture

Pre-requisites

Infrastructure

  • 1 EC2 Instance

  • 2 EBS Volume, 1 for ROOT and 1 for Plex Library

  • 1 Glacier Vault (For Plex library cold storage)

  • 1 S3 Bucket (For Plex library cold storage)

Software

brew install go
brew install dep

Environment

Environment Variable Name Description

AWS_RESOURCE_TAG_NAME_VALUE

DYNAMODB_ENDPOINT

FLIXCTL_HOST

PLEX_PASSWORD

PLEX_PORT

PLEX_TOKEN

RADARR_API_KEY

RADARR_URL

PLEX_USER

SLACK_CLIENT ID

SLACK_CLIENT_SECRET

SLACK_LEGACY_TOKEN

SLACK_REDIRECT_URI

SLACK_GENERAL_HOOK_URL

SLACK_MONITORING_HOOK_URL

SLACK_NEW_RELEASES_HOOK_URL

SLACK_NOTIFICATION

SLACK_REQUESTS_HOOK_URL

SLACK_SIGNING_SECRET

SONARR_API_KEY

SONARR_URL

TAUTULI_API_KEY

TRANSMISSION_PORT

TR_AUTH

Installing it as a Slack app

To install the CLI into your Slack workspace, start the oauth flow here.

Useful commands

Dependencies

make dep

Lints

make lint

Build (CLI and λ’s)

make build

Install flixctl

make install

Deploy λ’s

make deploy-lambdas

Usage

flixctl

$ flixctl --help
To Control The Following flixctl Components:
  * Library
  * NZB Client
  * Ombi
  * Plex
  * Radarr
  * Sonarr
  * Torrent Client

Usage:
  flixctl [command]

Available Commands:
  help        Help about any command
  library     To Control Media Library
  nzb         To Control Nzb Client
  ombi        To Control Ombi
  plex        To Control Plex Media Center
  radarr      To Control Radarr
  sonarr      To Control Sonarr
  torrent     To Control Torrent Client
  version     To Get flixctl Version

Flags:
  -h, --help   help for flixctl

Use "flixctl [command] --help" for more information about a command.

flixctl admin

flixctl admin --help
To Perform Admin / Maintenance Tasks

Usage:
  flixctl admin [command]

Available Commands:
  renew-certs      To Renew Certs
  restart-services To Restart Plex Services
  slack-purge      To purge slack messages
  slack-token      To Get An Oauth Token

Flags:
  -h, --help   help for admin

Use "flixctl admin [command] --help" for more information about a command.

flixctl plex

$ flixctl plex --help
To Control Plex Media Server

Usage:
  flixctl plex [command]

Available Commands:
  start       To Start Plex
  status      To Get Plex Status
  stop        To Stop Plex
  token       To Get Plex Token

Flags:
  -h, --help   help for plex

Use "flixctl plex [command] --help" for more information about a command.

flixctl library

$ flixctl library --help
To Control Media Library

Usage:
  flixctl library [command]

Available Commands:
  catalogue   To Show Plex And Library Catalogue
  delete      To Delete Archives From Library
  download    To Download Movies Or Shows
  initiate    To Initiate Library Jobs
  inventory   To Show Library Inventory
  jobs        To List Library Jobs
  sync        To Sync Plex Watched Movies And Shows
  upload      To Upload Movies Or Shows

Flags:
  -h, --help   help for library

Use "flixctl library [command] --help" for more information about a command.

flixctl torrent

$ flixctl torrent --help
To Control Torrent Client

Usage:
  flixctl torrent [command]

Available Commands:
  download    To Download a Torrent
  search      To Search for Torrents
  status      To Show Torrents Status

Flags:
  -h, --help   help for torrent

Use "flixctl torrent [command] --help" for more information about a command.

flixctl ombi

$ flixctl ombi --help
To Control Ombi

Usage:
  flixctl ombi [command]

Available Commands:
  request     To Request Movies or Shows

Flags:
  -h, --help   help for ombi

Use "flixctl ombi [command] --help" for more information about a command.

flixctl nzb

$ flixctl nzb --help
To Control NZB Client

Usage:
  flixctl nzb [command]

Available Commands:
  status      To Show NZB Status

Flags:
  -h, --help   help for nzb

Use "flixctl nzb [command] --help" for more information about a command.

Examples

flixctl

$ flixctl version

flixctl admin

$ flixctl admin renew-cert

$ flixctl admin restart-services

$ flixctl admin slack-purge

$ flixctl admin slack-token \
    --slack-client-id xxxxxxxxxxxx.xxxxxxxxxxxx \
    --slack-client-secret xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
    --slack-code code \
    --slack-redrect-uri https://redirect-uri.com

flixctl plex

$ flixctl plex start \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

$ flixctl plex status \
    --slack-notification "false"

$ flixctl plex stop \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

$ flixctl plex monitor \
    --max-inactive-time 30 \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

$ flixctl plex token

flixctl torrent

$ flixctl torrent download \
    --magnet-link "magnet:?xt=urn:btih:80707BDD08084AFD5996BF88DC879BA1B1C0CB67&dn=T2+Trainspotting+2017+BDRip+1080p&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fp4p.arenabg.ch%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.pirateparty.gr%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.internetwarriors.net%3A1337%2Fannounce&tr=udp%3A%2F%2Fpublic.popcorn-tracker.org%3A6969%2Fannounce&tr=udp%3A%2F%2Feddie4.nl%3A6969%2Fannounce&tr=udp%3A%2F%2F9.rarbg.to%3A2710%2Fannounce&tr=udp%3A%2F%2F9.rarbg.me%3A2710%2Fannounce"

$ flixctl torrent search \
    --keywords Trainspotting \
    --minimum-quality 1080 \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

$ flixctl torrent status \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

flixctl library

$ flixctl library catalogue \
    --filter <all|archived|live|unwatched|watched>

$ flixctl library delete \
    --archive-id U1IDD8GVNYGhtnbtjfr7_oV-h9hNqcjAkR1RfCdBrL8uoQdlViB0TtGUvnWrKkLM8nlf7LEZTV_X8CuXVoMKtnEBOBELgmmuQDIZkSA9xU-mlWJMSxf_132VcP4RTXNxZ7MdmTdNGA

$ flixctl library download \
    --job-id RP5RUuUyX0PxGlbipyeUr-pjPB74lYqOqXT6mA6sjrDU3y2Y7-ggAgQepNKeuULMpw8RIhNo6U60bTIONhxVI9dg61az \
    --target-file "/plex/movies/glacier/movie-$(date +%Y-%m-%d.%H:%M:%S).zip"

$ flixctl library inventory \
    --enable-sync "true" \
    --max-upload-items "2" \
    --job-id RP5RUuUyX0PxGlbipyeUr-pjPB74lYqOqXT6mA6sjrDU3y2Y7-ggAgQepNKeuULMpw8RIhNo6U60bTIONhxVI9dg61az \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

$ flixctl library inventory \
    --enable-sync "false" \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

$ flixctl library initiate

$ flixctl library initiate \
    --archive-id U1IDD8GVNYGhtnbtjfr7_oV-h9hNqcjAkR1RfCdBrL8uoQdlViB0TtGUvnWrKkLM8nlf7LEZTV_X8CuXVoMKtnEBOBELgmmuQDIZkSA9xU-mlWJMSxf_132VcP4RTXNxZ7MdmTdNGA \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

$ flixctl library jobs \
    --filter <all|archive|inventory> \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

$ flixctl library sync \
    --slack-notification "true" \
    --slack-notification-channel "monitoring"

$ flixctl library upload \
    --enable-batch-mode "true"

$ flixctl library upload \
    --enable-batch-mode "false" \
    --source-file "/plex/movies/trainspoting/Trainspoting.mkv"
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].