UpCloud
Effortless global cloud infrastructure for SMBs
Introducing
If you’re interested in what we have to offer, contact sales or fill out a contact form.
Our support live chat is available for our customers 24/7. You can also email our support team.
Send us an email to give feedback or to say hello.
Start a new journey
Why Partner with UpCloud?
I’ve been passionate about the hosting industry since 2001. Before founding UpCloud, my first company grew to become one of Finland’s largest shared web hosting providers, serving over 30,000 customers. Along the way, I faced the same challenges many of you know well—24/7 on-call responsibilities, solving technical issues, and managing customer inquiries.
At UpCloud, we’ve designed a platform that solves these challenges, offering reliability, scalability, and unparalleled support. We understand the pressures you face because we’ve been there too. Partner with us, and let’s help you focus on growing your business while we handle the rest.
Sincerely, Joel Pihlajamaa CTO, Founder
Login
Sign up
Updated on 29.4.2025
Drupal is an open-source content management system (CMS) that powers millions of websites globally, from e-commerce stores to enterprise-level apps and government sites.
Running Drupal on UpCloud’s Developer Cloud Servers enables easy scalability and increases performance. In this guide, we outline the installation, setting up, and running of Drupal on UpCloud servers.
UpCloud’s high-performance servers offer several advantages, including:
Follow these steps to set up your UpCloud server and install Drupal:
You can begin by registering with UpCloud using your name and email address. You then get a one-week free trial to explore the development environment, which lets you familiarize yourself with our services at no upfront cost.
One of the best ways to get started with Drupal is to set up a Docker-based development environment. This will prepare your UpCloud server for easy Drupal installation. For example, you can choose from these popular Docker-based solutions with over 500 stars in their GitHub repositories.
We will be using DDEV in this tutorial.
Log into your new Developer Cloud Server
To begin, log into your Cloud Server using SSH on your terminal or PuTTY client.
ssh root@your_server_public_ip
Update and upgrade
The first thing on a new server is to always update all software.
sudo apt update && sudo apt upgrade -y
Add Docker keys and repositories
Next, we’ll need to add Docker GPG keys and sources to our package manager.
sudo apt-get install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.ascecho \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \ https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Install Docker
With the Docker repositories configured, install Docker itself.
sudo apt-get updatesudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Installing the Docker this way allows the system to then keep the software up to date using the standard update commands as demonstrated above.
Install DDEV
Next, set up the DDEV’s GPG key similarly to Docker and add DDEV releases to your package repository.
sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://pkg.ddev.com/apt/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/ddev.gpg > /dev/nullsudo chmod a+r /etc/apt/keyrings/ddev.gpgecho "deb [signed-by=/etc/apt/keyrings/ddev.gpg] https://pkg.ddev.com/apt/ * *" | \sudo tee /etc/apt/sources.list.d/ddev.list >/dev/null
Then, update the package information on your server and install DDEV.
sudo apt-get updatesudo apt-get install -y ddev
You will also need to run a one-time initialization of mkcert.
mkcert -install
Lastly, you will need to set up a new user account to run DDEV commands.
adduser ddevadduser ddev sudoadduser ddev docker
Then set your password and switch to the new user account.
passwd ddevcd /home/ddev && su ddev
Having installed both Docker and DDEV, we are now ready to deploy our Drupal site.
Create a new directory to house your website files and switch into it using the command below.
mkdir ~/my-drupal-site && cd ~/my-drupal-site
Next, run the following commands to configure the new Drupal project, start the services, and install the latest server software and the Drush command-line configuration tool.
ddev config --project-type=drupal11 --docroot=webddev startddev composer create drupal/recommended-project:^11ddev composer require drush/drush
Now that you have deployed your Drupal site, you should see it in action. But before we can view the page, we need to reconnect our SSH to enable port tunnelling.
First, check what port your site is running at using the following command.
ddev describe
Then find the URL/PORT of your HTTP site. It’ll look similar to the example below.
- web:80 -> 127.0.0.1:32768
Make note of the port number, then reconnect SSH to your Cloud Server while including the following address:port pair where the port should match the website’s port number
ssh -L 127.0.0.1:32788:127.0.0.1:32788 root@your_server_public_ip
Once you’ve reconnected to your Cloud Server, launch the Drupal installation wizard by navigating to http://localhost:32788 on your web browser. Follow the on-screen instructions to complete the setup. Remember to replace the port number at the end of the address with the port your Drupal site is running.
Start by choosing your site’s language, then click the Save and continue button.
Next, select the installation profile based on your use case.
Then enter your site details as you prefer and set up your administrator account. When done, click the Save and continue button once more.
The installation will take a moment, but once complete, you’ll land on the Drupal main page with notifications confirming your Drupal installation was successful!
Configuring Drupal helps optimize its performance and security. Here are a few pointers.
You can optimise Drupal’s page loading by enabling caching in the server settings. Log into your Drupal site and navigate to the following section:
Administration > Configuration > Development > Performance
Select the duration of your cache in the drop-down box, then click the Save configuration button.
Also, while in the Performance settings, check that the Bandwidth optimization settings are enabled.
Once you are done configuring your site, change the settings.php file to read-only for the web to ensure that file permissions follow best practices.
sudo chmod 444 web/sites/default/settings.php
You should also edit the ~/my-drupal-site/web/.htaccess file to disallow direct access to sensitive directories like /config, /vendor, and /scripts.
<DirectoryMatch "^.*/(config|vendor|scripts)"> Order Allow,Deny Deny from all</DirectoryMatch>
Setting up scheduled automated backups is an important way to protect your hard work. You can use DDEV’s snapshots with cron jobs or enable whole server snapshots with the UpCloud Simple Backup service.
ddev add-on get ddev/ddev-cronddev restart
Then create a new cron job file ~/my-drupal-site/.ddev/web-build/snapshots.cron and add the following line into it.
# Take a snapshot once a day0 17 * * * ddev snapshot
Later on, if you ever need to revert changes, you can restore a snapshot using the following command.
# Restore a snapshotddev snapshot restore my-drupal-site_20250218120425
You can also protect your whole Cloud Server by enabling scheduled Simple backups at your UpCloud Control Panel. On Developer plan servers, backup plans start from just 30 cents while General Purpose plans and higher have one day backups included for free.
This guide is designed to help you get started with Drupal on UpCloud Developer Cloud Servers. Several excellent resources are available with Drupal and UpCloud to help you make the most of the Drupal CMS hosting experience.
UpCloud advanced user setup guides
Security on UpCloud
Drupal user guide
Drupal documentation
This step-by-step guide helps you quickly and easily set up Drupal’s CMS system using DDEV tools on UpCloud’s versatile Developer Cloud Servers. Alongside its reliability and ultra-fast speeds, UpCloud Block storage makes our Cloud Servers the ideal hosting space for Drupal’s outstanding CMS solutions.
In addition to reliability, high speeds, and block storage, UpCloud helps you scale. Begin small without breaking the bank and scale without compromising on performance as your usage grows.
Sign up for a free trial today to begin developing your Drupal site on UpCloud!
Your email address will not be published. Required fields are marked *
Comment *
Name *
Email *
Website
Save my name, email, and website in this browser for the next time I comment.
Δ
See all tutorials