{"id":2167,"date":"2020-05-25T07:44:51","date_gmt":"2020-05-25T04:44:51","guid":{"rendered":"https:\/\/upcloud.com\/global\/us\/resources\/tutorials\/install-webmin-debian-10\/"},"modified":"2020-05-25T07:44:51","modified_gmt":"2020-05-25T04:44:51","slug":"install-webmin-debian-10","status":"publish","type":"tutorial","link":"https:\/\/upcloud.com\/global\/resources\/tutorials\/install-webmin-debian-10\/","title":{"rendered":"How to install Webmin on Debian 10"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a rel=\"noopener noreferrer\" href=\"http:\/\/www.webmin.com\/\" target=\"_blank\">Webmin<\/a> is a web-based system configuration and management tool for Unix-based systems. Meaning that with it you can do the management on all your Linux servers. It\u2019s robust, powerful and has a lot of features. It has become a good open-source alternative for cPanel as not only can it do user administration, package management, network configuration and performance monitoring, but it can also manage web servers. Thanks to the rich feature set, it can be a powerful tool for system administrators and webmasters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This post will cover the procedure on how to install Webmin on Debian 10. The same methods can also be applied to earlier versions, Debian 9 and 8, and to other Debian-based distros such as Ubuntu with possible small differences.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/signup.upcloud.com\/\">Test hosting on UpCloud!<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Some Webmin use case scenarios<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you plan to set up a cloud server on which you intend to host multiple websites, then Webmin could be a good solution for you. You can also do the same on your local network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another great Webmin feature is the ability to register multiple servers on Webmin and manage all of them from a single Webmin dashboard. This can work with multiple different machines, physical and virtual, as long as they are all on the same network.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Webmin installation methods<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There are two ways to install Webmin on your server.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The first option is to install the Webmin software from the <strong>.deb package<\/strong> which you can download from their website.<\/li>\n\n\n\n<li>The second option is to add a Webmin source and install it via the <strong>apt package manager<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">We are going to cover both of these methods to provide the best option for you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Option 1. Installing Webmin from the .deb package<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First what we need to do is install all necessary packages that Webmin uses, otherwise, Webmin won\u2019t install. Below you can see an error that will show up if the packages are not installed.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/install-webmin-on-debian-10-1.png\" alt=\"debian 10 install webmin\" class=\"wp-image-1548\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/install-webmin-on-debian-10-2.png\" alt=\"-\" class=\"wp-image-1549\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Use the following command to install the necessary packages.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt update\nsudo apt install perl libnet-ssleay-perl openssl \nlibauthen-pam-perl libpam-runtime libio-pty-perl \napt-show-versions python unzip shared-mime-info wget<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Next, you need to download the .deb package. Check the <a href=\"http:\/\/www.webmin.com\/deb.html\" target=\"_blank\" rel=\"noopener noreferrer\">Webmin<\/a> website for the latest version number. In the package name, they write the version number of Webmin and they post the latest stable release to download.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Download the .deb package using the command below. Replace the version number with the latest if a newer release is available.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">wget http:\/\/prdownloads.sourceforge.net\/webadmin\/webmin_1.941_all.deb -P ~\/<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once the package has been downloaded, install Webmin with the following command.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo dpkg --install ~\/webmin_1.941_all.deb<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">Setting up webmin (1.941) ...\nWebmin install complete. You can now login to https:\/\/webmin.example.com:10000\/\nas root with your root password, or as any user who can use sudo\nto run commands as root.\nProcessing triggers for systemd (241-7~deb10u4) ...<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the installation was successful, you\u2019ll see an output like the example above. You can then access the Webmin dashboard by going to the IP address or domain of your Webmin server on your web browser.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Option 2. Installing Webmin from the APT repo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Installing Webmin from the APT repository via the package manager is perhaps a more maintainable option allowing easier updates and reinstall if necessary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To do this, first, we need to install the prerequisites.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-get install apt-transport-https gnupg2 curl<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Next, add the Webmin repository to its own sources list.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo echo \"deb https:\/\/download.webmin.com\/download\/repository sarge contrib\" \n&gt; \/etc\/apt\/sources.list.d\/webmin.list<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then add the GPG key which you need to download and save with the command below.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl https:\/\/download.webmin.com\/jcameron-key.asc | sudo apt-key add -<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Update the repository lists which now include the Webmin source and finally install Webmin itself.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-get update\nsudo apt-get install webmin<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">Setting up webmin (1.941) ...\nWebmin install complete. You can now login to https:\/\/webmin.example.com:10000\/\nas root with your root password, or as any user who can use sudo\nto run commands as root.\nProcessing triggers for libc-bin (2.28-10) ...\nProcessing triggers for systemd (241-7~deb10u4) ...\nProcessing triggers for man-db (2.8.5-2) ...\nProcessing triggers for mime-support (3.62) ...\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the installation was successful, you\u2019ll see an output like the example above. You can then access the Webmin dashboard by going to the IP address or domain of your Webmin server on your web browser.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Firewall settings for Webmin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Webmin is configured by default to listen on port 10000. If you have a firewall running, you must allow HTTP and HTTPS access as well as traffic to port 10000. In this section, we\u2019ll cover the steps for the <tt>ufw<\/tt> and <tt>iptables<\/tt> firewalls on your server. Also, for the cloud server, you need to configure a firewall rule to allow traffic on the same port if you are using a firewall service by your cloud provider.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depending on which firewall you are using, you need to configure it to open port 10000 and allow HTTP and HTTPS traffic on it.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">iptables config:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Run the following commands:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo iptables -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT\nsudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT \nsudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">ufw config:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Run the following commands:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo ufw allow http\nsudo ufw allow https\nsudo ufw allow 10000<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Access the Webmin dashboard<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once you\u2019ve finished installing Webmin, the message on completion shown in the terminal output tells you how to access the Webmin dashboard. However, that only works if you\u2019ve configured a domain name on your cloud server as Webmin generated the URL from the hostname of your server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To access the Webmin dashboard on a cloud server without a domain name, you\u2019ll need to use a public IP address. Your cloud provider would have assigned this to your server. Also, remember to include the port number 10000 used by Webmin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you installed Webmin on the local network, the process is the same. Use the IP address assigned to your server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first time you access the dashboard, you\u2019ll get a potential security risk prompt on your web browser. This is because Webmin uses a self-signed SSL certificate when you install it for the first time. These SSL certificates can be replaced later on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For now, go ahead and add the security exception to continue.<br><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15026\" src=\"https:\/\/upcloud.com\/media\/webmin-security-warning.png\" alt=\"-\" width=\"607\" height=\"536\" \/><br>Once you pass the security warning, you\u2019ll see the Webmin login page such as the example shown below.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-login.png\" alt=\"-\" class=\"wp-image-15025\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Log in using your server\u2019s root account and password or any other user account you have which has sudo privileges.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Afterwards, you\u2019ll be greeted by the Webmin dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-dashboard.png\" alt=\"-\" class=\"wp-image-15023\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Congratulations! You\u2019ve successfully installed Webmin on your server. Continue below with a few additional steps to improve the security of your Webmin server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Enabling two-factor authentication<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s worth mentioning that if you installed Webmin on a cloud server, access to the Webmin dashboard must be protected with strict measures. When you open port 10000 on the firewall and allow traffic, you\u2019re exposing Webmin to the internet and probably to malicious attacks and potential threats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To help protect your Webmin server, two-factor authentication, also known as 2FA, is a must. I highly recommend enabling it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start by installing the required packages with the command below.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-get -y -f install libauthen-oath-perl<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then go to the following menu on your Webmin dashboard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Webmin -&gt; Webmin Configuration -&gt; Two-factor authentication<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select the two-factor authentication provider you prefer, e.g. <em>Google authenticator<\/em> is compatible with most 2FA apps. Then click <em>Save<\/em> to apply the changes.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-2fa-provider.png\" alt=\"-\" class=\"wp-image-15039\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Your browser will reconnect shortly as the server restarts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the module has been enabled, follow the link to the <em>Webmin Users<\/em> module.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the Two-factor Authentication page, check that the <em>Personal secret key<\/em> option <em>Generate randomly<\/em> is selected and click the <em>Enroll For Two-Factor Authentication<\/em> button.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-2fa-enroll.png\" alt=\"-\" class=\"wp-image-15038\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You will then be presented with your secret 2FA code for pairing your authenticator app on your smartphone, for example by using the Google Authenticator.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After you\u2019ve scanned the QR code or manually entered the secret code to your authenticator app, you should see a 6-digit code on the authenticator app which changes once every 30 seconds. Confirm that 2FA was enabled by logging out and logging in now using the 2FA provided by the authenticator app.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-2fa-relog.png\" alt=\"-\" class=\"wp-image-15040\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Another thing you should consider as Webmin by default allows access using the root account and all accounts with sudo privileges. The reason for that is it needs to run as root or have sudo privileges in order to be able to run all tasks. Same as you run sudo in the terminal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Webmin -&gt; Webmin Users<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-users.png\" alt=\"-\" class=\"wp-image-15042\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Because of the default access control, another recommended step is to either disable root login on Webmin or remove it entirely and use an existing account with sudo privileges or create a new account for Webmin alone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Running server updates<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Webmin makes the maintenance of your cloud server easy by enabling completing of system tasks directly via the dashboard without the need to worry about the command line. Test it out by updating your server software and enabling scheduled updates by following the steps below.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start by going to the <em>Software Package Updates<\/em> page where you can check for any currently available updates and run upgrades.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>System -&gt; Software Package Updates -&gt; Package Updates<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Run the upgrades manually by checking that the available updates are selected and then click the <em>Update Selected Packages<\/em> button.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-software-update-1.png\" alt=\"-\" class=\"wp-image-15044\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Double-check the list of packages selected for update and confirm by clicking the <em>Install Now<\/em> button.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-update-packages.png\" alt=\"-\" class=\"wp-image-15030\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Once the install has finished, click the <em>Return to package list<\/em> button.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next, enable scheduled updates by going to the <em>Scheduled Upgrades<\/em> tab on the Software Package Updates page.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>System -&gt; Software Package Updates -&gt; Scheduled Upgrades<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select <em>Yes, every<\/em> option and pick the interval you prefer, e.g. once a day.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Choose the type of updates to install automatically, either <em>any updates<\/em>, <em>security updates<\/em>, or <em>just notify<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then click the <em>Save<\/em> button to apply the schedule.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-schedule-checking-options.png\" alt=\"-\" class=\"wp-image-15045\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You should get a confirmation that the schedule has been enabled. Webmin will then keep your server up to date automatically.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Replace the self-signed certificate<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As mentioned before, you had to accept a security exception to access your Webmin dashboard due to the used self-signed SSL certificates. While the default certificates allow a secure connection, you should obtain a valid certificate from a trusted Certificate Authority such as Let\u2019s Encrypt which offers free SSL certificates.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">NOTE<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This step requires you to have a <a href=\"https:\/\/upcloud.com\/global\/docs\/guides\/domain-name-system\/\" target=\"_blank\" rel=\"noreferrer noopener\">valid domain name and to configure an A record<\/a> pointing to your Webmin server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start by installing the Certbot client developed by Let\u2019s Encrypt.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt install certbot<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once installed, obtain a certificate with the command below. Replace the example domain name with your domain or subdomain.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo certbot certonly --standalone -d <span style=\"color: #ff0000;\">webmin.example.com<\/span><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The command starts an interactive configuration script that asks a couple of questions to help with managing certificates.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>On the first installation on any specific host, you\u2019ll need to enter a contact email.<\/li>\n\n\n\n<li>Then&nbsp;go through the Let\u2019s Encrypt Terms of Service and select Agree if you accept the terms and wish to use the service.<\/li>\n\n\n\n<li>Choose whether you wish to share your email address with the Electronic Frontier Foundation (EFF) for updates on their work.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If the client was successful at obtaining a certificate you can find a confirmation and certificate expiration date at the end of the client output.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In case you are having problems with the client, make sure you are trying to register a domain or subdomain that currently resolves to your server as DNS configurations might take a moment to propagate. Also, check that you are running the command with sudo privileges.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the valid certificates now available, we need to tell Webmin to use them instead of the default self-signed certificates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Go to the Webmin dashboard and navigate to the following menu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Webmin -&gt; Webmin Configuration -&gt; SSL Encryption -&gt; SSL Settings<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Change the <em>Private key file<\/em> to use the certificate you obtained using Certbot. Replace <span style=\"color: #ff0000;\">webmin.example.com<\/span> with your domain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><tt>\/etc\/letsencrypt\/live\/<span style=\"color: #ff0000;\">webmin.example.com<\/span>\/privkey.pem<\/tt><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select <em>Separate file<\/em> for the certificate and enter the path to the certificate. Again, replace the <span style=\"color: #ff0000;\">webmin.example.com<\/span> with your domain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><tt>\/etc\/letsencrypt\/live\/<span style=\"color: #ff0000;\">webmin.example.com<\/span>\/cert.pem<\/tt><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-ssl-encryption.png\" alt=\"-\" class=\"wp-image-15028\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Once done, click the <em>Save<\/em> button.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wait for the site to reconnect<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upcloud.com\/media\/webmin-ssl-enabled.png\" alt=\"-\" class=\"wp-image-15034\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Clear the site data on your browser to delete the cached self-signed certificate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reload the login page <code>https:\/\/webmin.example.com:10000<\/code> and you should now see a closed padlock next to the URL to indicate a secure connection.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Congratulations! You should now have a fully working and secure Webmin server ready for all web hosting and admin tasks. This guide explained the steps on how to install Webmin on Debian. We covered both methods to install Webmin on Debian with a .deb package and also via the APT repository. We also went over the procedure with the firewall configuration and how to access the Webmin dashboard as well as additional security and maintenance options.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thank you for your time and happy hosting!<\/p>\n","protected":false},"author":39,"featured_media":15022,"comment_status":"open","ping_status":"closed","template":"","community-category":[223,250],"class_list":["post-2167","tutorial","type-tutorial","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/upcloud.com\/global\/wp-json\/wp\/v2\/tutorial\/2167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/upcloud.com\/global\/wp-json\/wp\/v2\/tutorial"}],"about":[{"href":"https:\/\/upcloud.com\/global\/wp-json\/wp\/v2\/types\/tutorial"}],"author":[{"embeddable":true,"href":"https:\/\/upcloud.com\/global\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/upcloud.com\/global\/wp-json\/wp\/v2\/comments?post=2167"}],"version-history":[{"count":0,"href":"https:\/\/upcloud.com\/global\/wp-json\/wp\/v2\/tutorial\/2167\/revisions"}],"wp:attachment":[{"href":"https:\/\/upcloud.com\/global\/wp-json\/wp\/v2\/media?parent=2167"}],"wp:term":[{"taxonomy":"community-category","embeddable":true,"href":"https:\/\/upcloud.com\/global\/wp-json\/wp\/v2\/community-category?post=2167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}