{"id":13466904,"url":"https://github.com/logdyhq/logdy-core","last_synced_at":"2025-05-14T16:02:49.602Z","repository":{"id":219182234,"uuid":"747929369","full_name":"logdyhq/logdy-core","owner":"logdyhq","description":"Realtime log viewer with web UI, tail -f for logs with a web interface browser.","archived":false,"fork":false,"pushed_at":"2025-03-06T07:48:40.000Z","size":37012,"stargazers_count":1547,"open_issues_count":19,"forks_count":37,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-14T16:02:45.882Z","etag":null,"topics":["developer-experience","developer-productivity","golang-logger","log","log-viewer","logger","logging","logging-library","logging-server","logs","logs-view","logviewer","self-hosted","selfhosted"],"latest_commit_sha":null,"homepage":"https://logdy.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/logdyhq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-24T23:12:45.000Z","updated_at":"2025-05-13T13:55:42.000Z","dependencies_parsed_at":"2024-12-13T02:03:11.584Z","dependency_job_id":"89ac0169-9b5f-4985-a19f-386166b1362c","html_url":"https://github.com/logdyhq/logdy-core","commit_stats":{"total_commits":119,"total_committers":8,"mean_commits":14.875,"dds":0.2941176470588235,"last_synced_commit":"80e634d99751aa27e4baaaf7e6f208a851b2bb38"},"previous_names":["logdyhq/logdy-core"],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logdyhq%2Flogdy-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logdyhq%2Flogdy-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logdyhq%2Flogdy-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logdyhq%2Flogdy-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/logdyhq","download_url":"https://codeload.github.com/logdyhq/logdy-core/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254179903,"owners_count":22027884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["developer-experience","developer-productivity","golang-logger","log","log-viewer","logger","logging","logging-library","logging-server","logs","logs-view","logviewer","self-hosted","selfhosted"],"created_at":"2024-07-31T15:00:51.209Z","updated_at":"2025-05-14T16:02:49.554Z","avatar_url":"https://github.com/logdyhq.png","language":"Go","funding_links":[],"categories":["6. Collector","Go","Command-line tools","语言资源库","Development"],"sub_categories":["Logging","go","Devops"],"readme":"# Logdy - terminal logs in web browser\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/logdyhq/logdy-core/assets/1653294/9ec8cb3f-0b8f-4523-b600-377444734b9d\" height=100/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cstrong\u003e \u003ca href=\"https://logdy.dev\"\u003eWebpage\u003c/a\u003e | \n\u003ca href=\"https://demo.logdy.dev\"\u003eDemo\u003c/a\u003e | \n\u003ca href=\"https://logdy.dev/docs/quick-start\"\u003eDocs\u003c/a\u003e | \n\u003ca href=\"https://github.com/logdyhq/logdy-core/releases\"\u003eDownload\u003c/a\u003e | \n\u003ca href=\"https://logdy.dev/blog\"\u003eBlog\u003c/a\u003e | \u003c/strong\u003e \n\u003ca href=\"https://github.com/logdyhq/logdy-core/actions/workflows/test.yml\"\u003e\n  \u003cimg src=\"https://github.com/logdyhq/logdy-core/actions/workflows/test.yml/badge.svg\"/\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n### Latest version: 0.16.0 (6 March 2024) - [Read announcement](https://logdy.dev/blog/post/logdy-new-version-announcement-v016)\n\nLogdy is a lightweight, single-binary log viewer that works just like `grep`, `awk`, `sed`, or `jq`. Simply add it to your PATH—no installation, deployment, or compilation required. It runs entirely locally, ensuring security and privacy. [Read more](https://logdy.dev/docs/what-is-logdy).\n\n### Key features\n* Zero-dependency single binary\n* Embedded Web UI\n* Real-time log viewing and filtering\n* Secure local operation\n* Multiple input modes (files, stdin, sockets, REST API)\n* Custom parsers and columns with TypeScript support (code editor with types support)\n* Go library integration\n\n### Standalone use\n```bash\n# Use with any shell command\n$ tail -f file.log | logdy\nWebUI started, visit http://localhost:8080\n\n# Read log files\n$ logdy follow app-out.log --full-read\nWebUI started, visit http://localhost:8080\n```\nMore use [modes in the docs.](https://logdy.dev/docs/explanation/command-modes)\n\n### Use as a Go library\n```go\npackage main\n\nimport \"github.com/logdyhq/logdy-core/logdy\"\n\nfunc main(){\n  logdyLogger := logdy.InitializeLogdy(logdy.Config{\n    ServerIp:       \"127.0.0.1\",\n    ServerPort:     \"8080\",\n  }, nil)\n\n  // app code...\n\n  logdyLogger.LogString(\"This is a message\")\n  logdyLogger.Log(logdy.Fields{\"msg\": \"supports structured logs too\", \"url\": \"some url here\"})\n}\n```\nCheck [docs](https://logdy.dev/docs/golang-logs-viewer) or [example app](https://github.com/logdyhq/logdy-core/blob/main/example-app/main.go).\n\n## Demo of the UI\nVisit [demo.logdy.dev](https://demo.logdy.dev)\n\n\n![autogenerate](https://github.com/logdyhq/logdy-core/assets/1653294/bfe09fa8-bbba-46fa-b54d-503f796c7b57)\n\nVisit [logdy.dev](http://logdy.dev) for more info and detailed documentation.\n\n##### Project status: New features added actively.\n\nLogdy is in active development, with new features being added regularly. Feedback is welcome from early adopters. Feel free to post [Issues](https://github.com/logdyhq/logdy-core/issues), [Pull Requests](https://github.com/logdyhq/logdy-core/pulls) and contribute in the [Discussions](https://github.com/logdyhq/logdy-core/discussions). Stay tuned for updates, visit [Logdy Blog](https://logdy.dev/blog).\n\n## Install using script\nThe command below will download the latest release and add the executable to your system's PATH. You can also use it to update Logdy.\n\n```bash\ncurl https://logdy.dev/install.sh | sh\n```\n\n## Install with Homebrew (MacOS)\nOn MacOS you can use homebrew to install Logdy.\n\n```bash\nbrew install logdy\n```\n\n## Download precompiled binary\n\nNavigate to [releases](https://github.com/logdyhq/logdy-core/releases) Github page and download the latest release for your architecture.\n\n```bash\nwget https://github.com/logdyhq/logdy-core/releases/download/v0.16.0/logdy_linux_amd64;\nmv logdy_linux_amd64 logdy;\nchmod +x logdy;\n```\nAdditionally, you can [add the binary to your PATH](https://logdy.dev/docs/how-tos#how-to-add-logdy-to-path) for easier access.\n## Quick start\nWhatever the below command will produce to the output, will be forwarded to a Web UI.\n```bash\nnode index.js | logdy\n```\nThe following should appear\n```\nINFO[2024-02...] WebUI started, visit http://localhost:8080    port=8080\n```\nOpen the URL Address and start building parsers, columns and filters.\n\nThere are multiple other ways you can run Logdy, check the [docs](https://logdy.dev/docs/explanation/command-modes).\n\n## Install Go library\n```bash\ngo get -u github.com/logdyhq/logdy-core/logdy\n```\n[Read more](https://logdy.dev/docs/golang-logs-viewer) about how to use Logdy embedded into your Go app.\n\n## Documentation\n\nFor product documentation navigate to the [official docs](https://logdy.dev/docs/quick-start).\n\n## CLI Usage\n\n```bash\nUsage:\n  logdy [command] [flags]\n  logdy [command]\n\nAvailable Commands:\n  completion  Generate the autocompletion script for the specified shell\n  demo        Starts a demo mode, random logs will be produced, the [number] defines a number of messages produced per second\n  follow      Follows lines added to files. Example `logdy follow foo.log /var/log/bar.log`\n  forward     Forwards the STDIN to a specified port, example `tail -f file.log | logdy forward 8123`\n  help        Help about any command\n  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`\n  stdin       Listens to STDOUT/STDERR of a provided command. Example `logdy stdin \"npm run dev\"`\n  utils       A set of utility commands that help working with large files\n\nFlags:\n      --api-key string                API key (send as a header Authorization)\n      --append-to-file string         Path to a file where message logs will be appended, the file will be created if it doesn't exist\n      --append-to-file-raw            When 'append-to-file' is set, raw lines without metadata will be saved to a file\n      --bulk-window int               A time window during which log messages are gathered and send in a bulk to a client. Decreasing this window will improve the 'real-time' feeling of messages presented on the screen but could decrease UI performance (default 100)\n      --config string                 Path to a file where a config (json) for the UI is located\n      --disable-ansi-code-stripping   Use this flag to disable Logdy from stripping ANSI sequence codes\n  -t, --fallthrough                   Will fallthrough all of the stdin received to the terminal as is (will display incoming messages)\n  -h, --help                          help for logdy\n      --max-message-count int         Max number of messages that will be stored in a buffer for further retrieval. On buffer overflow, oldest messages will be removed. (default 100000)\n  -n, --no-analytics                  Opt-out from sending anonymous analytical data that helps improve Logdy\n  -u, --no-updates                    Opt-out from checking updates on program startup\n  -p, --port string                   Port on which the Web UI will be served (default \"8080\")\n      --ui-ip string                  Bind Web UI server to a specific IP address (default \"127.0.0.1\")\n      --ui-pass string                Password that will be used to authenticate in the UI\n  -v, --verbose                       Verbose logs\n      --version                       version for logdy\n```\n\n**It is possible to also provide some of the options as ENV variables, read more in the docs**\n\n## Development\nFor development, we recommend running `demo` mode\n```bash\ngo run . demo 1\n```\n\nThe above command will start Logdy in `demo` mode with 1 log message produced per second.\nYou can read more about [demo mode](https://logdy.dev/docs/demo-mode).\n\nIf you would like to develop with UI, check [readme for logdy-ui](https://github.com/logdyhq/logdy-ui) for instructions how to run both together during development.\n\n## Building\n\nThis 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](https://github.com/logdyhq/logdy-ui) (follow the instructions about building) in `http/assets` directory. The UI is already commited to this repository, so you don't have to do anymore actions.\n\nLook at `http/embed.go` for more details on how UI is embedded into the binary.\n\nFor a local architecture build:\n```bash\ngo build\n```\n\n## Releasing\nFor 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.\n```bash\ngox \\\n    -ldflags \"-X 'main.Version=x.x.x'\" \\\n    -output=\"bin/{{.Dir}}_{{.OS}}_{{.Arch}}\" \\\n    -osarch=\"linux/amd64 windows/386 windows/amd64 darwin/amd64 darwin/arm64 linux/arm64\"\n```\n\nOnce it's ready, publish the binaries in a new Github release. Again, don't forget to update the version.\n\n```bash\nghr vx.x.x bin/\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogdyhq%2Flogdy-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flogdyhq%2Flogdy-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogdyhq%2Flogdy-core/lists"}