{"id":15516646,"url":"https://github.com/gdubicki/dynamotd","last_synced_at":"2025-08-24T22:52:09.243Z","repository":{"id":42688104,"uuid":"234769932","full_name":"gdubicki/dynamotd","owner":"gdubicki","description":"🚥 MOTD for your servers that shows the info you need, with semantic colors","archived":false,"fork":false,"pushed_at":"2024-03-09T11:52:36.000Z","size":2371,"stargazers_count":12,"open_issues_count":4,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-20T14:07:16.891Z","etag":null,"topics":["linux","motd","server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gdubicki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-01-18T17:20:58.000Z","updated_at":"2025-04-16T08:00:31.000Z","dependencies_parsed_at":"2024-06-20T00:03:33.591Z","dependency_job_id":"0d22eac5-ac14-468c-9ff9-45a41ca693f5","html_url":"https://github.com/gdubicki/dynamotd","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdubicki%2Fdynamotd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdubicki%2Fdynamotd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdubicki%2Fdynamotd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdubicki%2Fdynamotd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gdubicki","download_url":"https://codeload.github.com/gdubicki/dynamotd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250371253,"owners_count":21419548,"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":["linux","motd","server"],"created_at":"2024-10-02T10:09:00.760Z","updated_at":"2025-04-23T04:29:54.832Z","avatar_url":"https://github.com/gdubicki.png","language":"Go","readme":"# Dynamotd\n\nWe know: servers, VMs and bare metals are not cool nowadays, but you may still have them and have to\ntake care of them, so how about making your life a little better?\n \nThis app provides a [MOTD (Message Of The Day)](https://en.wikipedia.org/wiki/Motd_(Unix)) optimized for \nproviding the info about your server that YOU need to troubleshoot stuff when you SSH to it (because if you are doing\nit, then something IS wrong with the server, isn't it?).   \n\n## Screenshot \n\n\u003cimg src=\"https://raw.githubusercontent.com/gdubicki/dynamotd/main/dynamotd.png\" width=\"1000px\" alt=\"screenshot\"\u003e\n\n## Features\n\n* **Useful default info** - CPU load, memory use, disk space use etc.,\n* **Semantic colors** - \u003cspan style=\"color:red\"\u003ered\u003c/span\u003e → problem, \u003cspan style=\"color:yellow\"\u003eyellow\u003c/span\u003e → warning, \u003cspan style=\"color:green\"\u003egreen\u003c/span\u003e → ok.\n* **Customizable** - reorder or remove lines,\n* **Fast** - native app,\n\n## Installation\n\n1. Download the latest binary for your OS and arch and make it executable, f.e. for Linux on AMD64:\n```\ncurl -L https://github.com/gdubicki/dynamotd/releases/latest/download/dynamotd-linux-amd64 -o /usr/local/bin/dynamotd \u0026\u0026 chmod +x /usr/local/bin/dynamotd\n```\n2. (Optionally) Configure with `/etc/dynamotd.yaml` file. See the example config in [dynamotd.yaml](./dynamotd.yaml).\n\n3. Make it shown instead of or after your default static MOTD by editing `/etc/pam.d/sshd`. Find line with `pam_motd.so` and either replace or append this line to it:\n```\nsession    optional     pam_exec.so stdout /usr/local/bin/dynamotd -force-color\n```\n(or `-no-color` if you prefer plain black-and-white output).\n\n## Troubleshooting\n\n**Problem**: dynamic MOTD is not shown during login.\n\n**Solution(s)**: there could be multiple reason for this.\n\nOne of them is if you use SSH multiplexing (`ControlPath`, `ControlMaster`, `ControlPersist` in your SSH config) - then the MOTD will be shown only during creation of the first connection to the server. Read more about it [here](https://blog.plover.com/Unix/sshd.html).\n\nTODO: expand this section as more cases are identified.\n\n## Configuration\n\nSee the example config in [dynamotd.yaml](./dynamotd.yaml).\n\nCheck out all the available command-line arguments by running `dynamotd -help`.\n\n## Contributing\n\nRequirements:\n* Go v. 1.22+\n\nHow to build:\n```\n./build.sh\n```\n\nHow to run tests:\n```\ngo test -v tests/*\n```\n\nOptional, but recommended: use [pre-commit](https://pre-commit.com) and install the apps used by our config.\n\n## TODO\n\nThese features will be implemented in the future:\n\n* **Pluggable** - add custom lines with any label and any command(s) output as the value,\n* **Interactive mode** - show the output like `htop`, updated every 2 seconds,\n* **Keyboard shortcuts** - in interactive mode only, to run popular tools like htop, iftop etc.\n* **Circuit-breaker** - minimal info mode in case of server overload detection,\n* **Native packages for RedHat/Centos/Rocky and Debian/Ubuntu** - easy install it on (almost) all of your servers.\n\nWe also don't have user docs, developer docs and contribution guide.\n\nWhat we DO have is some non-idiomatic code because the original author is only learning Golang.\n:P\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdubicki%2Fdynamotd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdubicki%2Fdynamotd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdubicki%2Fdynamotd/lists"}