In this article, we want to teach you How To Install and Configure Caddy on AlmaLinux 8.
Caddy is an alternative to an apache web server with easy to configure and use.
Caddy is the only first web server that can acquire and renew SSL/TLS certificates automatically using Let’s Encrypt.
Install and Configure Caddy on AlmaLinux 8
To install the Caddy web server on AlmaLinux 8, you need to log in to your server as a non-root user with sudo privileges and set up a basic firewall. To do this, you can follow our article the Initial Server Setup with AlmaLinux 8.
Also, you need a domain name that pointed to your server’s IP address.
Now follow the steps below to install Caddy on AlmaLinux 8.
Install Caddy Web Server on AlmaLinux 8
First, you need to update your local package index with the following command:
sudo dnf update
By default, Caddy is not available in the default AlmaLinux 8 repository. So you need to add the Copr repository to your server.
The Copr (Cool Other Package Repo) is a Fedora project to help make building and managing third-party package repositories easy.
To do this, run the following command:
sudo dnf install 'dnf-command(copr)'
Then, enable the Caddy repository on AlmaLinux 8 with the following command:
sudo dnf copr enable @caddy/caddy
Again you need to run the system update:
sudo dnf update
Now use the following command to install Caddy on your server:
sudo dnf install caddy
Next, start and enable your Caddy service with the commands below:
$ sudo systemctl start caddy $ sudo systemctl enable caddy
Verify that your Caddy service is active and running on your AlmaLinux 8 with the command below:
sudo systemctl status caddy
In your output you will see:
Output caddy.service - Caddy Loaded: loaded (/usr/lib/systemd/system/caddy.service; enabled; vendor prese> Active: active (running) since Sun 2022-02-06 05:00:27 EST; 9s ago Docs: https://caddyserver.com/docs/ Main PID: 88587 (caddy) Tasks: 7 (limit: 11409) Memory: 18.8M CGroup: /system.slice/caddy.service └─88587 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
Now that you have Caddy installed and running on your AlmaLinux 8, let’s see how to create a new site on the Caddy web server.
Create a new site on the Caddy webserver
This step is similar to the Apache virtual hosts or Nginx server blocks.
First, create a directory for your site with the command below:
sudo mkdir -p /var/www/your-domain/html
Then, you need to create a directory for the logs:
sudo mkdir /var/log/caddy
Set the correct ownership for both directories with the commands below:
$ sudo chown caddy:caddy /var/www/your-domain/html -R $ sudo chown caddy:caddy /var/log/caddy
Now you need to create an index.html file in your new site directory with your favorite text editor, here we use vi:
sudo vi /var/www/your-domain/html/index.html
Add the following content to the file:
<!DOCTYPE html> <html> <head> <title>Hi</title> </head> <body> <h1>Welcome to orcacore</h1> </body> </html>
When you are done, save and close the file.
Here you need to edit the Caddy configuration file. Open the file with your favorite text editor, here we use vi:
sudo vi /etc/caddy/Caddyfile
Remove all the contents at the file and add the following contents to the file:
your-domain { root * /var/www/your-domain/html file_server encode gzip log { output file /var/log/caddy/your-domain.log } @static { file path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.pdf *.webp } header @static Cache-Control max-age=5184000 tls admin@your-domain }
When you are done, save and close the file.
Then, you need to validate your configuration with the command below:
caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile
Note: If the on-screen output results in a formatted warning, you can fix it by running the command below:
caddy fmt --overwrite /etc/caddy/Caddyfile
Next, restart the Caddy service on AlmaLinux 8 to apply the changes:
sudo systemctl restart caddy
Here we assumed that you have enabled the firewalld. Now you need to allow traffic on HTTP and HTTPS through the firewall with the following commands:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
Reload the firewall to apply the new rules:
sudo systemctl reload firewalld
Access Caddy webserver
At this point, you can access the Caddy web server by typing your domain name or server’s IP address in your web browser:
http://server-ip-or-domain
You will see the Welcome test page.
Conclusion
At this point, you learn to Install and Configure Caddy on AlmaLinux 8.
Hope you enjoy it.
May this article about Install and Configure Caddy on Debian 11 be useful for you.