How To Install The Friendica Social Network Platform On Linux Ubuntu 20.04 Or CentOS 8 Complete With Free Hosting For 1 Year On AWS.

Friendica is a free and open source software that makes it possible for anyone to deploy and run their own social network platform. Friendica is a decentralized platform which means that it has no central authority or ownership. Friendica also allows you to have complete privacy controls such that you can setup access lists, private conversation groups, and more. Friendica has similar features that other popular platforms have such as posts, sharing of photos, user profiles and more. Continue reading this tutorial to learn how to install the Friendica social network platform on a Linux Ubuntu 20.04 or CentOS 8 server complete with free hosting for 1 year on the AWS cloud computing platform.
REQUIREMENTS
In order to complete this tutorial successfully the following items are required. Please ensure to have these items available before taking implementation action on this tutorial:
1) An AWS free tier account and an IAM user account that can provision and manage EC2 instances
2) A Linux Ubuntu 20.04 Server or CentOS 8 – AWS instance
3) An AWS elastic IP address and a fully qualified domain name.
4) The Friendica installation files for Linux Ubuntu 20.04 Server or CentOS 8
OVERVIEW
1) Sign up for a free tier AWS account and create an IAM user account. If you already have an AWS account – sign in to the AWS console using your IAM credentials
2) Create a Linux Ubuntu 20.04 server or CentOS 8 – AWS instance, set an elastic IP address of the linux server and point your domain name to the elastic IP address
3) Connect to the ubuntu / centos instance and install the LAMP stack
4) Download and install friendica.
5) Install a letsencrypt SSL certificate.
Step 1: Sign up for a free tier AWS account or sign into the AWS console using your IAM credentials.
1) AWS offers a great free tier account that allows you to use limited AWS services for 1 year free of charge. So you can setup all your AWS cloud work loads without having to make any financial commitment right away. Click HERE to sign up for an AWS free tier account.

2) After signing up for a free tier account, login to the AWS management console and click on SERVICES > IAM. Click on the USERS tab and click on ADD USERS

3) Type in a name to identify the user on the USER NAME text box and click on the AWS MANAGEMENT CONSOLE ACCESS check box on the ACCESS TYPE section. Click on the CUSTOM PASSWORD option, enter a password and click on NEXT: PERMISSIONS.

4) On the SET PERMISSIONS page, click on the CREATE GROUP button to create a group that will contain access permissions for users.

5) Enter and name to identify the group on the GROUP NAME text box. Click on the ADMINISTRATORACCESS check box and click on CREATE GROUP

5) Click on the check box next to the newly created group and click on NEXT: TAGS.

6) AWS IAM tags are basically key-value pairs that you can add to an AWS user that allow to add descriptive information such as a user’s email address, job role and department.
Use the KEY and VALUE text input boxes to add user tags and once done click on the NEXT: REVIEW button.

7) On the REVEW page, verify that the user details are correct and click on the CREATE USER button.
At this point you can now log out of the AWS CONSOLE and LOG IN using th e newly created IAM user account.

Step 2: Create A Linux Ubuntu 20.04 Server Or CentOS 8 - AWS Instance, Set An Elastic IP Address On The Linux Server And Point Your Domain Name To The Elastic IP Address
8) To create an AWS instance click on SERVICES > EC2 > LAUNCH INSTANCE. Click on the AWS MARKETPLACE tab and search for CENTOS 8 or LINUX UBUNTU 20.04 on the search bar.
Click on the SELECT button next to the amazon machine image to proceed to the next step.

9) A popup browser window will be displayed showing you some pricing details for the instance that you are creating. Click on the CONTINUE button to proceed to the next step.

10) On the CHOOSE AN INSTANCE TYPE page, AWS offers a wide selection of instance types that are optimized for almost any use case. Each instance type has varying compute, memory, storage and networking capacity and you have the flexibility of choosing the appropriate instance type for your use case.
To get the 1 year free hosting, click on the t2.micro instance type marked as FREE TIER ELIGIBLE and click on REVIEW AND LAUNCH.

11) On the REVIEW INSTANCE LAUNCH page, details of selection that you made in the previous steps will be displayed. If you would like to make any adjustments you can click on the PREVIOUS button to return to previous steps.
If there are no changes to be made, click on the LAUNCH button.

12) A popup will will be displayed, prompting you to select an existing key pair or to create a new key pair. Select the CREATE A NEW KEY PAIR option,enter a name for the key pair on the KEY PAIR NAME text box and click on DOWNLOAD KEY PAIR.
Click on the LAUNCH INSTANCE button to complete the instance creation process.
If there are no changes to be made, click on the LAUNCH button.

Set An Elastic IP Address On The Linux Server Instance.
13) To be able to point a domain name to the FRIENDICA server a static IP address s needed. In AWS you can set a static public IP address on an instance through the use of ELASTIC IP ADDRESSES.
On the NETWORK & SECURITY section of the EC2 MANAGEMENT CONSOLE, click on ELASTIC IP’s > ALLOCATE ELASTIC IP ADDRESS.

14) On the ALLOCATE ELASTIC IP ADDRESS page, click on the AMAZON’S POOL OF IPV4 ADDRESSES option and click on ALLOCATE.

15) Click on the check box on the newly allocated IP address and click on ACTIONS > ASSOCIATE ELASTIC IP ADDRESS.

16) On the ASSOCIATE ELASTIC IP ADDRESS page, you need to choose the instance to associate the ELASTIC IP address. Set the RESOURCE TYPE option to INSTANCE, select the INSTACE ID for the FRIENDICA SERVER instance and click on ASSOCIATE.

Point Your Domain Name To The Elastic IP Address
17) The process of pointing a public domain name depends on the domain registrator and web hosting provider that you choose to use. If you have a domain name with a CPANEL hosting account, the process of pointing the domain to the ELASTIC IP ADDRESS is as follows:
a) Log into your CPANEL dashboard and scroll down to the DOMAINS sections and click on ZONE EDITOR.
b) Click on the MANAGE button and click on the “A” tab.

18) Click on the EDIT button on the A record for your domain, enter the ELASTIC IP ADDRESS on the RECORD input box and click on SAVE RECORD.
NB: Please note that changes made to DNS records can take a few minutes to a couple of hours to propagate.

Step 3: Connect To The Ubuntu / CentOS Instance And Install The LAMP Stack.
19) To connect to the instance via SSH, open your command line application i.e TERMINAL and run the following commands:
