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 10.4.2025
ownCloud is a self-managed cloud storage platform that allows users to store, share, and collaborate on files over the Internet. It functions similarly to Google Drive, DropBox or Microsoft OneDrive but gives users complete control over data security, privacy, and management. As an open-source cloud storage solution, ownCloud enables users to self-host on their preferred cloud provider or on-premise infrastructure.
While data control is the primary advantage of ownCloud, it offers several additional benefits, including:
In this tutorial, we will cover a step-by-step installation and configuration of your ownCloud across different operating systems to help you understand how it works and how to optimize it for your needs.
Before setting up ownCloud, ensure your system meets the basic requirements. The installation process depends on your platform, but here’s what you’ll need:
1. System requirements:
2. Where can you install owncloud?
This tutorial covers installing ownCloud on Ubuntu, Debian, and Docker. Ensure you have one of these environments ready before proceeding:
3. Downloading ownCloud
Get the latest version of ownCloud from the official website. Choose the package that matches your setup, and you’re ready.
4. Sever with Root or sudo access.
5. Basic CLI knowledge to execute Linux commands.
Before installing ownCloud, you need to get the correct installation files for your platform.
When you move to Step 2 (Installing ownCloud), you will have the correct package and installation method ready from Step 1.
With the commands discovered in Step 1, we will now install ownCloud on multiple operating systems.
This section walks through installing ownCloud and MariaDB in Docker containers on Ubuntu 24.04 LTS using docker-compose.
Before proceeding, set up a fresh Ubuntu 24.04 LTS VM on Upcloud.
1. Installing Docker
Update the system and install Docker:
sudo apt update sudo apt install -y docker.io
Enable and Start Docker
sudo systemctl enable docker sudo systemctl start docker
Verify Docker Installation
docker --version
2. Installing Docker Compose
Docker Compose is a tool that allows you to define and run multi-container Docker applications. Instead of manually starting each container separately, docker-compose.yml lets you manage everything in a single file. It makes deployment and scaling much easier, especially for applications like ownCloud, which require both an application container and a database container.
Install Docker Compose
sudo apt install -y docker-compose
Verify Docker Compose Installation
docker-compose --version
3. Create a Project Directory
This folder will store the docker-compose.yml file and persist data.
kdir ~/owncloud-docker cd ~/owncloud-docker
4. Create a docker-compose.yml File
docker-compose.yml
nano docker-compose.yml
Add the following content (Replace your-vm-ip with your actual VM IP)
your-vm-ip
version: '3' services: owncloud: image: owncloud/server:latest restart: always ports: - "8080:8080" volumes: - owncloud_data:/mnt/data environment: - OWNCLOUD_DOMAIN=your-vm-ip:8080 - OWNCLOUD_TRUSTED_DOMAINS=your-vm-ip - OWNCLOUD_ADMIN_USERNAME=admin - OWNCLOUD_ADMIN_PASSWORD=AdminPass123! - OWNCLOUD_MYSQL_DATABASE=owncloud - OWNCLOUD_MYSQL_USER=owncloud - OWNCLOUD_MYSQL_PASSWORD=Pass9010Cloud - OWNCLOUD_MYSQL_HOST=db db: image: mariadb:latest restart: always environment: - MYSQL_ROOT_PASSWORD=1234567890 - MYSQL_DATABASE=owncloud - MYSQL_USER=owncloud - MYSQL_PASSWORD=Pass9010Cloud volumes: - db_data:/var/lib/mysql volumes: owncloud_data: db_data:
Save the file: Ctrl + O, then press Enter, then Ctrl + X to exit.
What This Does:
5. Start the Containers
Run the Containers in Detached Mode
sudo docker-compose up -d
The -d flag runs containers in the background.
Check Running Containers
sudo docker ps
Expected Output: The list should include owncloud/server and mariadb
6. Access ownCloud
Open a Web Browser and Go to: http://your-vm-ip:8080Log in with the admin credentials:
http://your-vm-ip:8080
If the ownCloud login page loads, the setup is complete!
7. Stop Containers (Optional)
If you need to stop ownCloud and MariaDB, use:
sudo docker-compose down
This will stop and remove the containers while keeping the data intact.
1. Connect to Your UpCloud Ubuntu Server
SSH into your spun-up UpCloud Ubuntu instance from your local machine:
ssh -i your-pem-key root@your-server-ip
2. Add the OwnCloud Repository
echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/server:/10/Ubuntu_22.04/ /' | sudo tee /etc/apt/sources.list.d/isv:ownCloud:server:10.list
3. Import the Repository Key
curl -fsSL https://download.opensuse.org/repositories/isv:ownCloud:server:10/Ubuntu_22.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/isv_ownCloud_server_10.gpg > /dev/null
4. Update Package Lists & Install OwnCloud
sudo apt update sudo apt install owncloud-complete-files
5. Verify the Installation
Check if ownCloud files were installed successfully:
ls /var/www/owncloud/
1. Connect to Your UpCloud Debian Server
SSH into your spun-up UpCloud Debian instance:
echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/server:/10/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/isv:ownCloud:server:10.list
3. Install Required GPG Tool (GNU Privacy Guard)
sudo apt install -y gnupg
4. Import the Repository Key
curl -fsSL https://download.opensuse.org/repositories/isv:ownCloud:server:10/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/isv_ownCloud_server_10.gpg > /dev/null
5. Update Package Lists & Install OwnCloud
6. Verify the Installation
Note: While we’ve covered installing ownCloud on multiple platforms, the rest of this tutorial will use Ubuntu for configuration and setup. Most steps will still apply if you’re using Debian, but some commands or paths may differ.
Using Ubuntu for the rest
1. Installing OwnCloud Dependencies
Before configuring ownCloud, install the required dependencies:
Run the following commands:
sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install -y apache2 php7.4 libapache2-mod-php7.4 php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring php7.4-zip php7.4-intl php7.4-xml php7.4-fileinfo
Verify Apache and PHP Installation
Check if PHP and Apache are installed and active:
php -v sudo systemctl status apache2
Install MariaDB (Database Server)
sudo apt install -y mariadb-server mariadb-client
2. Setting Up the Database
Now, we need to secure MariaDB and create a database for ownCloud. Run:
sudo mysql_secure_installation
When prompted, respond as follows:
3. Create the Database and User for OwnCloud
Log into MariaDB:
sudo mysql -u root -p
(Enter the password created earlier)
Then, run the following queries to create a database and user:
CREATE DATABASE owncloud; GRANT ALL PRIVILEGES ON owncloud.* TO 'your_username'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; EXIT;
4. Configuring the Admin Panel
Now, we need to point Apache to ownCloud and configure domain settings.
Update Apache Default Site Configuration
Open the Apache configuration file:
sudo nano /etc/apache2/sites-available/000-default.conf
Modify with the following lines:
ServerName anitaihuman.dev ServerAlias www.anitaihuman.dev DocumentRoot /var/www/owncloud
Set File Permissions
Ensure ownCloud is owned by Apache’s user group:
sudo chown -R www-data:www-data /var/www/owncloud sudo chmod -R 755 /var/www/owncloud
Restart Apache
sudo systemctl restart apache2
Complete OwnCloud Web Setup
http://your-server-ip
5. Networking & Security Settings
To make ownCloud secure and accessible, we’ll:
Add Trusted Domains
Edit the ownCloud configuration file:
sudo nano /var/www/owncloud/config/config.php
Add your own domain names inside the trusted_domains array:
'trusted_domains' => array ( 0 => '94.237.50.118', 1 => 'anitaihuman.dev', 3 => 'www.anitaihuman.dev', ),
Install Certbot (SSL)
sudo apt install -y certbot python3-certbot-apache
Generate an SSL Certificate
sudo certbot --apache
Once completed, your site will be available over HTTPS.
UpCloud’s Ubuntu comes with a firewall installed but disabled by default.
Check firewall Status
sudo ufw status
Allow Required Traffic
sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443
Enable the firewall
sudo ufw enable
Confirm Firewall Rules
Firewall should now be active with the above rules.
Once ownCloud is installed and configured, you can access it both locally and remotely.
1. Accessing OwnCloud Locally
If you are on the same network as your server, open a web browser and enter: http://your-server-ip
Log in using the admin account you created earlier.
2. Accessing OwnCloud Remotely (From Anywhere)
If you configured a domain name and SSL certificate in Step 3, access ownCloud securely via:
https://yourdomain.com/owncloud
This allows you to use ownCloud from any device, anywhere in the world.
ownCloud has a rich marketplace with various apps to extend its functionality. In this step, we’ll demonstrate how to install an app by adding the Calendar extension.
Installing an App from the ownCloud Marketplace
3. Find and Install the Calendar App
4. Access the installed App
Note: You can explore other apps in the marketplace to further customize your ownCloud instance.
To keep ownCloud running smoothly, it’s important to back up data, perform upgrades properly, and apply security best practices.
1. Backing Up OwnCloud
Regular backups prevent data loss in case of system failures or upgrade issues. Backup these key components:
2. Upgrading OwnCloud
Upgrading ensures security updates, bug fixes, and new features are applied
For Docker users, update the ownCloud image in docker-compose.yml, pull the latest image, and restart the container.Note: Avoid skipping major versions—always upgrade in sequence (e.g., 10.13 → 10.14, not 10.12 → 11.0).
3. Security Best Practices
To protect ownCloud, follow these best practices:
Here are common ownCloud installation and configuration issues and how to fix them.
1. Database Connection Error
Problem:
SQLSTATE[HY000] [1045] Access denied for user 'ownclouduser'@'localhost'
Cause:
Solution:
sudo mysql -u root -p SELECT user, host FROM mysql.user;
Recreate the database user with straight quotes:
GRANT ALL PRIVILEGES ON owncloud.* TO 'ownclouduser'@'localhost' IDENTIFIED BY 'yourpassword'; FLUSH PRIVILEGES;
2. GPG Key Errors (Repository Issue)
NO_PUBKEY 4ABE1AC7557BEFF9
sudo apt install -y gnupg curl -fsSL https://download.opensuse.org/repositories/isv:/ownCloud:/server:/10/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/isv_ownCloud_server_10.gpg > /dev/null sudo apt update
3. Apache Not Starting
sudo systemctl status apache2
Shows “failed” status.
A. Test Apache config:
sudo apache2ctl configtest
B. If errors appear, fix misconfigurations and restart Apache:
4. Trusted Domains Error
You are accessing the server through an untrusted domain.
Edit the config.php file:
Add your trusted domains:
'trusted_domains' => [ 'yourdomain.com', 'www.yourdomain.com', 'your-server-ip', ],
By now, you’ve successfully installed and configured ownCloud, set up a database, secured your deployment, and even extended its functionality with applications.
Owncloud gives you complete control over your file storage, security, and access, making it a powerful alternative to third-party cloud services.
Regular maintenance—including backups, updates, and security enhancements, is essential to keep your setup running smoothly. If you encounter any issues, refer to the troubleshooting guide above to quickly resolve common problems.
If you’re looking for a high-performance hosting solution to run ownCloud efficiently, consider deploying it on UpCloud. With its fast SSD storage, scalability, and strong security features, UpCloud provides a reliable infrastructure for your ownCloud server.
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