{"id":17609867,"url":"https://github.com/emmiegit/qotd","last_synced_at":"2025-04-30T14:34:09.041Z","repository":{"id":144515764,"uuid":"50227820","full_name":"emmiegit/qotd","owner":"emmiegit","description":"QOTD (quote of the day) protocol daemon","archived":false,"fork":false,"pushed_at":"2024-02-11T19:06:23.000Z","size":344,"stargazers_count":7,"open_issues_count":4,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T17:02:13.626Z","etag":null,"topics":["c","daemon","posix","qotd","quotes","systemd","tcp","unix"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emmiegit.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":"2016-01-23T07:05:40.000Z","updated_at":"2024-11-01T18:42:01.000Z","dependencies_parsed_at":"2025-03-09T07:42:43.487Z","dependency_job_id":null,"html_url":"https://github.com/emmiegit/qotd","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmiegit%2Fqotd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmiegit%2Fqotd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmiegit%2Fqotd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmiegit%2Fqotd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emmiegit","download_url":"https://codeload.github.com/emmiegit/qotd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251721381,"owners_count":21632827,"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":["c","daemon","posix","qotd","quotes","systemd","tcp","unix"],"created_at":"2024-10-22T17:10:26.703Z","updated_at":"2025-04-30T14:34:08.986Z","avatar_url":"https://github.com/emmiegit.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# qotd\n[![Build Status](https://travis-ci.org/emmiegit/qotd.svg?branch=master)](https://travis-ci.org/emmiegit/qotd)\n[![Coverity Status](https://scan.coverity.com/projects/10274/badge.svg)](https://scan.coverity.com/projects/emmiegit-qotd)\n\nQOTD (quote of the day) is specified in [RFC 865](https://tools.ietf.org/html/rfc865) as a way of broadcasting a quote to users. On both TCP and UDP, port 17 is officially reserved for this purpose. This program is meant to provide a simple QOTD daemon on IPv4 and IPv6 over TCP/IP. See also [here](https://en.wikipedia.org/wiki/QOTD).\n\n### Installation from package\n* [AUR stable](https://aur.archlinux.org/packages/qotd)\n* [AUR development](https://aur.archlinux.org/packages/qotd-git)\n* [Fedora](https://packages.fedoraproject.org/pkgs/qotd/qotd/)\n\n### Installation from source\nClone this repo, and in the top level directory, run:\n\n```\n$ make\n# make install\n```\n\nThis will install the following files on your system:\n\n* `/etc/qotd.conf`\n* `/usr/bin/qotdd`\n* `/usr/share/qotd/quotes.txt`\n\nIf you use _systemd_, install with `make install SYSTEMD=1`. This will add a QOTD service file to your system at `/usr/lib/systemd/system/qotd.service`.\n\nIf you're creating a package, you can have `make` install to the packaging directory by setting `ROOT`, e.g. `make install ROOT=/tmp/my_package`.\n\n### Configuration\nThe default configuration file is located at `/etc/qotd.conf` (though this can be changed with the `-c` flag). Read the man pages or look at the example configuration files for more information about each setting and what it does.\n\n### Running\n_systemd_ users can run the new service:\n\n```\n# systemctl enable qotd.service\n# systemctl start qotd.service\n```\n\nThose running the daemon directly should be aware of its options:\n\n```\nUsage: qotdd [OPTION]...\nUsage: qotdd [--help | --version]\n\n  -f, --foreground      Do not fork, but run in the foreground.\n  -c, --conf (file)     Specify an alternate configuration file location. The default\n      --config (file)   is at \"/etc/qotd.conf\".\n  -N, --noconf          Do not read from a configuration file, but use the default\n      --noconfig        options instead.\n      --lax             When parsing the configuration, don't check file permissions\n                        or perform other security checks.\n  -P, --pidfile (file)  Override the pidfile name given in the configuration file with\n                        the given file instead.\n  -s, --quotes (file)   Override the quotes file given in the configuration file with\n                        the given filename instead.\n  -j, --journal (file)  Override the journal file given in the configuration file with\n                        the given filename instead.\n  -4, --ipv4            Only listen on IPv4.\n  -6, --ipv6            Only listen on IPv6. (By default the daemon listens on both)\n  -t, --tcp             Use TCP. This is the default behavior.\n  -u, --udp             Use UDP instead of TCP. (Not fully implemented yet)\n  -q, --quiet           Only output error messages. This is the essentially the same as\n                        using \"--journal /dev/null\".\n  --help                List all options and what they do.\n  --version             Print the version and some basic license information.\n```\n\n### FAQ\n**Q**) How can I use multi-line quotes?  \n**A**) Set `QuoteDivider` to `percent` in the configuration file, and delimit each quotation in your quotes file with a percent sign on its own line.\n\n**Q**) Why does this need to run as root?  \n**A**) RFC 865 specifies that the quote of the day protocol should be run on port 17, and only root is permitted bind to ports below 1024. By default, the program drops privileges and runs as the `daemon` user once a socket is established.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmiegit%2Fqotd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femmiegit%2Fqotd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmiegit%2Fqotd/lists"}