{"id":13522023,"url":"https://github.com/Smiley-McSmiles/jellyman","last_synced_at":"2025-03-31T22:30:27.471Z","repository":{"id":56785778,"uuid":"525029545","full_name":"Smiley-McSmiles/jellyman","owner":"Smiley-McSmiles","description":"Jellyman is a set of scripts to install/manage and update the jellyfin-combined tar.gz generic linux package","archived":false,"fork":false,"pushed_at":"2025-02-13T18:56:18.000Z","size":1290,"stargazers_count":112,"open_issues_count":1,"forks_count":5,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-02-13T19:35:01.726Z","etag":null,"topics":["bash","jellyfin"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Smiley-McSmiles.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-15T14:58:10.000Z","updated_at":"2025-02-13T18:56:23.000Z","dependencies_parsed_at":"2024-01-11T19:36:40.261Z","dependency_job_id":"d27e97c3-c639-4bdb-8cc1-7c0f753b9bc4","html_url":"https://github.com/Smiley-McSmiles/jellyman","commit_stats":null,"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smiley-McSmiles%2Fjellyman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smiley-McSmiles%2Fjellyman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smiley-McSmiles%2Fjellyman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smiley-McSmiles%2Fjellyman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Smiley-McSmiles","download_url":"https://codeload.github.com/Smiley-McSmiles/jellyman/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246552037,"owners_count":20795755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","jellyfin"],"created_at":"2024-08-01T06:00:41.113Z","updated_at":"2025-03-31T22:30:27.465Z","avatar_url":"https://github.com/Smiley-McSmiles.png","language":"Shell","funding_links":[],"categories":["👾 Companion Apps \u0026 Tools"],"sub_categories":["🔧 Server Administration"],"readme":"![jellyman](.github/banner-shadow.png?raw=true \"Jellyman Logo\")\n=======\n\n\u003e v1.9.6 - A Jellyfin Manager for the Jellyfin generic linux amd64, arm64, and armhf tar.gz packages\n\n\u003e Tested on Fedora 34-40, Ubuntu 22.04-24.04, Manjaro 21.3.6, EndeavourOS Artemis Neo/Nova/Cassini Nova, Linux Mint 21, and Rocky/Alma/RHEL Linux 8.6/9.0\n\n\u003e Should work on Any Debian, Arch, or RHEL Based Distribution **with SystemD**\n\n# Description\n\nJellyman is a lightweight BASH CLI (Command Line Interface) tool for installing and managing Jellyfin. Most notably, The ability to download and install the Jellyfin Media Server and switch between already downloaded versions of Jellyfin on the fly. As well as create a full backup (automatically or manually) so you can move or import all your metadata and user information to another machine.\n\n# Getting Started\n\n```sh\ngit clone https://github.com/Smiley-McSmiles/jellyman\ncd jellyman\nchmod ug+x setup.sh\nsudo ./setup.sh\ncd ~/\n```\n\n# Features\n\n* **Setup** - Sets up the initial install.\n* **Update** - [URL - optional] Downloads and updates the current stable or supplied Jellyfin version.\n```\n    └── NOTE - Supplied URL has to be formatted like: jellyfin_x.x.x-\u003cARCHITECTURE\u003e.tar.gz\n```\n* **Update-Jellyman** - Updates this Jellyman CLI Tool.\n```\n    └── Checks and downloads most recent version from GitHub.\n```\n* **Update Beta** Downloads and updates to the current Jellyfin Beta version.\n* **Disable** - Disable the jellyfin.service.\n* **Enable** - Enable the jellyfin.service\n* **Start** - Start the jellyfin.service.\n* **Stop** - Stop the jellyfin.service.\n* **Restart** - Restart the jellyfin.service.\n* **Status** - Get status information on jellyfin.service.\n* **Backup** - Input a directroy to output the backup archive.\n```\n    ├── jellyman -b \"/path/to/backup/directory\" will output a jellyfin-backup.tar to that directory.\n    ├── jellyman -ba will perform an automatic backup. But only if automatic backups are set up.\n    └── jellyman -bu will launch the automatic backup setup utility.\n```\n* **Import** - Import a .tar file to pick up where you left off on another system.\n```\n    ├── Media metadata will only import if your new OS/setup and old OS/setup media folders are exactly the same.\n    └── User and Web-UI configurations will still import just fine however.\n```\n* **Fix Permissions** - [DIRECTORY - optional] Reset the permissions of Jellyfin's Media Library or supplied directory.\n```\n    └── Uses 'chmod -R 770' on your media directory.\n```\n* **Get Version** - Get the current installed version of Jellyfin and Jellyman.\n* **Remove Version** - Remove a specific version of Jellyfin\n```\n    └── Provides a list of currently installed versions of Jellyfin for you to remove.\n```\n* **Version Download** - Download an available Jellyfin version from the stable repository.\n```\n    └── Provides a list of Jellyfin versions for you to download.\n```\n* **Version Switch** - Switch Jellyfin version for another previously installed version.\n```\n    └── Provides a list of currently installed versions of Jellyfin for you to switch to.\n```\n* **View Logs** - Select from a list of logs to view.\n* **Search Media** - Search Media in your media directory/directories.\n* **List Media** - Provide a tree list of all media (output saved to /tmp/media.txt).\n* **Recertify https** - Removes old https certifications and creates new **self signed** keys for the next 365 days. \n* **Rename TV** - Batch renaming script for TV shows.\n* **Library Scan** - Tell Jellyfin to scan your media library.\n* **Change Port** - Change Jellyfins network ports.\n* **Change Media Directory** - Changes the Media Directory/Directories for Jellyman.\n* **Import API Key** - Import a new API key.\n* **Transcode** - Transcode a file/directory with a GB per hour filter.\n```\n    ├── 1.5GB/hr is recommended for 1080p.\n    ├── 3GB/hr is recommended for 4k.\n    ├── Now uses AV1 codec (No HDR).\n    └── Please be careful as this can delete media files.\n         └──Select [no] to delete original files to preserve your media.\n```\n* **Uninstall** - Uninstalls Jellyfin and Jellyman completely \n```\n    └── Does not remove backup archives or media files.\n```\n\n# Example Install\n\n## Click to watch video example install\n[![Tutorial](https://img.youtube.com/vi/sXvEWvffcFc/0.jpg)](https://www.youtube.com/watch?v=sXvEWvffcFc)\n\n```sh\n1. Start first time setup\n2. Force update Jellyman\n3. Import a jellyfin-backup.tar file\n\n\u003e Please select the number corresponding with the option you want to select.\n[1-3] \u003e\u003e\u003e 1\n\n\u003e Fetching newest stable Jellyfin version...\n\u003e WARNING: THIS OPTION IS HIGHLY UNSTABLE, ONLY USE IF YOU KNOW WHAT YOU ARE DOING!!!\n\n\u003e Is Jellyfin CURRENTLY installed on this system?\n[y/N] \u003e\u003e\u003e no\n\n\u003e Please enter the LINUX user for Jellyfin\n[jellyfin] \u003e\u003e\u003e jellyfin\n\u003e Linux user = jellyfin\n\u003e Unpacking /home/smiley/jellyman/jellyfin_10.9.8-amd64.tar.gz...\n\u003e Installing dependencies...\n\u003e Preparing to install needed dependancies for Jellyfin...\n\u003e ID=fedora\nDependencies resolved.\nNothing to do.\nComplete!\nLast metadata expiration check: 1:16:45 ago on Wed 31 Jul 2024 05:16:09 AM CDT.\n\u003e Setting Permissions for Jellyfin...\n\u003e Unblocking port 8096 and 8920...\nsuccess\nsuccess\nsuccess\n\n\u003e DONE\n\n+-------------------------------------------------------------------+\n|                 Navigate to http://localhost:8096/                |\n|         in your Web Browser to claim your Jellyfin server         |\n+-------------------------------------------------------------------+\n\n+-------------------------------------------------------------------+\n|         To enable https please enter 'sudo jellyman -rc'          |\n|       (After you have navigated to the Jellyfin Dashboard)        |\n|                                                                   |\n|                To manage Jellyfin use 'jellyman -h'               |\n+-------------------------------------------------------------------+\n\n\u003e Press 'q' to exit next screen\n● jellyfin.service - Jellyfin Media Server - Installed by Jellyman\n     Loaded: loaded (/usr/lib/systemd/system/jellyfin.service; enabled; preset: disabled)\n    Drop-In: /usr/lib/systemd/system/service.d\n             └─10-timeout-abort.conf\n     Active: active (running) since Wed 2024-07-31 06:32:56 CDT; 5s ago\n   Main PID: 11878 (jellyfin.sh)\n      Tasks: 21 (limit: 23170)\n     Memory: 112.8M (peak: 128.1M)\n        CPU: 5.178s\n     CGroup: /system.slice/jellyfin.service\n             ├─11878 /bin/bash /opt/jellyfin/jellyfin.sh\n             └─11879 /opt/jellyfin/jellyfin/jellyfin -d /opt/jellyfin/data -C /opt/jellyfin/cache -c /opt/jellyfin/config -l /opt/jellyfin/log --ffmpeg /usr/bin/ffmpeg\n\nJul 31 06:33:01 stronglap jellyfin.sh[11879]: [06:33:01] [INF] [6] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: /usr/bin/ffmpeg\nJul 31 06:33:01 stronglap jellyfin.sh[11879]: [06:33:01] [INF] [6] Emby.Server.Implementations.ApplicationHost: ServerId: 264746fa848346df86e221b850267006\nJul 31 06:33:01 stronglap jellyfin.sh[11879]: [06:33:01] [INF] [6] Emby.Server.Implementations.ApplicationHost: Core startup complete\nJul 31 06:33:01 stronglap jellyfin.sh[11879]: [06:33:01] [INF] [6] Main: Startup complete 0:00:04.8788077\n\n\u003e Would you like to remove the cloned git directory /home/smiley/jellyman?\n[Y/n] \u003e\u003e\u003e no\n\u003e Okay, keeping /home/smiley/jellyman\n```\n\n# Usage\n\n```\nJellyman - The Jellyfin Manager\n-Created by Smiley McSmiles\n\nSyntax: jellyman -[COMMAND] [PARAMETER]\n\nCOMMANDS:\n-b,   --backup               [DIRECTORY] Input directory to output backup archive.\n-ba,  --backup-auto          Perform an automatic backup.\n-bu,  --backup-utility       Start the automatic backup utility.\n-d,   --disable              Disable Jellyfin on System Start.\n-e,   --enable               Enable Jellyfin on System Start.\n-h,   --help                 Print this Help.\n-i,   --import               Display list of backup .tar files to Import and automatically restores the selected backup.\n-p,   --permissions          [DIRECTORY - optional] Reset the permissions of Jellyfin's Media Library or supplied directory.\n-r,   --restart              Restart Jellyfin.\n-s,   --start                Start Jellyfin.\n-S,   --stop                 Stop Jellyfin.\n-t,   --status               Status of Jellyfin.\n-sm,  --search-media         Search Media in your media directory/directories.\n-lm,  --list-media           Provide a tree list of all media (output saved to /tmp/media.txt).\n-u,   --update-jellyfin      [URL - optional] Downloads and updates the current stable or supplied Jellyfin version.\n-U,   --update-jellyman      Update Jellyman - The Jellyfin Manager.\n-ub,  --update-beta          Update Jellyfin to the most recent Beta.\n-ls,  --library-scan         Tell Jellyfin to scan your media library.\n-v,   --version              Get the current installed version of Jellyfin.\n-vd,  --version-download     Download an available Jellyfin version from the stable repository.\n-vs,  --version-switch       Switch Jellyfin version for another previously installed version.\n-vr,  --version-remove       Remove a Jellyfin version.\n-vl   --view-log             Choose from a list of logs to view.\n-rc,  --recertify            Removes old https certifications and creates new ones for the next 365 days.\n-rn,  --rename               Batch renaming script for TV shows.\n-cp,  --change-http          Change Jellyfins http network port - Default = 8096.\n-cps, --change-https         Change Jellyfins https network port - Default = 8920.\n-ik,  --import-key           Import a Jellyfin API key (Needed for `-ls` command).\n-md,  --media-directory      Change the Media Directory for Jellyman.\n-tc,  --transcode            Transcode a file/directory with a GB per hour filter (1.5GB is recommended).\n-tcp, --transcode-progress   View progress of the Transcode.\n-tcs, --transcode-stop       Stop the current transcode process.\n-X,   --uninstall            Uninstall Jellyfin and Jellyman Completely.\n\nEXAMPLE:\n- To stop jellyfin, disable on startup, and then get status of the jellyfin service:\n├── \"sudo jellyman --stop --disable --status\"\n└── \"sudo jellyman -S -d -t\"\n\n```\n\n### In case Jellyman wont upgrade itself\n\n```shell\ngit clone https://github.com/Smiley-McSmiles/jellyman.git\ncd jellyman\nchmod ug+x setup.sh\nsudo ./setup.sh -U\ncd ~/\n```\n\n### License\n\n   This project is licensed under the [GPL V3.0 License](https://github.com/Smiley-McSmiles/jellyman/blob/main/LICENSE).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSmiley-McSmiles%2Fjellyman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSmiley-McSmiles%2Fjellyman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSmiley-McSmiles%2Fjellyman/lists"}