How to Install HumHub in Ubuntu 16.04 DigitalOcean Droplet

Introduction

HumHub is an open source social network web application that enables you to communicate and collaborate with your team or peers more easily and securely in a server computer that you operate. The main advantage of HumHub to other alike software is its flexibility, the ability to extend and personalize your social network with countless modules and custom theme makes limitless possibilities. And while, most people use it as a small private medium for digital interaction, you can also use it for huge intranets that serve companies with hundreds and thousands of employees.

In this guide, we'll install and configure a HumHub instance on an Ubuntu 16.04 server.

Prerequisites

In order to complete the steps in this guide, you will need to have the following:

  • An Ubuntu 16.04 server: You may want to see this guide in creating your first Ubuntu droplet in DigitalOcean.
  • A non-root user with sudo privileges: You can set this up by following the Ubuntu 16.04 initial server setup guide.
  • A LAMP stack: HumHub heavily relies on various server software solutions to function properly. Having a LAMP stack (Linux, Apache, MySQL, PHP) setup on your server should turn the lights up in no time. Follow this guide to install LAMP stack.

Step 1 — Installing HumHub

As of the moment this article was written, the latest HumHub version is 1.1.1. Please check the latest version here.

First, we need to download the HumHub compressed zip into the Apache server root directory.

cd /var/www/html/ && sudo wget http://nchc.dl.sourceforge.net/project/humhub/humhub-1.1.1.zip

Then, we need to install an unarchiving software and some software dependencies.

sudo apt install bsdtar imagemagick php-curl php-mbstring php-mysql php-gd php-cli php-intl php-zip

Next, we'll restart apache to implement the changes.

sudo service apache2 restart

After that, we extract the HumHub compressed zip into the Apache server root directory and remove the unnecessary files.

cd /var/www/html/ && sudo bsdtar -xf ./humhub-1.1.1.zip -s'|[^/]*/||' && sudo rm ./humhub-1.1.1.zip && sudo rm ./index-test.php && sudo rm ./index.html

Finally, we fix directory permissions.

sudo chmod -R 775 /var/www/ && sudo chown -R www-data:www-data /var/www/

Now we have HumHub installed successfully, we may now create our database.

Step 2 — Creating a MySQL Database

First, we need to login to MySQL to configure our database.

mysql -u root -p

When prompted, enter your MySQL password for root.

Let's create a database for our HumHub installation. You can name it to your heart's desire, but for simplicity's sake, we decided to name it humhub.

CREATE DATABASE `humhub` CHARACTER SET utf8 COLLATE utf8_general_ci;
Note: Don't forget to add a semicolon (;) after each MySQL statement.

Then, we should create a new user to administer our newly created database. You can name the user to anything you want. We decided to name it sammy.

GRANT ALL ON `humhub`.* TO `sammy`@localhost IDENTIFIED BY 'sammyshark';
Warning: Be sure to change sammyshark to your actual password.

Next, to get HumHub up and running well with our database, we need to set our global MySQL mode to TRADITIONAL, because HumHub don't support the default mode. Doing such will make our database compatible with our HumHub installation.

SET GLOBAL sql_mode = 'TRADITIONAL';

After you have given the desired privileges for your user, you will need to perform the flush-privileges operation to load the changes to memory.

FLUSH PRIVILEGES;

With the database created successfully, we may now end our mysql session.

exit

Step 3 — Configuring HumHub

To access HumHub web interface you will have to navigate to the following web address:

https://example.com/index.php

If you see something similar to the image below, click Next:

On this page, you will see the overview of all system requirements of HumHub. Checked items in green circle are the installed dependencies; Hyphenated items in red circle are the non-existent dependencies that needs to be installed; Exclaimed items in orange triangle are the non-existent optional PHP extensions.

If it says something like Congratulations! Everything is ok and ready to start over!, click Next to configure the database settings:

Enter the database connection details you've created in the previous step. Below is an example connection details we've used in this guide. If you're done, click Next:

Create a name for your Social Network. This name will be displayed globally in your social network, alternatively, you may upload a logo in the Administration Settings after you finished this guide. If you're done, click Next:

Select the appropriate radio button that best describes your social network. These buttons correspond to predefined settings and specialized modules for the most common use case to better suit your needs. If you're done, click Next:

Fill-up the form to create an admin account (when creating an admin account, we encourage you to use an uncommon username and password for better security). Admin accounts will have the ability to manage users, view system logs, and many more. When you're done, click the Create Admin Account button:

After that, you will be asked to setup a dummy content for your server to avoid blank dashboard after your initial login. Simply check the checkbox if you want to add dummy contents (recommended), or uncheck the checkbox if otherwise. If you're done, click Next

Congratulations! For reaching this part of the tutorial. You are now two steps away from finishing this guide.

Step 4 — Configuring Email Settings

As an administrator, it is your duty to keep all users of your social network in track of the activities happening to your site. This is where proper email configuration comes into place. Incorrect email settings might send HumHub notification emails into the Junk or Spam folder of the recipient, thus increasing the probability of missed notification or emails not being sent at all. So we recommend the usage of external SMTP services like Gmail as the Mail Transport Type to keep things simple and reliable, however, if your server can send emails, you can choose PHP. Don't forget to change the email domain of the email address in the E-Mail sender address textbox.

To change HumHub email settings you will have to navigate to the following web address:

https://example.com/index.php?r=admin%2Fsetting%2Fmailing-server

Step 5 — Configuring Cronjobs

Cronjobs in HumHub provides various automated functionalities.

To get started open crontab file of the www-data user with:

If prompted to choose preferred editor, type 2 and Enter to select nano.

Paste the following 2 lines at the bottom of the file:

30 * * * * /var/www/html/protected/yii cron/hourly >/dev/null 2>&1
00 18 * * * /var/www/html/protected/yii cron/daily >/dev/null 2>&1

You're all set.

Conclusion

In this guide, we have shown you how to install and configure HumHub as a social networking site that can be used to interact with other people. We have also covered some of the possibilities that you can achieve with HumHub, but we have just scratched the surface.

Just like most applications, HumHub has a built-in marketplace for additional functionality, you can see more about it here.