DebianDebian Based

How To Install Caddy on Debian 12

Install Caddy on Debian 12

In this tutorial, we will show you how to install Caddy on Debian 12. Caddy is a powerful, lightweight, and easy-to-use web server that has gained popularity among developers and system administrators. It offers a range of features, including automatic HTTPS, HTTP/2 support, and a simple configuration syntax.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you the step-by-step installation of the Caddy web server on a Debian 12 (Bookworm).

Prerequisites

Before proceeding with the installation of Caddy on Debian 12, ensure you meet the following requirements:

  • A server running one of the following operating systems: Debian 12 (Bookworm).
  • It’s recommended that you use a fresh OS install to prevent any potential issues.
  • SSH access to the server (or just open Terminal if you’re on a desktop).
  • An active internet connection. You’ll need an internet connection to download the necessary packages and dependencies for the Caddy web server.
  • A user account with sudo privileges to execute administrative commands.

Install Caddy on Debian 12 Bookworm

Step 1. To begin, we need to update the package index and install a few essential dependencies. Open your terminal and run the following commands:

sudo apt update
sudo apt upgrade
sudo apt install curl debian-keyring debian-archive-keyring apt-transport-https

These commands will refresh the package list and install the necessary tools for adding the Caddy repository and managing HTTPS connections.

Step 2. Installing Caddy on Debian 12.

Next, we’ll add the official Caddy repository to our system. This ensures that we have access to the latest version of Caddy and can easily update it in the future. Follow these steps:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

Update the package index to recognize the new repository:

sudo apt update

With the repository added, we can now install Caddy using the APT package manager. Run the following command:

sudo apt install caddy

Once the installation is complete, you can verify that Caddy is installed correctly by checking its version:

caddy version

Step 3. Configuring Caddy.

Caddy uses a configuration file called Caddyfile to define how it should serve your website. Let’s create a basic Caddyfile to serve a static site:

sudo mkdir /var/www/example.com

Create an index.html file inside the directory:

echo "Hello, World!" | sudo tee /var/www/example.com/index.html

Open a new Caddyfile using a text editor (e.g., nano):

sudo nano /etc/caddy/Caddyfile

Add the following content to the Caddyfile:

example.com {
    root * /var/www/example.com
    file_server
}

Save the file and start Caddy:

sudo systemctl start caddy

Test your configuration by accessing http://example.com in your web browser. You should see the “Hello, World!” message.

Step 4. Enabling PHP Support (Optional).

If your website requires PHP support, you can easily configure Caddy to work with PHP-FPM. Follow these steps:

sudo apt install php php-fpm

Configure PHP-FPM to listen on a Unix socket:

sudo nano /etc/php/8.3/fpm/pool.d/www.conf

Find the listen directive and change it to:

listen = /run/php/php8.1-fpm.sock

Save the file, then restart PHP-FPM:

sudo systemctl restart php8.3-fpm

Modify the Caddyfile to handle PHP requests:

example.com {
    root * /var/www/example.com
    file_server
    php_fastcgi unix//run/php/php8.3-fpm.sock
}

This configuration tells Caddy to pass PHP requests to the PHP-FPM Unix socket.

Finally, restart Caddy:

sudo systemctl restart caddy

Congratulations! You have successfully installed Caddy. Thanks for using this tutorial to install the latest version of the Caddy web server on Debian 12 Bookworm. For additional help or useful information, we recommend you check the official Caddy website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button