How to Install Helpy Customer Helpdesk on Ubuntu 20.04
This tutorial exists for these OS versions
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 20.04 (Focal Fossa)
On this page
Helpy is a free, open-source, and modern helpdesk customer support application that gives your customers a heroic experience. It is written in Ruby on Rails and it can be easily integrated with your application and inbound email via Sendgrid, Mandrill, Mailgun, etc. By default, Helpy works on all devices out of the box so you can delight customers with prompt answers, from anywhere and at any time! It has an advanced search option that helps you to filter and find tickets or customers when you have thousands.
In this post, we will show you how to install Helpy Helpdesk on Ubuntu 20.04.
Prerequisites
- A server running Ubuntu 20.04.
- A root password is configured on the server.
Getting Started
Before starting, it is recommended to update all system packages to the updated version. You can do it by running the following command:
apt-get update -y
Once your system packages are updated, install other required dependencies using the following command:
apt-get install apt-transport-https ca-certificates curl software-properties-common
After installing all the packages, you can proceed to the next step.
Install Docker CE and Docker Compose
We will install Help on the Docker container. So, Docker and Docker compose must be installed on your server. First, add the Docker CE repository using the following command:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Next, update the repository database and install the Docker CE with the following command:
apt-get update -y
apt-get install docker-ce docker-ce-cli containerd.io -y
Once the Docker CE is installed, start and enable the Docker CE service using the following command:
systemctl start docker
systemctl enable docker
Next, check the status of the Docker CE with the following command:
systemctl status docker
You will get the following output:
? docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-02-28 02:01:20 UTC; 1min 14s ago TriggeredBy: ? docker.socket Docs: https://docs.docker.com Main PID: 3092 (dockerd) Tasks: 7 Memory: 28.2M CGroup: /system.slice/docker.service ??3092 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Feb 28 02:01:20 ubuntu2004 dockerd[3092]: time="2022-02-28T02:01:20.107814282Z" level=warning msg="Your kernel does not support CPU realtime > Feb 28 02:01:20 ubuntu2004 dockerd[3092]: time="2022-02-28T02:01:20.107957338Z" level=warning msg="Your kernel does not support cgroup blkio > Feb 28 02:01:20 ubuntu2004 dockerd[3092]: time="2022-02-28T02:01:20.108078251Z" level=warning msg="Your kernel does not support cgroup blkio > Feb 28 02:01:20 ubuntu2004 dockerd[3092]: time="2022-02-28T02:01:20.108501788Z" level=info msg="Loading containers: start." Feb 28 02:01:20 ubuntu2004 dockerd[3092]: time="2022-02-28T02:01:20.257733781Z" level=info msg="Default bridge (docker0) is assigned with an > Feb 28 02:01:20 ubuntu2004 dockerd[3092]: time="2022-02-28T02:01:20.354919857Z" level=info msg="Loading containers: done." Feb 28 02:01:20 ubuntu2004 dockerd[3092]: time="2022-02-28T02:01:20.382579537Z" level=info msg="Docker daemon" commit=459d0df graphdriver(s)=> Feb 28 02:01:20 ubuntu2004 dockerd[3092]: time="2022-02-28T02:01:20.383119787Z" level=info msg="Daemon has completed initialization" Feb 28 02:01:20 ubuntu2004 systemd[1]: Started Docker Application Container Engine. Feb 28 02:01:20 ubuntu2004 dockerd[3092]: time="2022-02-28T02:01:20.444535011Z" level=info msg="API listen on /run/docker.sock"
Next, download the latest version of Docker Compose using the following command:
curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-linux-x86_64 | cut -d '"' -f 4 | wget -qi -
Next, set the execution permission to the Docker Compose binary with the following command:
chmod +x docker-compose-linux-x86_64
Next, move the Docker Compose binary to the system path with the following command:
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
Next, verify the Docker Compose version with the following command:
docker-compose version
You will get the following output:
Docker Compose version v2.2.3
Install Helpy
Next, download the latest version of Helpy with the following command:
git clone https://github.com/helpyio/helpy.git
Once the download is completed, change the directory to helpy and rename the environment file:
cd helpy
cp docker/.env.sample docker/.env
Next, edit the Caddyfile and define your server IP address:
nano docker/Caddyfile
Define your server IP as shown below:
your-server-ip:80 { tls off root /helpy/public header /assets { gzip Expires "Thu, 31 Dec 2037 23:55:55 GMT" Cache-Control public } header /uploads proxy / helpy:8080/ { except /assets except /uploads header_upstream Host {host} header_upstream X-Real-IP {remote} header_upstream X-Forwarded-Proto {scheme} } log stdout }
Save and close the file then build the Helpy container with the following command:
docker-compose build
You should see the following output:
---> Running in a3a5fe591ac2 Removing intermediate container a3a5fe591ac2 ---> 7babb0f60867 Step 13/20 : VOLUME $HELPY_HOME/public ---> Running in bfc08d37a2e1 Removing intermediate container bfc08d37a2e1 ---> b4a06ac5bd7b Step 14/20 : USER root ---> Running in a2e81c390825 Removing intermediate container a2e81c390825 ---> d4275c0cd8aa Step 15/20 : COPY . $HELPY_HOME/ ---> 03684c78036c Step 16/20 : RUN chown -R $HELPY_USER $HELPY_HOME ---> Running in 5b8d7b23cab6 Removing intermediate container 5b8d7b23cab6 ---> 8406e643b688 Step 17/20 : USER $HELPY_USER ---> Running in bf9c512f2486 Removing intermediate container bf9c512f2486 ---> abccf6d62cdf Step 18/20 : COPY docker/database.yml $HELPY_HOME/config/database.yml ---> fbff2ecf5a58 Step 19/20 : EXPOSE 3000 ---> Running in db600cd62ecc Removing intermediate container db600cd62ecc ---> 8ed9fd111cd4 Step 20/20 : CMD ["/bin/bash", "/helpy/docker/run.sh"] ---> Running in 4c48d0132cd3 Removing intermediate container 4c48d0132cd3 ---> ac095ecbbac6 Successfully built ac095ecbbac6 Successfully tagged helpy_helpy:latest Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
Next, start the Helpy container with the following command:
docker-compose up -d
You should see the following output:
[+] Running 19/19 ? postgres Pulled 16.6s ? 619014d83c02 Pull complete 8.0s ? 7ec0fe6664f6 Pull complete 8.7s ? 9ca7ba8f7764 Pull complete 8.9s ? 9e1155d037e2 Pull complete 9.2s ? febcfb7f8870 Pull complete 10.4s ? 8c78c79412b5 Pull complete 10.5s ? 5a35744405c5 Pull complete 10.6s ? 27717922e067 Pull complete 10.6s ? 36f0c5255550 Pull complete 15.2s ? dbf0a396f422 Pull complete 15.3s ? ec4c06ea33e5 Pull complete 15.4s ? e8dd33eba6d1 Pull complete 15.5s ? 51c81b3b2c20 Pull complete 15.6s ? 2a03dd76f5d7 Pull complete 15.7s ? frontend Pulled 11.3s ? 743f2d6c1f65 Pull complete 7.8s ? 6bfc4ec4420a Pull complete 10.2s ? 688a776db95f Pull complete 10.4s [+] Running 6/6 ? Network helpy_front Created 0.1s ? Network helpy_back Created 0.1s ? Volume "helpy_rails-assets" Created 0.0s ? Container helpy-postgres-1 Started 1.4s ? Container nginx Started 1.5s ? Container helpy-helpy-1 Started 3.3s
Next, verify all running containers using the following command:
docker ps
You should see the following output:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8168c6d11c75 helpy_helpy "/bin/bash /helpy/do…" 2 minutes ago Up 2 minutes 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp helpy-helpy-1 265597cbcbea postgres:9.4 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 5432/tcp helpy-postgres-1 b671e0a7ba1e nginx:1.15 "nginx -g 'daemon of…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nginx
Access Helpy Web Interface
Now, open your web browser and access the Helpy web interface using the URL http://your-server-ip. You should see the following screen:
Click on the Let's set up your Helpy. You should see the administrator account creation screen:
Provide your admin username, password, email address, and click on the Save Changes button. You should see the Customize your helpdesk screen:
Customize your Helpdesk as per your need otherwise, click on the Skip for now button. You should see the SMTP server configuration screen:
Provide your SMTP server information or click on the Skip for now button. You should see the following screen:
Click on the Get Started! button. You should see the Helpy dashboard on the following screen:
Conclusion
Congratulations! you have successfully installed the Helpy Customer Helpdesk system on Ubuntu 20.04. You can now deploy Helpy on your organization and start managing your customers. Feel free to ask me if you have any questions.