NuroDev / jarvis

🍿 Simple Home Media Stack

Home Page:https://jarvis.nuro.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

License Build Gitmoji

Jarvis is a simple and easy to setup media stack that can be deployed on any unix based system that has Docker installed within a few minutes and offer a near feature complete self-hosted media system:

πŸ“‹ Requirements

These are the required libraries/packages to run this stack:

πŸš€ Usage

curl -sSL https://jarvis.nuro.dev | sh

πŸ”§ Configure

For the most part, once the stack has been setup and deployed there are 2 key configuration steps that needs to be done.

🏑 Homer

The first step is to modify the Homer config file. This can be found under config/homer/config.yml.

In here you can modify your home dashboard with whatever links or customization you like. A number of service links have already been provided, however there is one key configration requirement and that is to modify the URL's set for each service to be the domain of your choice.

πŸ“« Email (Optional)

To generate a certificate from Let's Encrypt, an email address is required. As such in the Caddyfile a placeholder email global variable has been provided but commented out. Uncomment the variable by removing the # and entering your email address.

You can also optionally modify the acme_ca URL, which specifies the URL to the ACME CA's directory. However it is recommended to leave this to the default Let's Encrypt production endpoint unless you require the use of the Let's Encrypt staging or development endpoints.

πŸ”‘ Access

Container Description URL
Cadvisor Docker Metrics cadvisor.ip_address
Grafana Monitoring Dashboard monitoring.ip_address
Homer Home Dashboard ip_address
Node Exporter System Metrics node_exporter.ip_address
Overseerr Content Requesting request.ip_address
Plex Content Streaming watch.ip_address
Prometheus Metrics Database prometheus.ip_address
Tautulli Plex Metrics tautulli.ip_address

βœ… Optional

There are some work-in-progress optional branches that trade some services for alternatives.

The most recent of such branches has been the jellyfin branch which replaces the plex and tautulli services with Jellyfin which is a completely self-hosted media server, compared to Plex which still requires on services hosted by Plex themselves.

To get started using the jellyfin branch, use the following command in place of the one above:

curl -sSL https://jarvis.nuro.dev/jellyfin | sh

Or check the jellyfin branch for more details.

πŸ“‹ TODO

  • Add GitHub Actions CI for testing.
  • Fix Homer service URL's so they're based on the DOMAIN environment vairable.
  • Add basicauth to some metric endpoints via the Caddy Module.
  • Add Caddy prometheus metrics using Caddy module (Requires custom Caddy image build).
  • Provide custom pre-made Grafana dashboard.
  • Add Varken data aggregator container.

About

🍿 Simple Home Media Stack

https://jarvis.nuro.dev

License:MIT License


Languages

Language:Shell 100.0%