Migrating from 1.4.2 to 1.5.0
This is a migration document for those on 1.4.2 to 1.5.0
I've only tested this from 1.4.2 to 1.5.0 . If you're on a lower version like 1.3.x then i'm not sure this will entirely work but there is a chance it will as the main aspect is the database migration.
Usually there are three types of deployments:
- via docker-compose.yml
- via our native setup.sh script
- via proxmox community scripts
docker-compose.yml is the preferred and supported way.
We had setup.sh originally when we first started the project, at that time we didn't have docker images and we have carried on supporting it until now.
The issue with installing PatchMon natively on an OS is that there are evolving changes as we have progressed and keeping on top of them (also via edge cases) becomes a very heavy task.
Shipping containers is much easier and also more secure as now we a eusing hardened images from docker to really reduce the CVEs that images are shipped with.
Technically there is a way still to not use docker, I will talk about it but I can't support it officially. I can only point to the right direction.
The proxmox-community scripts team are a great bunch, I am yet to speak to them about these major changes and work with them so that upgrade / installation is done seamlessly.
For now I will document the process for
- Upgrading via docker
- Conversion of native setup.sh type to docker
The main thing when it comes to migrations is carrying over the database and ensuring that the new .env has the necessary entries.
The new 1.5.0 brings new features like Patching but more importantly has been completely re-written in GO LANG . Both agent and server are now in GO.
We have seen memory footprint of PatchMon server go from 500MB to 50MB and execution times become much faster.
Docker migration from 1.4.2 to 1.5.0
Key changes made in new version :
- Single container for "patchmon-server" as opposed to "backend" and "frontend" . The frontend built static files are now embedded in the backend go binary file served via the container
- Agents volume is now not needed - binaries are now embedded in the container image as opposed to a writable volume.
- Branding assets volume also now not needed - images are now stored in the database as opposed to a writable assets volume
- Fully utilised the .env file for all variables and is shared between the various containers - this keeps the docker-compose.yml clean and we only need to work on looking at the .env file for any variables.
- Utilising docker hardened images upon build for additional security.
Easy script migration for new docker-compose.yml and .env
- Go to your docker directory where you have the docker-compose.yml and .env file
- Run the following :
curl -fsSL https://raw.githubusercontent.com/PatchMon/PatchMon/refs/heads/1-5-0-post-jobs/tools/migrate1-4-2_to_1-5-0.sh | bash
This will download the new docker-compose.yml and .env whilst migrating your variables to it. Please review your new .env before performing docker compose up.
No comments to display
No comments to display