In this tutorial, we will be installing and configuring Alfresco Community Edition on an Alibaba Cloud Elastic Compute Service (ECS) instance with CentOS 7.

By Arslan Ud Din Shafiq, Alibaba Cloud Tech Share Author. Tech Share is Alibaba Cloud's incentive program to encourage the sharing of technical knowledge and best practices within the cloud community.

Alfresco Community Edition is an open source Enterprise Content Management (ECM) software for managing the contents of an enterprise. Alfresco Community Edition is one of the software products of Alfresco. It is developed for Windows and Unix operating systems. It is written in Java, and PostgreSQL is used for storing its database. Alfresco is used within an enterprise for managing its various systems and digital assets such as videos, documents, images, and records. WebDAV, CIMS, SMB, and FTP can be used for accessing the file repository of hosted Alfresco.

With Alfresco, many enterprise challenges can be addressed, including displaying important information at one place and keeping track of employee performance. For getting the advantages of community-driven development, Alfresco Community Edition could be the best option for your enterprise.

When talking about availability and scalability, Alfresco does have some limitations. For instance, the community edition of Alfresco does not support clustering. The quality assurance and the bug fixes are also limited. However, Alfresco Community Edition provides enterprises of different levels with ease of managing their content and non-critical business process. It is easy to use and the source code of the Community Edition is also publicly available.

As a developer, I prefer the services of Alibaba Cloud to deploy Alfresco. Alibaba Elastic Compute Service (ECS) is highly scalable and flexible. You can upgrade the hardware resources anytime when required. Alibaba Cloud can also provide you technical support and assistance in order to launch any of your system.

Alfresco does not restrict its installation to any specific operating system (OS). You can use any operating system (OS) of your choice; however, the installation steps would vary according to the choice of operating system.

In this tutorial, we will be installing and configuring Alfresco Community Edition on an Alibaba Cloud Elastic Compute Service (ECS) instance with CentOS 7.

Prerequisites:

You must have Alibaba Cloud Elastic Compute Service (ECS) activated and verified your valid payment method. If you are a new user, you can get a free account in your Alibaba Cloud account. If you don't know about how to setup your ECS instance, you can refer to this tutorial or quick-start guide. Your ECS instance must have at least 4GB RAM and 2 Core processor. A domain name registered from Alibaba Cloud. If you have already registered a domain from Alibaba Cloud or any other host, you can update its domain nameserver records. Domain name must be pointed to your Alibaba Cloud ECS's IP address Access to VNC console in your Alibaba Cloud or SSH client installed in your PC Set up your server's hostname and create user with root privileges.

Install Required Dependencies

The installer package for Alfresco is easily available on their official website. This installer package by Alfresco contains all the programs required to execute Alfresco Community Edition on your Operating System. The LibreOffice plugin require some dependencies that needs to be installed.

Perform the following installations by entering the relevant commands:

Install fontconfig



# sudo yum -y install fontconfig

Install libSM



# sudo yum -y install libSM

Install libICE



# sudo yum -y install libICE

Install cups-libs



# sudo yum -y install cups-libs

Install libGLU, cairo, mesa-libGL-devel



# sudo yum -y install libGLU cairo mesa-libGL-devel

After completing all the above installations, remove Postfix or MTA from the machine with the command:



# sudo yum -y remove postfix

Nano editor is used to edit different files. It helps you in editing files easily. We will be using this editor for editing a few files, so downloading it on prior basis makes it easy for us to continue with the configurations and editing processes. Here's the command to install the editor.



# sudo yum install nano

We are now all set to install Alfresco on our ECS instance.

Install Alfresco Community Edition

The next step is to download the latest Alfresco installer via its official page. It is recommended to use the installer that is provided by the official Alfresco website, as it will not get you in trouble due to bugs or other errors during or after installation of Alfresco.

# wget https://download.alfresco.com/release/community/201707-build-00028/alfresco-community-installer-201707-linux-x64.bin

This downloading process may take a while, and after it is saved, it will generate a message of saving the installer package. This installer package requires certain execution permissions. The following command will provide it with the necessary permissions.



# sudo chmod +x alfresco-community-installer-201707-linux-x64.bin

We can now install the Alfresco Community Edition easily. Execute the following command to start the installation process.



# sudo ./alfresco-community-installer-201707-linux-x64.bin

After running the command, you will be prompted to select an installation language. Select the installation language by entering the respective number for your preferred language. After the language selection, it asks you to select the installation type. For installing the application with default configurations, you should select the "Easy Install" method.

You will then be prompted to select a folder to install Alfresco community. Select /opt/alfresco-community, which is the default location for installing Alfresco. Continue with the default folder by pressing Enter.

You will need to specify a password for the Alfresco Content Services administrator account. This will be the credential that you will be using for accessing the Alfresco services, after they are installed, by using the administrative ID and password. After setting up a password, select 'Y' for installing it as a service.

Right after the Alfresco is installed, it asks 'View Readme File?'. Select 'Y' and the server should start immediately with the following output.

You can also launch your application right away, as the installer has already provided the start-up service.



# sudo systemctl start alfresco

You need to get the Alfresco service enabled for it to start automatically at boot time. You can do this with the following command:



# sudo systemctl enable alfresco

By default, the Tomcat server starts on port 8080. To check the working status of Alfresco server, the port 8080 needs to be allowed through the system firewall. This will be done by the firewall settings mentioned with details at the end of this tutorial.

Go to a browser and log on to http://47.90.214.177:8080/share/ where 47.90.214.177 is my public IP. Remember to replace it with yours. Upon loading this, you will be shown Alfresco's landing page.

Configure Reverse Proxy

By default, Tomcat server runs on port 8080. Here we are going to use Nginx as a reverse proxy for the application to be easily accessible through the standard HTTP and HTTPS ports. We will also be configuring Nginx for using an SSL generated with Let's Encrypt free SSL.

Now, install Nginx server.



# sudo yum -y install nginx

We will be starting the web server along with enabling it to automatically start at the boot time.

# sudo systemctl start nginx # sudo systemctl enable nginx

Next, you need to configure your reverse proxy. All we need to do is to create a new block file in Alfresco.



# sudo nano /etc/nginx/conf.d/softpedia.xyz.conf

Here softpedia.xyz is the public domain name, replace it with yours. The next thing is that we shall be populating this file with the following code.

server { listen 80; server_name softpedia.xyz; location / { root /opt/alfresco-community/tomcat/webapps/ROOT; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_pass http://localhost:8080; proxy_redirect default; } location /share/ { root /opt/alfresco-community/tomcat/webapps/share/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_pass http://localhost:8080/share/; } location /alfresco/ { root /opt/alfresco-community/tomcat/webapps/alfresco/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_pass http://localhost:8080/alfresco/; } }

Save the modified changes and close the file. Now we are done with the necessary changes made for the configuration.

Restart the server to save your configuration and for the changes to take effect.



# sudo systemctl restart nginx alfresco

Now go to http://softpedia.xyz/share/page/ (or your own domain name) and access the various services of Alfresco Community Edition. Use credentials that you provided during the installation process of Alfresco.

Alfresco Community Edition is now accessible through the domain name, easily. You can now use the amazing services provided by this application by giving the authenticated administrative credentials.

Setup Firewalls for HTTP and HTTPS

If you have activated firewalls, you will have to define a rule in Alibaba Cloud security group for your cloud server to add exception for port 80/TCP and 443/TCP. You can enable these ports while creating ECS instance, but in case if you have forgotten to unblock these ports, you can follow the procedure below.

By default, these ports are blocked by the firewalls. Also, we need to add port 8080 for accessing the Alfresco. To do this, go to your Elastic Compute Service section. Click on More for the ECS you are using for Alfresco and click Security Group Configuration.

Click on Configure Rules and then click on Quickly Create Rules.

Add the configurations as shown in screenshot below and click OK.