ownCloud first coming as an alternative to Dropbox, Google Drive, etc. ownCloud is self hosted ‘cloud’ application that you can manage, the storage and speed depend on the hardware it installed on.
It’s similiar to file manager on cloud, which had client for Windows, MacOS, Linux, Android and iOS. For power user it had API which can used to integrated with other application or make your own.
In this tutorial we’ll start from fresh install Ubuntu 20.04, it’s beginner friendly tutorial which for most case you can just copy and paste except the domain name part. Please let us know if you had any question, we’ll talk later about scaling the ownCloud in production environment.
Install PHP
Install PHP directly from Ubuntu 20.04 repository.
sudo apt-get install php php-gd php-xmlrpc php-fpm php-curl php-intl php-imagick php-mysql php-zip php-xml php-mbstring php-bcmath -y
Install NGINX
Install latest available nginx versin from Ubuntu 20.04 repository.
sudo apt install nginx -y
Setup SSL Lets Encrypt
Let’s setup the SSL from Lets Encrypt, using acme.sh
as the client
acme.sh --issue -d owncloud.EXAMPLE.com --standalone
Install MariaDB Database
Install MariaDB from repository
sudo apt install mariadb-server -y
Create a database and user for ownCloud
1. Create Database
CREATE DATABASE owncloud;
2. Create User
GRANT ALL PRIVILEGES ON owncloud.* TO "owncloud"@"localhost" IDENTIFIED BY "SECURE-PASSWORD";
Download ownCloud
Move to /var/www/html
directory
cd /var/www/html/
Download the latest version of ownCloud, currently 10.5
wget https://download.owncloud.org/community/owncloud-complete-20200731.tar.bz2 https://download.owncloud.org/community/owncloud-complete-20200731.tar.bz2.sha256
to verify the file not corrupted or tampered by
sha256sum -c owncloud-complete-20200731.tar.bz2.sha256 2>&1 | grep OK
if that show OK
nothing wrong with the files, it otherwise re-download the owncloud.
Extract the owncloud-complete-20200731.tar.bz2 file and rename the folder to owncloud.EXAMPLE.com
tar jxvf owncloud-complete-20200731.tar.bz2 mv owncloud owncloud.EXAMPLE.com
Set read and write permission for www-data user, an default nginx user in Ubuntu 20.04
chown www-data:www-data -R /var/www/html/owncloud.EXAMPLE.com
Install ownCloud from CLI
I love this feature a lot, because we can setup everything without visiting the URL, it can be automated in easy way using shell script.
sudo -u www-data php occ maintenance:install --database "mysql" --database-name "owncloud" --database-user "owncloud" --database-pass "sXTHTPVJuo9zkVEAxrri" --admin-user "atetux" --admin-pass "XmN9RfvAhxA4cFhHmVHE"
Set trusted domain
sudo -u www-data php occ config:system:set trusted_domains 2 --value=owncloud.EXAMPLE.com
If you forgot to set trusted domain, ownCloud will gave warning
ownCloud Login Page
Open https://owncloud.EXAMPLE.com
on browser
Login using credential we created earlier