{"id":16750115,"url":"https://github.com/alexferl/tinysyslog","last_synced_at":"2025-08-31T08:37:06.559Z","repository":{"id":57521543,"uuid":"49239958","full_name":"alexferl/tinysyslog","owner":"alexferl","description":"A tiny and simple syslog server with log rotation in Go. Works with Docker and Kubernetes.","archived":false,"fork":false,"pushed_at":"2025-04-24T01:13:27.000Z","size":1467,"stargazers_count":58,"open_issues_count":0,"forks_count":14,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-24T02:24:17.214Z","etag":null,"topics":["go","go-syslog","golang","log-rotation","logging","lumberjack","rfc5424","syslog","syslog-server","tiny"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/admiralobvious/tinysyslog/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexferl.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-01-08T00:48:11.000Z","updated_at":"2025-04-24T01:07:21.000Z","dependencies_parsed_at":"2024-03-07T23:31:24.181Z","dependency_job_id":"fb5e7c4d-7002-4140-8289-6897cc87a5fc","html_url":"https://github.com/alexferl/tinysyslog","commit_stats":null,"previous_names":["admiralobvious/tinysyslog"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/alexferl/tinysyslog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferl%2Ftinysyslog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferl%2Ftinysyslog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferl%2Ftinysyslog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferl%2Ftinysyslog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexferl","download_url":"https://codeload.github.com/alexferl/tinysyslog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferl%2Ftinysyslog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272959390,"owners_count":25022056,"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","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["go","go-syslog","golang","log-rotation","logging","lumberjack","rfc5424","syslog","syslog-server","tiny"],"created_at":"2024-10-13T02:27:07.013Z","updated_at":"2025-08-31T08:37:06.553Z","avatar_url":"https://github.com/alexferl.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tinysyslog [![Go Report Card](https://goreportcard.com/badge/github.com/alexferl/tinysyslog)](https://goreportcard.com/report/github.com/alexferl/tinysyslog) [![codecov](https://codecov.io/gh/alexferl/tinysyslog/branch/master/graph/badge.svg)](https://codecov.io/gh/alexferl/tinysyslog)\n\nA tiny and simple syslog server with log rotation. tinysyslog was born out of the need for a tiny, easy to set up and\nuse syslog server that simply writes every incoming log (in [RFC 5424](https://datatracker.ietf.org/doc/html/rfc5424) format **only**) to a file that is automatically rotated,\nto stdout or stderr (mostly for Docker).\ntinysyslog is based on [go-syslog](https://github.com/mcuadros/go-syslog) and [lumberjack](https://github.com/natefinch/lumberjack).\n\n## Quickstart\n```shell\ngit clone https://github.com/alexferl/tinysyslog.git\ncd tinysyslog\nmake run\n```\n\nIf tinysyslog started properly you should see:\n```shell\n2023-08-30T18:38:09-04:00 INF server.go:52 \u003e tinysyslog starting\n2023-08-30T18:38:09-04:00 INF server.go:63 \u003e tinysyslog listening on 127.0.0.1:5140\n```\nYou can take make sure logs are processed by the server by entering the following in a terminal:\n```shell\nnc -w0 -u 127.0.0.1 5140 \u003c\u003c\u003c '\u003c165\u003e1 2016-01-01T12:01:21Z hostname appname 1234 ID47 [exampleSDID@32473 iut=\"9\" eventSource=\"test\" eventID=\"123\"] message'\n```\n\nYou should then see the following output in your terminal:\n```shell\nJan  1 12:01:21 hostname appname[1234]: message\n```\n\n## Docker Quickstart\nDownload the image:\n```shell\ndocker pull admiralobvious/tinysyslog\n```\n\nStart the container:\n```shell\ndocker run --rm --name tinysyslog -p 5140:5140/udp -d admiralobvious/tinysyslog\n```\n\nSend a log:\n```shell\nnc -w0 -u 127.0.0.1 5140 \u003c\u003c\u003c '\u003c165\u003e1 2016-01-01T12:01:21Z hostname appname 1234 ID47 [exampleSDID@32473 iut=\"9\" eventSource=\"test\" eventID=\"123\"] message'\n```\n\nConfirm the container received it:\n```shell\ndocker logs tinysyslog\n```\n\n```shell\n2023-08-30T22:46:06Z INF build/server.go:52 \u003e tinysyslog starting\n2023-08-30T22:46:06Z INF build/server.go:63 \u003e tinysyslog listening on 0.0.0.0:5140\nJan  1 12:01:21 hostname appname[1234]: message\n```\n\n## Kubernetes Quickstart\nApply the manifest to your cluster:\n```shell\nkubectl apply -f kubernetes/tinysyslog.yaml\n```\n\nMake sure the container is running:\n```shell\nkubectl get pods | grep tinysyslog\n```\n\n```shell\ntinysyslog-6c85886f65-q9cxw          1/1       Running   0          1m\n```\n\nConfirm the pod started properly:\n\n```shell\nkubectl logs tinysyslog-6c85886f65-q9cxw\n```\n\n```shell\n2023-08-30T22:46:06Z INF build/server.go:52 \u003e tinysyslog starting\n2023-08-30T22:46:06Z INF build/server.go:63 \u003e tinysyslog listening on 0.0.0.0:5140\n```\n\nYou can now send logs from your app(s) to `tinysyslog:5140`.\n\n## Configuration\n```\nUsage of ./tinysyslogd:\n      --app-name string                   The name of the application. (default \"tinysyslog\")\n      --bind-addr string                  IP and port to listen on. (default \"127.0.0.1:5140\")\n      --env-name string                   The environment of the application. Used to load the right configs file. (default \"PROD\")\n      --filter string                     Filter to filter logs with. Valid filters: [noop regex]\n      --filter-regex string               Regex to filter with.\n      --log-level string                  The granularity of log outputs. Valid levels: [PANIC FATAL ERROR WARN INFO DISABLED TRACE DISABLED] (default \"INFO\")\n      --log-output string                 The output to write to. Valid outputs: [stdout stderr] (default \"stdout\")\n      --log-writer string                 The log writer. Valid writers: [console json] (default \"console\")\n      --mutator string                    Mutator type to use. Valid mutators: [text json] (default \"text\")\n      --sink-console-output string        Console to output to. Valid outputs: [stdout stderr] (default \"stdout\")\n      --sink-filesystem-filename string   File path to write incoming logs to. (default \"syslog.log\")\n      --sink-filesystem-max-age int       Maximum age (in days) before a log is deleted. (default 30)\n      --sink-filesystem-max-backups int   Maximum backups to keep. (default 10)\n      --sink-filesystem-max-size int      Maximum log size (in megabytes) before it's rotated. (default 100)\n      --sinks strings                     Sinks to save syslogs to. Valid sinks: [console filesystem] (default [console])\n      --socket-type string                Type of socket to use, TCP or UDP. If no type is specified, both are used.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexferl%2Ftinysyslog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexferl%2Ftinysyslog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexferl%2Ftinysyslog/lists"}