Logdy - terminal logs in web browser
Webpage |
Demo |
Docs |
Download |
Blog
Supercharge terminal logs with web browser UI and low-code (TypeScript snippets written in the browser). Save 90% of time searching and browsing logs. It's like jq, tail, less, grep and awk merged together and available in a clean UI. Self-hosted, single binary.
Project status: Under development 🚧
Logdy is under heavy development and a lot of features is yet to be added. A feedback is welcome from early adopters. Feel free to post Issues, Pull Requests and contribute in the Discussions. Stay tuned for updates, visit Logdy Blog.
Demo
Visit demo.logdy.dev

Visit logdy.dev for more info.
Download precompiled binary
Naviage to releases Github page and download the latest release for your architecture.
In addition you can add the binary to your PATH for easier access.
Quick start
Below are few examples of what Logdy can do. Whatever the below commands will produce, will be forwarded to a Web UI.
logdy stdin 'npm run dev'
logdy stdin 'node index.js'
logdy stdin 'go run .'
logdy stdin 'python script.py'
logdy stdin 'tail -f /var/log/nginx/access.log'
The following should appear
INFO[2024-02...] WebUI started, visit http://localhost:8080 port=8080
Open the URL Address and start building parsers, columns and filters.
Documentation
For product documentation navigate to the official docs.
Usage
Usage:
logdy [command] [flags]
logdy [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
demo Starts a demo mode, random logs will be produced, the [number] defines a number of messages produced per second
follow Follows lines added to files. Example `logdy follow foo.log /var/log/bar.log`
forward Forwards the STDIN to a specified port, example `tail -f file.log | logdy forward 8123`
help Help about any command
socket Sets up a port to listen on for incoming log messages. Example `logdy socket 8233`. You can setup multiple ports `logdy socket 8123 8124 8125`
stdin Listens to STDOUT/STDERR of a provided command. Example `logdy stdin "npm run dev"`
Flags:
-t, --fallthrough When used will fallthrough all of the stdin received to the terminal as is
-h, --help help for logdy
-n, --no-analytics Opt-out from sending anonymous analytical data that helps improve Logdy
-u, --no-updates Opt-out from checking updates on program startup
-p, --port string Port on which the Web UI will be served (default "8080")
--ui-pass string Password that will be used to authenticate in the UI
-v, --verbose Verbose logs
--version version for logdy
Development
For development, we recommend running demo
mode
go run . demo 1
The above command will start Logdy in demo
mode with 1 log message produced per second.
You can read more about demo mode.
If you would like to develop with UI, check readme for logdy-ui for instructions how to run both together during development.
Building
This repository uses static asset embedding during compilation. This way, the UI is served from a single binary. Before you build make sure you copy a compiled UI (follow the instructions about building) in assets
directory.
Look at embed.go
for more details on how UI is embedded into the binary.
For a local architecture build:
go build
Releasing
For a cross architecture build use gox
. This will generate multiple binaries (in bin/
dir) for specific architectures, don't forget to update main.Version
tag.
gox \
-ldflags "-X 'main.Version=x.x.x'" \
-output="bin/{{.Dir}}_{{.OS}}_{{.Arch}}" \
-osarch="linux/amd64 windows/386 windows/amd64 darwin/amd64 darwin/arm64 linux/arm64"
Once it's ready, publish the binaries in a new Github release. Again, don't forget to update the version.
ghr v0.2.0 bin/