<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Felix Mukah</title>
    <description>The latest articles on DEV Community by Felix Mukah (@felix_mukah).</description>
    <link>https://dev.to/felix_mukah</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2783458%2Ff588567d-e968-4ead-9f95-969dbd1cd7c1.png</url>
      <title>DEV Community: Felix Mukah</title>
      <link>https://dev.to/felix_mukah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/felix_mukah"/>
    <language>en</language>
    <item>
      <title>Setting Up a Customized Email</title>
      <dc:creator>Felix Mukah</dc:creator>
      <pubDate>Mon, 24 Feb 2025 15:28:47 +0000</pubDate>
      <link>https://dev.to/felix_mukah/setting-up-a-customized-email-19ca</link>
      <guid>https://dev.to/felix_mukah/setting-up-a-customized-email-19ca</guid>
      <description>&lt;p&gt;&lt;strong&gt;Email Setup Documentation for phelyxcommunication.com&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. Overview&lt;/strong&gt;&lt;br&gt;
This document outlines the steps taken to set up a custom email system using Amazon WorkMail and Route 53.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Domain Registration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Service:&lt;/strong&gt; Route 53.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Domain:&lt;/strong&gt; phelyxcommunication.com.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Logged in to AWS Management Console.&lt;/li&gt;
&lt;li&gt;Registered the domain yourdomain.com in Route 53.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. DNS Configuration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service: Route 53.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps:&lt;/strong&gt;&lt;br&gt;
    1. Created a Hosted Zone for phelyxcommunication.com.&lt;br&gt;
    2. Added the following DNS records:&lt;br&gt;
              - MX Record: 10 inbound-smtp.us-east-1.amazonaws.com&lt;br&gt;
              - TXT Record: "v=spf1 include:spf.workmail.amazonaws.com ~all".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Email Hosting Setup&lt;/strong&gt;&lt;br&gt;
    - Service: Amazon WorkMail.&lt;br&gt;
    - Steps:&lt;br&gt;
         1. Created an organization in WorkMail.&lt;br&gt;
         2. Added the domain yourdomain.com.&lt;br&gt;
         3. Verified the domain using the provided TXT record.&lt;br&gt;
         4. Created email accounts (&lt;a href="mailto:felix.mukah@phelyxcommunication.com"&gt;felix.mukah@phelyxcommunication.com&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Email Client Configuration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Configured Outlook using IMAP/SMTP settings:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Incoming Server: outlook.office365.com.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Outgoing Server: smtp.office365.com.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ports: IMAP (993), SMTP (587).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;6. Troubleshooting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Issue:&lt;/strong&gt; "No TXT record found" during domain verification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Added the correct TXT record in Route 53 and waited for DNS propagation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Maintenance Tips&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Monitor email usage using Amazon CloudWatch.&lt;/p&gt;

&lt;p&gt;Enable 2FA for added security.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Setting up and configuring NGINX on a fresh Ubuntu server</title>
      <dc:creator>Felix Mukah</dc:creator>
      <pubDate>Sat, 08 Feb 2025 21:14:58 +0000</pubDate>
      <link>https://dev.to/felix_mukah/setting-up-and-configuring-nginx-on-a-fresh-ubuntu-server-1l0c</link>
      <guid>https://dev.to/felix_mukah/setting-up-and-configuring-nginx-on-a-fresh-ubuntu-server-1l0c</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. Introduction&lt;/strong&gt;&lt;br&gt;
This documentation outlines the steps taken to set up and configure NGINX on a fresh Ubuntu server. The goal was to create a functional web server capable of serving a simple HTML page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Prerequisites&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An AWS EC2 instance running Ubuntu 22.04 LTS.&lt;/li&gt;
&lt;li&gt;SSH access to the server using a .pem key pair.&lt;/li&gt;
&lt;li&gt;Basic familiarity with the Linux command line.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Step-by-Step Process&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 1: Provision the Ubuntu Server&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
Create an EC2 Instance:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log in to the AWS Management Console.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Launch an EC2 instance with the following specifications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AMI: Ubuntu Server 22.04 LTS&lt;/li&gt;
&lt;li&gt;Instance Type: t2.micro (free tier eligible)&lt;/li&gt;
&lt;li&gt;Storage: 8 GB (default)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure the security group to allow SSH (port 22) and HTTP (port 80) traffic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download the .pem key pair for SSH access.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Connect to the Server:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use SSH to connect to the server:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -i /path/to/your-key.pem ubuntu@your_server_public_ip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Step 2: Install NGINX&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Update the package list:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Install NGINX:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Verify the installation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nginx -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3: Configure NGINX&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Start and enable NGINX:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl start nginx
sudo systemctl enable nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Check the status of NGINX:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Open the default NGINX configuration file:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/nginx/sites-available/default
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Modify the configuration to serve a simple HTML page:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Update the &lt;code&gt;root&lt;/code&gt; directive to &lt;code&gt;/var/www/html&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure the &lt;code&gt;index&lt;/code&gt; directive includes &lt;code&gt;index.html&lt;/code&gt;.&lt;br&gt;
Example configuration:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Save and exit the editor (&lt;code&gt;Ctrl+O&lt;/code&gt;, Enter, &lt;code&gt;Ctrl+X&lt;/code&gt;)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Create a Simple HTML Page&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create the HTML directory:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mkdir -p /var/www/html
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create an &lt;code&gt;index.html&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /var/www/html/index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add the following HTML content:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;Welcome to My Server!&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;p&amp;gt;Welcome to DevOps Stage 0 - Felix Mukah/Felix Mukah&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save and exit the editor.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Test the Configuration&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Test the NGINX configuration for syntax errors:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nginx -t
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reload NGINX to apply the changes:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl reload nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open a web browser and navigate to your server’s public IP address:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://your_server_public_ip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see the HTML page you created.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Verification&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;NGINX Status:&lt;/strong&gt; Confirmed NGINX is running using sudo systemctl status nginx.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Page:&lt;/strong&gt; Verified the HTML page is accessible via the server’s public IP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Challenges and Solutions&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Challenge:&lt;/strong&gt; Initially, the .pem file was not recognized by PuTTYgen on Windows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Converted the .pem file to .ppk using PuTTYgen and successfully connected to the server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Conclusion&lt;/strong&gt;&lt;br&gt;
This project successfully demonstrated the setup and configuration of NGINX on a fresh Ubuntu server. The server is now capable of serving a simple HTML page over HTTP. This foundational knowledge can be expanded to host dynamic websites, implement SSL/TLS, and explore advanced NGINX features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. References&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://nginx.org/en/docs/" rel="noopener noreferrer"&gt;NGINX Documentation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html" rel="noopener noreferrer"&gt;AWS EC2 User Guide&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/docs.html" rel="noopener noreferrer"&gt;PuTTY Documentation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hng.tech/hire/devops-engineers" rel="noopener noreferrer"&gt;DevOps Engineers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hng.tech/hire/cloud-engineers" rel="noopener noreferrer"&gt;Cloud Engineers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
