Daily Shaarli

All links of one day in a single page.

February 5, 2023

Note: Caddy HTTP

... Instalar Caddy en Ubuntu, Debian

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
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
sudo apt update
sudo apt install caddy

... Caddyfile básico sirviendo contenido estático, en el puerto 2015 en este caso

:2015
respond "Hello, world!"

... Caddyfile básico sirviendo contenido estático desde la ruta especificada

localhost
root * /home/me/mysite
file_server

... Reverse-Proxy To start a plaintext HTTP proxy from port 2080 to port 9000 on your machine:

caddy reverse-proxy --from :2080 --to :9000
caddy reverse-proxy --from example.com --to :9000 #en este caso especificando la URL(nombre DNS) de entrada al servicio

... Caddyfile básico para Reverse-Proxy sirviendo contenido estático desde la ruta especificada

example.com
reverse_proxy :9000

... Comandos básicos

caddy run
caddy start
caddy stop
caddy reload
caddy file-server #empieza a servir http con los ficheros existentes en el directorio actual. Ha de existir fichero index.html
caddy file-server --browse #empieza a servir http con los ficheros existentes, habilitando el brouse del directorio si no hay index de entrada
caddy file-server --root ~/mysite #empieza a servir http con los ficheros existentes en /mysite

... Caddy como servicio en Linux

root@test:/# systemctl status caddy
● caddy.service - Caddy
     Loaded: loaded (/etc/systemd/system/caddy.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-02-05 10:51:16 UTC; 3s ago
     Docs: https://caddyserver.com/docs/
     Main PID: 397 (caddy)
     Tasks: 8 (limit: 4500)
     Memory: 13.8M
     CPU: 199ms
     CGroup: /system.slice/caddy.service
             └─397 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

... ejemplo de arranque /etc/caddy/Caddyfile. Despliega por defecto SSL si el nombre de dominio está asociado a registor A/AAAA en DNS

# The Caddyfile is an easy way to configure your Caddy web server.
#
# Unless the file starts with a global options block, the first
# uncommented line is always the address of your site.
#
# To use your own domain name (with automatic HTTPS), first make
# sure your domain's A/AAAA DNS records are properly pointed to
# this machine's public IP, then replace ":80" below with your
# domain name.

hugo.k8.cloudns.nz
root * /home/learn-hugo/MySite/public
file_server

... dar permisos a usuario Caddy para levantar puertos bajos, 80 y 443

setcap CAP_NET_BIND_SERVICE=+eip $(which caddy)