
How To Install PMM Using Linode
MM server. In this article, we will describe a solution based on a Linode VPS on which we will install the Docker Engine and run the PMM server in a Docker container. Linode, which is a blend of the words Linux and node, is a cloud hosting provider of Linux-based virtual private servers. Linode makes virtual computing more simple, affordable, and accessible.
How to Install PMM
These are the requirements you’ll need to begin:
-
Registered account on the Linode Cloud platform
-
Any SSH client
-
Any web browser with enabled JavaScript support
Creating Linode Instance
Login to Linode Cloud console.
Click the “Create Linode” button on the top-right side of the page.

Choose distribution and region.

Choose type or VPS.

Set a custom name for the Linode instance, for example, PMM-demo.

Type the root password, and add SSH Keys of allowed users.

Other settings are optional, so if you don’t need them, then you may ignore them.

Click the “Create Linode” button.

Wait some time until the VM will be created and Provisioning status changes to Running.
After starting the virtual machine, we can connect to it via SSH.

Installing Docker Engine
First of all, let’s update the packages list:
apt update

Then install the necessary packages:
apt install ca-certificates curl gnupg lsb-release

Wait some time until the installation process is complete.
Now let’s add the GPG key that signed the packages from the repository:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Then you need to add the repository configuration:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Update the packages list again:
apt update
Install Docker Engine:
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Installing PMM Server
Pull image from Docker Hub
Most likely you have not yet downloaded the PMM-server image, so download it using the following command:
docker pull percona/pmm-server:2

Create persistent volume
The PMM server stores the collected data in databases integrated into the image (not the best practice, but it seemed more convenient to the authors of the image). I’m sure you don’t want to lose this collected data when updating the server, so you need to create a persistent volume, let’s call it PMM-data.
docker volume create pmm-data

Run PMM server in container with persistent volume
Now you can safely launch the container with the PMM server and proceed with its direct configuration.
docker run --detach --restart always \
--publish 443:443 \
-v pmm-data:/srv \
--name pmm-server \
percona/pmm-server:2

Check the status of running the PMM server
Let’s check the status of the PMM server – it should be fine, but just in case.
docker ps

Reset admin password
Now let’s change the password of the admin user to “new_pass”.
docker exec -t pmm-server bash -c 'grafana-cli --homepath /usr/share/grafana --configOverrides cfg:default.paths.data=/srv/grafana admin reset-admin-password new_pass'

Change admin email (optional)
For right now, it’s not possible to change the email of the admin user via PMM CLI, but you can do it via a simple API call. First, you need to generate a Bearer Token, which can be created from login/password pair with the help of base64 decoder:
echo -n "admin:new_pass" | base64

Execute a simple cURL request:
curl --location --request PUT "https://127.0.0.1/graph/api/users/1" \
--insecure \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Basic YWRtaW46bmV3X3Bhc3M=" \
--data "{\"email\":\"ownemail@example.com\",\"login\":\"admin\"}"

Login to the admin panel
Now you can open the PMM server page through a browser.
https://<linode-instance-ip>/graph/login
You will most likely see an error about the self-signed certificate that was auto-generated on the first run of the PMM server. Just ignore this message. For the login/password pair, use the admin and password chosen on the “Reset admin password” step.
Installation Complete
Congratulations, you have successfully installed PMM using Linode. PMM – Percona Monitoring and Management – provides database monitoring and management services and helps streamline your business with convenient cloud computing solutions. PMM simplifies cloud computing and helps optimize databases by allowing you to easily find, fix, and prevent issues with scaling, bottlenecks, and potential outages.
If you want to know how to install PMM, there are many options. Linode offers a great option to install PMM. This PMM installation is based on a Linode VPS on which we install the Docker Engine and run the PMM server in a Docker container. To install PMM using Linode you just need a registered account on the Linode Cloud platform, any SSH client, and any web browser with enabled JavaScript support.
Need help with database monitoring and performance? Our DevOps consulting team sets up monitoring for MySQL, PostgreSQL and MongoDB. The first conversation is free.
Frequently Asked Questions
What are the minimum server requirements for a PMM server?
PMM Server needs at least 2 CPU cores, 4GB RAM, and 1GB of storage per monitored database per week. The simplest deployment is Docker on any Linux VPS — Linode, DigitalOcean, or AWS EC2 all work. The Percona easy-install script handles Docker setup and PMM container creation automatically.
How do you persist PMM data across Docker container upgrades?
Create a Docker volume before running the PMM server: docker volume create pmm-data. Mount it with -v pmm-data:/srv when starting the container. This stores all collected metrics, dashboards, and configuration outside the container. When upgrading PMM, stop the old container and start a new one with the same volume — all historical data is preserved.
How do you secure a self-hosted PMM server?
Change the default admin password immediately using grafana-cli admin reset-admin-password. Install proper SSL certificates — the default self-signed cert triggers browser warnings. Restrict port 443 access via firewall rules, allowing only your database host IPs. For production, use API key tokens instead of username/password for agent authentication.
Related Reading
Related posts

How To Set Up Alerts Using PMM
Percona Monitoring and Management allows you to set different alerts related to your infrastructure.

DB Performance Troubleshooting Workflow Using Percona PMM
Some time you may face with the situation when your DB became slow. You may notice it during developing your system.

3 Ways To Set Up A PMM Server
This method involves self-configuring everything you need on a virtual machine in the Linode cloud, with all the complexities and peculiarities that come...