TUI SSH monitor for Caddy web server logs
Find a file
2026-06-13 19:48:54 +02:00
.github/workflows ci: push formula to shared homebrew-tools tap 2026-06-13 16:20:02 +02:00
cmd feat: initial caddyview implementation 2026-06-11 09:50:09 +02:00
internal fix: rework history aggregation, live streaming and visual refresh 2026-06-12 21:30:38 +02:00
.gitignore ci: add automated release workflow 2026-06-11 10:10:04 +02:00
go.mod feat: initial caddyview implementation 2026-06-11 09:50:09 +02:00
go.sum feat: initial caddyview implementation 2026-06-11 09:50:09 +02:00
LICENSE chore: add MIT license 2026-06-11 10:01:07 +02:00
main.go feat: initial caddyview implementation 2026-06-11 09:50:09 +02:00
README.md Add README.md for Caddyview installation and usage 2026-06-13 19:48:54 +02:00

Caddyview

Remote Caddy log viewer over SSH.

Installation

macOS (Homebrew)

brew tap janvete/caddyview
brew install caddyview

Linux

curl -L https://github.com/janvete/caddyview/releases/latest/download/caddyview-v0.6.0-linux-amd64.tar.gz | tar xz
sudo mv caddyview /usr/local/bin/

Usage

caddyview ssh root@192.168.x.x
caddyview ssh -p 2222 admin@server.com

Required Caddyfile Changes

1. Add a log block to your Caddyfile

Add the logging configuration to a snippet or to each individual site block:

(hsts) {
    log {
        output file /var/log/caddy/access.log {
            roll_size 100mb
            roll_keep 10
        }
        format json
    }
    header {
        Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
        X-Content-Type-Options "nosniff"
        Referrer-Policy "strict-origin-when-cross-origin"
        Permissions-Policy "geolocation=(), microphone=(), camera=()"
        -Server
    }
}

some.dns.com {
    import hsts
    reverse_proxy 192.168.71.6:1378
}

2. Create the log file with correct permissions (BEFORE reloading!)

mkdir -p /var/log/caddy
touch /var/log/caddy/access.log
chown caddy:caddy /var/log/caddy/access.log

3. Reload Caddy

systemctl reload caddy