Updated README.md

This commit is contained in:
Roger Gonzalez 2024-12-30 11:39:55 -03:00
parent 76bbdc9537
commit 97262ce5dc
Signed by: rogs
GPG Key ID: C7ECE9C6C36EC2E6

View File

@ -3,10 +3,10 @@
@@html:<img src="https://visitor-badge.laobi.icu/badge?page_id=rogs.yams" alt="visitor badge"/>@@ @@html:<img src="https://visitor-badge.laobi.icu/badge?page_id=rogs.yams" alt="visitor badge"/>@@
@@html:<img alt="Discord" src="https://img.shields.io/discord/1168025418243256391?logo=discord&label=Discord">@@ @@html:<img alt="Discord" src="https://img.shields.io/discord/1168025418243256391?logo=discord&label=Discord">@@
This is a highly opinionated media server. This is a highly opinionated media server that simplifies the setup and management of your home media collection.
- Website: [[https://yams.media][https://yams.media]]. - Website: [[https://yams.media][https://yams.media]]
- Code documentation and explanation: [[https://gitlab.com/rogs/yams/-/blob/master/docs.org][docs.org]]. - Code documentation: [[https://gitlab.com/rogs/yams/-/blob/master/docs.org][docs.org]]
- Discord: [[https://discord.gg/Gwae3tNMST]] - Discord: [[https://discord.gg/Gwae3tNMST]]
- Matrix: [[https://matrix.to/#/#yams-space:chat.rogs.me]] - Matrix: [[https://matrix.to/#/#yams-space:chat.rogs.me]]
@ -14,182 +14,212 @@ This is a highly opinionated media server.
:PROPERTIES: :PROPERTIES:
:ID: 280135a0-2cff-4e93-8679-7d1a6d56b7b2 :ID: 280135a0-2cff-4e93-8679-7d1a6d56b7b2
:END: :END:
This script installs the following software:
- [[https://sonarr.tv/][Sonarr]]
- [[https://radarr.video/][Radarr]]
- [[https://lidarr.audio][Lidarr]]
- [[https://readarr.com/][Readarr]]
- [[https://jellyfin.org/][Jellyfin]]
- [[https://emby.media/][Emby]]
- [[https://www.plex.tv/][Plex]]
- [[https://www.qbittorrent.org/][qBittorrent]]
- [[https://www.bazarr.media/][Bazarr]]
- [[https://github.com/Prowlarr/Prowlarr][Prowlarr]]
- [[https://github.com/qdm12/gluetun][gluetun]]
- [[https://www.portainer.io/][Portainer]]
With this combination, you can create a fully functional media server that is going to download, YAMS installs and configures a complete media server stack using Docker containers:
categorize, subtitle and serve your favorite shows, movies, audio and books.
Download Management:
- [[https://www.qbittorrent.org/][qBittorrent]] - Torrent client
- [[https://sabnzbd.org/][SABnzbd]] - Usenet downloader
- [[https://github.com/qdm12/gluetun][Gluetun]] - VPN client for secure downloads
Media Management:
- [[https://sonarr.tv/][Sonarr]] - TV show management and automation
- [[https://radarr.video/][Radarr]] - Movie management and automation
- [[https://lidarr.audio][Lidarr]] - Music management and automation
- [[https://readarr.com/][Readarr]] - Books and audiobooks management
- [[https://www.bazarr.media/][Bazarr]] - Automatic subtitle management
- [[https://prowlarr.com/][Prowlarr]] - Indexer management for your \*arr apps
Media Servers (Choose One):
- [[https://jellyfin.org/][Jellyfin]] (Recommended) - Open source media server
- [[https://emby.media/][Emby]] - Media server with premium features
- [[https://www.plex.tv/][Plex]] - Popular media server with advanced features
Management & Monitoring:
- [[https://www.portainer.io/][Portainer]] - Container management UI
- [[https://containrrr.dev/watchtower/][Watchtower]] - Automatic container updates
* Features * Features
:PROPERTIES: :PROPERTIES:
:ID: 0e072c32-3158-4961-869c-49920090f3d5 :ID: 0e072c32-3158-4961-869c-49920090f3d5
:END: :END:
In no particular order:
- *Automatic shows/movies download*: Just add your shows and movies to the watch list and it should YAMS provides a comprehensive media server solution with:
automatically download the files when they are available.
- *Automatic clasification and organization*: Your media files should be completely organized by default. - *Smart Media Management*: Automatically organizes your media library
- *Automatic subtitles download*: Self explanatory. Your media server should automatically download - Downloads new episodes and movies as they become available
subtitles in the languages you choose, if they are available. - Categorizes content into appropriate folders
- *Support for Web, Android, iOS, Android TV and whatever that can support Emby*: Since we are - Manages music and book collections
leveraging from Emby, you should be able to watch your favorite media almost anywhere. - Fetches subtitles in your preferred languages
- *Flexible Media Access*: Access your content anywhere
- Web interface for browser-based streaming
- Apps for mobile devices (iOS/Android)
- Smart TV apps
- Roku, Apple TV, and other streaming devices
- Transcoding for optimal playback on any device
- *Security and Privacy*
- Built-in VPN support for secure downloads
- User management and sharing controls
- SSL/TLS encryption support
- *Easy Management*
- Simple CLI interface with `yams` command
- Web-based management through Portainer
- Automatic container updates via Watchtower
- Backup and restore functionality
* Dependencies * Dependencies
:PROPERTIES: :PROPERTIES:
:ID: 01577a0a-852e-481a-b9b3-791b68594f96 :ID: 01577a0a-852e-481a-b9b3-791b68594f96
:END: :END:
You need to have:
Required:
- [[https://www.docker.com/][Docker]] - [[https://www.docker.com/][Docker]]
- [[https://docs.docker.com/compose/][Docker Compose]] - [[https://docs.docker.com/compose/][Docker Compose]]
If you haven't installed them, don't worry! The script will attempt to run both installations (it only The installation script can automatically install these on Debian/Ubuntu systems.
works in Debian and Ubuntu!)
* Before running * Before Installation
:PROPERTIES: :PROPERTIES:
:ID: 1c609bfc-4e6e-4fd8-8129-1b722fd7cda8 :ID: 1c609bfc-4e6e-4fd8-8129-1b722fd7cda8
:END: :END:
Before installing, make sure you have:
- *An installation location*: The script is going to ask you for a install location, but it will default
to ~/opt/yams~. Just make sure your current user has permissions to write on the selected directory.
- *A media folder*: This is the folder where all your files are going to be downloaded and categorized. If
you choose ~/srv/media~, the script is going to create the following folders:
+ ~/srv/media/tv~: For your TV shows
+ ~/srv/media/movies~: For your movies
+ ~/srv/media/music~: For your music
+ ~/srv/media/books~: For your books
+ ~/srv/media/downloads~: For your torrent downloads
+ ~/srv/media/blackhole~: For your torrents blackhole
- *A regular user to run and own the media files*: You shouldn't use ~root~ for this user, but I'm not
your father, nothing is going to stop you lol
- *A VPN service (optional but STRONGLY recommended):* If you can, choose one from [[https://yams.media/advanced/vpn#official-supported-vpns][this list]]. The VPN I
always recommend is [[https://mullvad.net/en/][Mullvad]] because:
+ They dont require your email or information to create a new account.
+ Its simple to configure.
+ They only have monthly subscriptions, so you can leave them whenever you want.
+ You can pay with crypto.
* To run Prepare the following:
1. *Installation Location*
- Default: ~/opt/yams~
- Ensure your user has write permissions
2. *Media Directory*
- Default: ~/srv/media~
- Will contain subdirectories:
+ ~/srv/media/tvshows~: TV series
+ ~/srv/media/movies~: Movies
+ ~/srv/media/music~: Music files
+ ~/srv/media/books~: Books and audiobooks
+ ~/srv/media/downloads~: Temporary download location
+ ~/srv/media/blackhole~: Watch folder for torrents
3. *Non-root User*
- Regular system user to own and manage files
- Must have sudo privileges for initial setup
4. *VPN Service* (Optional but Recommended)
- Supported providers listed at [[https://yams.media/advanced/vpn#official-supported-vpns][yams.media/advanced/vpn]]
- [[https://mullvad.net/en/][Mullvad]] recommended for:
+ No email required
+ Simple configuration
+ Flexible payment options
+ Monthly subscription model
* Installation
:PROPERTIES: :PROPERTIES:
:ID: a0417c61-3fd8-40a0-9385-6c5aaed37337 :ID: a0417c61-3fd8-40a0-9385-6c5aaed37337
:END: :END:
Quick installation:
#+begin_src bash #+begin_src bash
$ git clone --depth=1 https://gitlab.com/rogs/yams.git /tmp/yams git clone --depth=1 https://gitlab.com/rogs/yams.git /tmp/yams
$ cd /tmp/yams cd /tmp/yams
$ bash install.sh bash install.sh
#+end_src #+end_src
And follow the instructions. Follow the interactive prompts to configure your installation.
Tested on:
So far, I've tested this in Debian 11 and Ubuntu 22.04. - Debian 11/12
- Ubuntu 22.04
* Usage * Usage
:PROPERTIES: :PROPERTIES:
:ID: 9e995141-b386-4962-9842-7209bedc5651 :ID: 9e995141-b386-4962-9842-7209bedc5651
:END: :END:
When the script finishes installing without issues, just run:
YAMS provides a simple CLI interface:
#+begin_src #+begin_src
$ yams
yams - Yet Another Media Server yams - Yet Another Media Server
Usage: yams [--help|restart|stop|start|destroy|check-vpn|update] Usage: yams [command] [options]
options:
--help displays this help message Commands:
restart restarts yams services --help displays this help message
stop stops all yams services restart restarts yams services
start starts yams services stop stops all yams services
destroy destroy yams services so you can start from scratch start starts yams services
check-vpn checks if the VPN is working as expected destroy destroy yams services so you can start from scratch
update updates YAMS check-vpn checks if the VPN is working as expected
backup backs up yams to the destination location
Examples:
yams start # Start all YAMS services
yams backup /path/to/backup # Backup YAMS to specified directory
#+end_src #+end_src
* How to configure?
* Configuration
:PROPERTIES: :PROPERTIES:
:ID: 242b8dfa-82ab-4d86-b3ea-0a0af6cf3ad5 :ID: 242b8dfa-82ab-4d86-b3ea-0a0af6cf3ad5
:END: :END:
Go to [[https://yams.media/config/][https://yams.media/config/]] and follow the config instructions Complete configuration guide: [[https://yams.media/config/][https://yams.media/config/]]
* Future Development
:PROPERTIES:
:ID: eba4712e-fa8a-42c8-bc32-b593141c99a4
:END:
Planned features and improvements:
- [X] Multiple media server support (Jellyfin/Emby/Plex)
- [X] Portainer integration
- [X] Update functionality
- [X] Lidarr and Readarr integration
- [X] Enhanced Usenet support
- [ ] Alpine-based images for reduced footprint
- [ ] Additional download clients
- [ ] Jackett integration
- [ ] Request management (Jellyseerr/Overseerr)
- [ ] Dashboard integration (Organizr/Heimdall)
- [ ] Enhanced themes and customization
- [ ] WireGuard VPN support
- [ ] Filebrowser integration
- [ ] Jellyfin account management
* Donations * Donations
:PROPERTIES: :PROPERTIES:
:ID: 992fb05d-c171-4ba9-9207-3dd1d467656e :ID: 992fb05d-c171-4ba9-9207-3dd1d467656e
:END: :END:
If you *really* wish to donate, first I would like to say thank you from the bottom of my heart! ❤️ Second, I
would prefer you donate to any of the projects used in this script.
They are the ones doing the real work, I just created a docker-compose file and a couple of bash scripts: If you'd like to support YAMS, please consider donating to the underlying projects:
- [[https://www.linuxserver.io/donate][linuxserver.io donations page]] - [[https://www.linuxserver.io/donate][linuxserver.io]]
- [[https://sonarr.tv/donate][Sonarr donations page]] - [[https://sonarr.tv/donate][Sonarr]]
- [[https://radarr.video/donate][Radarr donations page]] - [[https://radarr.video/donate][Radarr]]
- [[https://opencollective.com/jellyfin][Jellyfin donations page]] - [[https://opencollective.com/jellyfin][Jellyfin]]
- [[https://emby.media/premiere.html][Emby premier page]] (Recommended! I personally use this service) - [[https://emby.media/premiere.html][Emby Premier]]
- [[https://www.plex.tv/plex-pass/][Plex pass page]] - [[https://www.plex.tv/plex-pass/][Plex Pass]]
- [[https://www.qbittorrent.org/donate][qBittorrent donations page]] - [[https://www.qbittorrent.org/donate][qBittorrent]]
- [[https://www.paypal.com/donate/?cmd=_s-xclick&hosted_button_id=XHHRWXT9YB7WE&source=url][Bazarr donations page]] - [[https://www.paypal.com/donate/?cmd=_s-xclick&hosted_button_id=XHHRWXT9YB7WE&source=url][Bazarr]]
- [[https://www.paypal.me/qmcgaw][gluetun donations page]] - [[https://www.paypal.me/qmcgaw][Gluetun]]
- [[https://opencollective.com/Prowlarr#sponsor][Prowlarr donations page]] - [[https://opencollective.com/Prowlarr#sponsor][Prowlarr]]
Just let them know YAMS sent you there 😎 * Special Thanks
* todo [4/17]
:PROPERTIES:
:ID: eba4712e-fa8a-42c8-bc32-b593141c99a4
:END:
(in order)
- [X] Support for multiple media servers (Jellyfin and Plex). [Done ✅]
- [X] Add [[https://www.portainer.io/][Portainer]]. [Done ✅]
- [X] Add updatE Functionality (~yams update~). [Done ✅]
- [ ] Consider moving to Alpine images (might not be possible without a big change on the docker-compose file).
- [ ] Add multiple download clients to choose from.
- [ ] Add Jackett as an "yams extra".
- [ ] Add [[https://github.com/Fallenbagel/jellyseerr][jellyseer]] or [[https://ombi.io/][Omby]].
- [ ] Add a dashboard like [[https://docs.organizr.app/installation/installing-organizr][Organizr]].
- [X] Consider adding [[https://lidarr.audio/][Lidarr]] and [[https://readarr.com/][Readarr]]. [Done ✅] Thanks to [[https://gitlab.com/jataggart][Jay Taggart]]!
- [ ] Support for qBittorrent themes (VueTorrent).
- [ ] Support for Wireguard.
- [ ] Check [[https://filebrowser.org/][Filebrowser]].
- [ ] Investigate [[https://github.com/FlareSolverr/FlareSolverr][FlareSolverr]].
- [ ] Check [[https://github.com/Unpackerr/unpackerr][unpackerr]].
- [ ] Check [[https://github.com/Flemmarr/Flemmarr][Flemarr]].
- [ ] Check usenet.
- [ ] Check [[https://github.com/hrfee/jfa-go][Jellyfin Accounts Go]].
* Special thanks
:PROPERTIES: :PROPERTIES:
:ID: b0a86edc-dc4f-4ac2-908c-fd08f1d2f99c :ID: b0a86edc-dc4f-4ac2-908c-fd08f1d2f99c
:END: :END:
- [[https://info.linuxserver.io/][linuxserver.io]] for their amazing docker images
- [[https://sonarr.tv/][Sonarr]] YAMS wouldn't be possible without:
- [[https://radarr.video/][Radarr]]
- [[https://jellyfin.org/][Jellyfin]] - [[https://info.linuxserver.io/][linuxserver.io]] for amazing Docker images
- [[https://emby.media/][Emby]] - All the core applications listed above
- [[https://www.plex.tv/][Plex]] - Contributors:
- [[https://www.qbittorrent.org/][qBittorrent]]
- [[https://www.bazarr.media/][Bazarr]]
- [[https://github.com/Prowlarr/Prowlarr][Prowlarr]]
- [[https://www.portainer.io/][Portainer]]
- My friends:
+ [[https://github.com/xploshioOn][xploshioOn]] + [[https://github.com/xploshioOn][xploshioOn]]
+ [[https://github.com/norlis][norlis]] + [[https://github.com/norlis][norlis]]
+ [[https://github.com/isaac152][isaac152]] + [[https://github.com/isaac152][isaac152]]
For giving me ideas and helping me test the script + [[https://gitlab.com/jataggart][Jay Taggart]]
- The YAMS community for testing and feedback
** And finally: And most importantly: Thank you for using YAMS! 🙏
:PROPERTIES:
:ID: 126d4a9c-08a5-47f4-bffb-61b251ef394c
:END:
- You 🫵, for being such an amazing human being, checking out my repo and (hopefully!) using it on your
media server. Thank you! 🙇