{"id":24642897,"url":"https://github.com/zartek-creole/plexmediaserver_updater","last_synced_at":"2026-04-28T12:31:30.246Z","repository":{"id":233264042,"uuid":"786386961","full_name":"ZarTek-Creole/plexmediaserver_updater","owner":"ZarTek-Creole","description":"Plex Media Server Auto Updater - Bash script for seamless, automated updates on Linux. Ensures you always run the latest Plex version with one-click install, error handling, and complete compatibility.","archived":false,"fork":false,"pushed_at":"2025-11-10T21:02:55.000Z","size":19,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-10T22:21:06.846Z","etag":null,"topics":["auto-update","automation","bash","linux","media-server","open-source","plex","plex-media-server","plex-server","script","scripts","server-management","software-update","sysadmin","updater"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZarTek-Creole.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-14T09:57:49.000Z","updated_at":"2025-11-10T21:02:58.000Z","dependencies_parsed_at":"2024-04-15T09:27:04.766Z","dependency_job_id":null,"html_url":"https://github.com/ZarTek-Creole/plexmediaserver_updater","commit_stats":null,"previous_names":["zartek-creole/plexmediaserver_updater"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ZarTek-Creole/plexmediaserver_updater","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarTek-Creole%2Fplexmediaserver_updater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarTek-Creole%2Fplexmediaserver_updater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarTek-Creole%2Fplexmediaserver_updater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarTek-Creole%2Fplexmediaserver_updater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZarTek-Creole","download_url":"https://codeload.github.com/ZarTek-Creole/plexmediaserver_updater/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarTek-Creole%2Fplexmediaserver_updater/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32381235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T11:25:28.583Z","status":"ssl_error","status_checked_at":"2026-04-28T11:25:05.435Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["auto-update","automation","bash","linux","media-server","open-source","plex","plex-media-server","plex-server","script","scripts","server-management","software-update","sysadmin","updater"],"created_at":"2025-01-25T13:12:53.951Z","updated_at":"2026-04-28T12:31:30.241Z","avatar_url":"https://github.com/ZarTek-Creole.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Plex Media Server Updater\n\n\u003cimg src=\"https://img.shields.io/badge/License-MIT-green.svg\" alt=\"MIT License\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Language-Bash-blue.svg\" alt=\"Bash Language\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Platform-Linux-grey.svg\" alt=\"Linux Platform\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Feature-Auto--Updater-orange.svg\" alt=\"Auto-Updater Feature\"\u003e\n\n\u003e Automate your Plex Media Server updates with precision and reliability\n\n## 📋 Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Usage](#usage)\n- [How It Works](#how-it-works)\n- [Limitations](#limitations)\n- [Use Cases](#use-cases)\n- [Contributing](#contributing)\n- [License](#license)\n- [Resources](#resources)\n\n## 🎯 Overview\n\nPlex Media Server Updater is a professional Bash automation script designed to streamline the update process for Plex Media Server on Linux systems. Manual updates can be time-consuming and error-prone; this tool eliminates those challenges by automatically detecting new versions, downloading updates, and installing them with minimal user intervention.\n\nBuilt with system administrators and home media server enthusiasts in mind, this script ensures your Plex installation stays current with the latest stable releases while maintaining system stability and reliability.\n\n## ✨ Features\n\n- **Automatic Version Detection**: Intelligently checks for the latest Plex Media Server version available\n- **One-Click Updates**: Streamlined update process with a single command execution\n- **Error Handling**: Comprehensive error detection and logging for troubleshooting\n- **Download Verification**: Validates downloaded packages to ensure integrity\n- **Service Management**: Seamless integration with systemd for service control\n- **Rollback Support**: Ability to revert to previous versions if needed\n- **Cron Compatibility**: Perfect for scheduled automated updates\n- **Minimal Dependencies**: Requires only standard Linux tools\n- **Detailed Logging**: Complete audit trail of all update operations\n- **Non-Interactive Mode**: Suitable for automated deployment scenarios\n\n## 📦 Requirements\n\n### System Requirements\n- **Operating System**: Debian-based Linux (Ubuntu, Debian, Linux Mint)\n- **Architecture**: x86_64 (AMD64)\n- **Bash Version**: 4.0 or higher\n- **Privileges**: sudo/root access for package installation\n\n### Software Dependencies\n- `wget` or `curl` for downloading packages\n- `dpkg` for package management\n- `systemctl` for service control (systemd-based systems)\n- Internet connectivity for version checks and downloads\n\n## 🚀 Installation\n\n### Quick Install\n\n```bash\n# Clone the repository\ngit clone https://github.com/ZarTek-Creole/plexmediaserver_updater.git\n\n# Navigate to the directory\ncd plexmediaserver_updater\n\n# Make the script executable\nchmod +x plexmediaserver_updater.sh\n```\n\n### Alternative: Direct Download\n\n```bash\n# Download directly\nwget https://raw.githubusercontent.com/ZarTek-Creole/plexmediaserver_updater/master/plexmediaserver_updater.sh\n\n# Make executable\nchmod +x plexmediaserver_updater.sh\n```\n\n## ⚙️ Configuration\n\nThe script works out-of-the-box with default settings. For advanced users, you can customize behavior by modifying variables at the top of the script:\n\n```bash\n# Example configuration options\nDOWNLOAD_DIR=\"/tmp/plex_updates\"    # Temporary download location\nLOG_FILE=\"/var/log/plex_update.log\" # Log file path\nBACKUP_CONFIG=true                   # Backup configuration before update\n```\n\n### Environment Variables\n\n- `PLEX_UPDATE_LOG`: Override default log location\n- `PLEX_DOWNLOAD_MIRROR`: Use alternative download source\n- `PLEX_SKIP_SERVICE_RESTART`: Skip automatic service restart\n\n## 💡 Usage\n\n### Basic Update\n\n```bash\n# Run the updater\nsudo ./plexmediaserver_updater.sh\n```\n\n### Scheduled Updates with Cron\n\nAdd to your crontab for automatic weekly updates:\n\n```bash\n# Edit crontab\ncrontab -e\n\n# Add this line for weekly updates (every Sunday at 3 AM)\n0 3 * * 0 /path/to/plexmediaserver_updater.sh \u003e\u003e /var/log/plex_update.log 2\u003e\u00261\n```\n\n### Check Version Only\n\n```bash\n# Check for updates without installing\n./plexmediaserver_updater.sh --check-only\n```\n\n## 🔧 How It Works\n\nThe updater follows a systematic approach to ensure safe and reliable updates:\n\n1. **Version Check**: Queries Plex's update API to determine the latest available version\n2. **Comparison**: Compares installed version against the latest release\n3. **Download**: If an update is available, downloads the appropriate package\n4. **Verification**: Validates the downloaded package integrity\n5. **Backup**: Creates a backup of current configuration (optional)\n6. **Installation**: Uses dpkg to install the new package\n7. **Service Restart**: Restarts the Plex Media Server service\n8. **Cleanup**: Removes temporary files\n9. **Logging**: Records all operations for audit purposes\n\n```\n┌─────────────────┐\n│  Version Check  │\n└────────┬────────┘\n         │\n         ▼\n    ┌─────────┐\n    │ Update? │───No───\u003e Exit\n    └────┬────┘\n         │ Yes\n         ▼\n  ┌──────────────┐\n  │   Download   │\n  └──────┬───────┘\n         │\n         ▼\n  ┌──────────────┐\n  │   Install    │\n  └──────┬───────┘\n         │\n         ▼\n    ┌─────────┐\n    │ Success │\n    └─────────┘\n```\n\n## ⚠️ Limitations\n\n- **Platform Specific**: Currently supports Debian-based distributions only\n- **Package Format**: Designed for .deb packages (not RPM)\n- **Internet Required**: Needs active internet connection for updates\n- **Root Access**: Requires sudo privileges for package installation\n- **Systemd Dependency**: Assumes systemd for service management\n- **Manual Rollback**: Automatic rollback not implemented for failed updates\n\n## 🎯 Use Cases\n\n### Home Media Server\nPerfect for home lab enthusiasts who want their Plex server always up-to-date without manual intervention.\n\n### Multi-Server Deployments\nIdeal for managing multiple Plex instances across different machines with consistent update policies.\n\n### Automated DevOps Pipelines\nIntegrate into CI/CD workflows for automated media server infrastructure management.\n\n### Educational Environments\nMaintain Plex installations in educational settings with minimal administrative overhead.\n\n### Small Business Media Solutions\nKeep enterprise media servers current without dedicated IT resources.\n\n## 🤝 Contributing\n\nContributions are welcome! If you'd like to improve this project:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/improvement`)\n3. Commit your changes (`git commit -am 'Add new feature'`)\n4. Push to the branch (`git push origin feature/improvement`)\n5. Open a Pull Request\n\nPlease ensure your code follows existing style conventions and includes appropriate documentation.\n\n## 📄 License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for full details.\n\nThe MIT License is a permissive license that allows you to use, modify, and distribute this software freely, with minimal restrictions.\n\n## 🔗 Resources\n\n### Official Documentation\n- [Plex Media Server Support](https://support.plex.tv/)\n- [Plex Installation Guide](https://support.plex.tv/articles/200288586-installation/)\n\n### Related Projects\n- [Tautulli](https://github.com/Tautulli/Tautulli) - Plex monitoring and statistics\n- [Ombi](https://github.com/Ombi-app/Ombi) - Plex request management\n- [PlexPy](https://github.com/JonnyWong16/plexpy) - Plex analytics\n\n### Community\n- [Plex Forums](https://forums.plex.tv/)\n- [r/PleX Subreddit](https://www.reddit.com/r/PleX/)\n\n---\n\n**Maintained by [ZarTek-Creole](https://github.com/ZarTek-Creole)** | **Star this project if you find it useful!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzartek-creole%2Fplexmediaserver_updater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzartek-creole%2Fplexmediaserver_updater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzartek-creole%2Fplexmediaserver_updater/lists"}