Blog

Detailed Guide to Install and Use caddy_2.7.3_linux_amd64.tar.gz

Caddy is an open-source web server known for its simplicity, automatic HTTPS, and excellent performance. The file caddy_2.7.3_linux_amd64.tar.gz contains the Caddy binary tailored for Linux systems running on 64-bit architecture. This detailed guide will walk you through every step to install and use Caddy effectively.

1. What is Caddy?

Caddy is a modern, secure web server designed to simplify web hosting. Key features include:

  • Automatic HTTPS with Let’s Encrypt.
  • Support for static file serving, reverse proxying, and load balancing.
  • Easy configuration using a Caddyfile or command-line flags.
  • Portable, with a single binary for all tasks.

2. Prerequisites

Before proceeding, ensure your system meets these requirements:

  • Operating System: Linux (64-bit architecture, amd64).
  • Privileges: A user with sudo access.
  • Tools Installed: Basic utilities like tar and a text editor (nano or vim).

3. Downloading Caddy 2.7.3

Download the Caddy tarball from the official Caddy website or use wget in the terminal:

bash

Copy code

wget https://github.com/caddyserver/caddy/releases/download/v2.7.3/caddy_2.7.3_linux_amd64.tar.gz

The file will be saved in your current working directory.

4. Extracting the Tarball

Extract the contents of the tarball using the tar command:

bash

Copy code

tar -xvzf caddy_2.7.3_linux_amd64.tar.gz

You will see output showing the extracted files, which typically include the caddy binary.

5. Installing Caddy

To use Caddy system-wide, move the binary to a directory in your PATH (e.g., /usr/local/bin).

Steps:

Navigate to the extracted folder:
bash
Copy code
cd caddy_2.7.3_linux_amd64

Move the binary to /usr/local/bin:
bash
Copy code
sudo mv caddy /usr/local/bin/

Ensure the binary is executable:
bash
Copy code
sudo chmod +x /usr/local/bin/caddy

Verify the installation:
bash
Copy code
caddy version

  1. Output should display the installed version, such as 2.7.3.

6. Basic Usage of Caddy

Caddy can be used in different modes depending on your needs.

Serve a Static File Directory:

To serve files in the current directory:

bash

Copy code

caddy file-server –browse

  • Open http://localhost:8080 in your browser to access the server.
  • The –browse flag enables directory listing.

Reverse Proxy Mode:

Use Caddy as a reverse proxy to forward requests to another service. Example:

Create a Caddyfile:
plaintext
Copy code
example.com {

    reverse_proxy localhost:3000

}

Start the Caddy server with the configuration:
bash
Copy code
sudo caddy run –config /path/to/Caddyfile

Caddy will handle HTTPS automatically for example.com.

7. Setting Up Caddy as a Systemd Service

To run Caddy as a background service and ensure it starts on boot, configure it with systemd.

Steps:

Create a systemd service file:
bash
Copy code
sudo nano /etc/systemd/system/caddy.service

Add the following content:
plaintext
Copy code
[Unit]

Description=Caddy web server

After=network.target

[Service]

ExecStart=/usr/local/bin/caddy run –config /etc/caddy/Caddyfile

Restart=always

User=root

Group=root

[Install]

WantedBy=multi-user.target

Reload the systemd daemon:
bash
Copy code
sudo systemctl daemon-reload

Enable the service to start on boot:
bash
Copy code
sudo systemctl enable caddy

Start the service:
bash
Copy code
sudo systemctl start caddy

Check the status:
bash
Copy code
sudo systemctl status caddy

8. Advanced Configuration

Caddy’s functionality can be expanded with advanced configurations in the Caddyfile.

Example: Load Balancing

plaintext

Copy code

example.com {

    reverse_proxy /api/* localhost:4000 localhost:5000 {

        lb_policy random

    }

    file_server

}

  • Requests to /api/* are load-balanced across two servers.
  • Static files are served for other requests.

TLS Customization:

By default, Caddy handles TLS automatically. You can customize it:

plaintext

Copy code

example.com {

    tls me@example.com

    reverse_proxy localhost:3000

}

9. Troubleshooting

Check Logs:
Use journalctl to view service logs:
bash
Copy code
journalctl -u caddy -f

Validate Configuration:
Before running, ensure the configuration is valid:
bash
Copy code
caddy validate –config /path/to/Caddyfile

Port Issues:
If Caddy cannot bind to a port, ensure no other services are using it:
bash
Copy code
sudo netstat -tuln | grep 80

10. Uninstalling Caddy

To completely remove Caddy from your system:

Stop the service:
bash
Copy code
sudo systemctl stop caddy

Disable the service:
bash
Copy code
sudo systemctl disable caddy

Remove the binary:
bash
Copy code
sudo rm /usr/local/bin/caddy

Delete the systemd service file:
bash
Copy code
sudo rm /etc/systemd/system/caddy.service

  1. Clean up other configurations (e.g., /etc/caddy if used).

Conclusion

Caddy 2.7.3 is a highly versatile tool that simplifies web hosting with its automatic HTTPS, easy configuration, and modular design. This guide provides a comprehensive walkthrough for setting it up and using its features effectively. For more details, visit the official documentation.

Related Articles

Back to top button