{"id":45779255,"url":"https://github.com/plesk/dist-upgrader","last_synced_at":"2026-02-26T10:58:08.827Z","repository":{"id":213325557,"uuid":"733476874","full_name":"plesk/dist-upgrader","owner":"plesk","description":"Plesk dist-upgrader tool","archived":false,"fork":false,"pushed_at":"2026-02-13T14:23:01.000Z","size":545,"stargazers_count":2,"open_issues_count":7,"forks_count":4,"subscribers_count":20,"default_branch":"main","last_synced_at":"2026-02-13T22:38:15.534Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plesk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-12-19T12:17:42.000Z","updated_at":"2026-02-13T14:23:04.000Z","dependencies_parsed_at":"2023-12-20T10:30:42.855Z","dependency_job_id":"b9dd8774-bd17-416a-b3c7-46e65c3dcac9","html_url":"https://github.com/plesk/dist-upgrader","commit_stats":null,"previous_names":["plesk/dist-upgrader"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/plesk/dist-upgrader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plesk%2Fdist-upgrader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plesk%2Fdist-upgrader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plesk%2Fdist-upgrader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plesk%2Fdist-upgrader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plesk","download_url":"https://codeload.github.com/plesk/dist-upgrader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plesk%2Fdist-upgrader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29856783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T08:51:08.701Z","status":"ssl_error","status_checked_at":"2026-02-26T08:50:19.607Z","response_time":89,"last_error":"SSL_read: 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":[],"created_at":"2026-02-26T10:58:04.437Z","updated_at":"2026-02-26T10:58:08.795Z","avatar_url":"https://github.com/plesk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The tool to dist-upgrade servers with Plesk\n\n## Introduction\nThis utility is the official tool to dist-upgrade servers with Plesk on Debian and Ubuntu.\n\n\u003e [!NOTE]\n\u003e This repository only contains framework code which can't be used by itself without an upgrader module suitable for your system.\n\u003e Check the following repositories for versions of this tool endowed with upgrader modules for particular systems:\n\u003e - [Dist-upgrade Ubuntu 18 to 20](https://github.com/plesk/ubuntu18to20)\n\u003e - [Dist-upgrade Ubuntu 20 to 22](https://github.com/plesk/ubuntu20to22)\n\u003e - [Dist-upgrade Debian 11 to 12](https://github.com/plesk/debian11to12)\n\nGeneral information about Plesk dist-upgrade tool and its default behavior follows. Please see the documentation of specific tools like ubuntu18to20 for details pertaining to particular systems.\n\n### Upgrader modules\nThis utility supports multiple upgrader modules performing particular variants of dist-upgrade (e.g. a module for Ubuntu 18 to 20 upgrade, a module for Debian 11 to 12, etc.). The module suitable for your system is selected automatically from available modules.\n\n### Conversion phases\nThe conversion process consists of two phases:\n1. The \"convert\" phase contains preparation and upgrading actions.\n2. The \"finish\" phase is the last phase containing all finishing actions.\n\nDuring each phase a conversion plan consisting of stages, which in turn consist of actions, is executed. You can see the general stages in the `--help` output and the detailed plan in the `--show-plan` output.\n\n## Using the utility\nTo monitor the conversion process, we recommend using the ['screen' utility](https://www.gnu.org/software/screen/) to run the utility in the background. To do so, run the following command:\n```shell\n\u003e screen -S dist-upgrader\n\u003e ./dist-upgrader\n```\nIf you lose your SSH connection to the server, you can reconnect to the screen session by running the following command:\n```shell\n\u003e screen -r dist-upgrader\n```\n\nYou can also call dist-upgrader in the background:\n```shell\n\u003e ./dist-upgrader \u0026\n```\n\nAnd monitor its status with the '--status' or '--monitor' flags:\n```shell\n\u003e ./dist-upgrader --status\n\u003e ./dist-upgrader --monitor\n... live monitor session ...\n```\n\nDepending on the OS, the conversion process requires 2-3 reboots. It will be resumed automatically after reboot by the `plesk-dist-upgrader` systemd service. In addition to `--status` and `--monitor`, you can check the status of the conversion process by running the following command:\n```shell\n\u003e systemctl status plesk-dist-upgrader\n... live monitor session ...\n```\n\nRunning dist-upgrader without any arguments initiates the conversion process. The utility performs preliminary checks, and if any issues are detected, it provides descriptions of the problems along with guidance on how to resolve them.\nFollowing the preliminary checks, the tool proceeds with the dist-upgrade process, which is divided into multiple stages. Some stages end with a reboot. You can check the list of stages and steps by `./dist-upgrader --show-plan`.\nWhen dist-upgrade is finished, you will see the following login message:\n```\n===============================================================================\nMessage from the Plesk dist-upgrader tool:\nThe server has been upgraded to \u003cnew OS\u003e.\nYou can remove this message from the /etc/motd file.\n===============================================================================\n```\n\n### Logs\nIf something goes wrong, read the logs to identify the problem.\nThe dist-upgrader writes its log to the `/var/log/plesk/dist-upgrader.log` file, as well as to stdout.\nAfter the first reboot, the process is resumed by the `plesk-dist-upgrader` service, so its output is available in system logs (see `systemctl status plesk-dist-upgrader` and `journalctl -u plesk-dist-upgrader`).\n\n### Revert\nIf the utility fails during the the \"convert\" stage before actual dist-upgrade of packages, you can use the dist-upgrader utility with the `-r` or `--revert` options to restore Plesk to normal operation. The dist-upgrader will undo some of the changes it made and restart Plesk services. Once you have resolved the root cause of the failure, you can attempt the conversion again.\nNote:\n- You cannot use revert to undo the changes after the dist-upgrade of packages, because packages provided by the new OS version are already installed.\n- `--revert` mode is not perfect, it can fail or be unable to restore the initial state of the system. So, the importance of creating full server backup or snapshot before starting dist-upgrade can't be stressed enough.\n\n### Checking the status of the conversion process and monitoring its progress\nTo check the status of the conversion process, use the `--status` option. You can see the current stage of the conversion process, the elapsed time, and the estimated time until finish.\n```shell\n\u003e ./dist-upgrader --status\n```\n\nTo monitor the progress of the conversion process in real time, use the `--monitor` option.\n```shell\n\u003e ./dist-upgrader --monitor\n( stage 3 / action re-installing plesk components  ) 02:26 / 06:18\n```\n\n## Issue handling\nIf for some reason the process has failed, inspect the log. By default, it's put to `/var/log/plesk/dist-upgrader.log`. If the process was interrupted before the first reboot, you can restart it with the `--resume` option. If the problem has happened after the first reboot, you can restart the process by running `systemctl restart plesk-dist-upgrader`.\n\nIf something goes wrong, you will be informed on the next login with this message:\n```\n===============================================================================\nMessage from Plesk dist-upgrader tool:\nSomething went wrong during dist-upgrade by dist-upgrader.\nSee the /var/log/plesk/dist-upgrader.log file for more information.\nYou can remove this message from the /etc/motd file.\n===============================================================================\n```\n\n### Send feedback\nIf you got any error, please contact developers of the particular dist-upgrade tool you used (the link for issues should be in --help). Describe your problem and attach the feedback archive or at least the log to the issue. The feedback archive can be created by calling the tool with the `--prepare-feedback` option:\n```shell\n\u003e ./dist-upgrader --prepare-feedback\n```\n\nIf you are sure that it's some dist-upgrader framework problem, not an upgrader module problem, please create an issue in this repository and provide the same information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplesk%2Fdist-upgrader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplesk%2Fdist-upgrader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplesk%2Fdist-upgrader/lists"}