{"id":18376416,"url":"https://github.com/fmind/chattail","last_synced_at":"2025-04-11T04:43:31.046Z","repository":{"id":101907717,"uuid":"175447100","full_name":"fmind/chattail","owner":"fmind","description":" Send log streams over XMPP to monitor your systems","archived":false,"fork":false,"pushed_at":"2019-03-13T16:03:17.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-11T04:43:28.583Z","etag":null,"topics":["log","m2m","monitoring","stream","xmpp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fmind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2019-03-13T15:20:20.000Z","updated_at":"2019-11-28T15:34:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"ab99fc9d-98cd-4bb9-9fca-78dd7b0bdcef","html_url":"https://github.com/fmind/chattail","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmind%2Fchattail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmind%2Fchattail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmind%2Fchattail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmind%2Fchattail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fmind","download_url":"https://codeload.github.com/fmind/chattail/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248345281,"owners_count":21088242,"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":["log","m2m","monitoring","stream","xmpp"],"created_at":"2024-11-06T00:23:15.573Z","updated_at":"2025-04-11T04:43:31.016Z","avatar_url":"https://github.com/fmind.png","language":"Python","readme":"chattail\n========\n\nChattail is a bot that allows you to monitor your log with a simple XMPP chat client ([full list](https://encrypted.google.com/search?hl=en\u0026q=xmpp%20client)).\n\nThis program is functional, but I haven’t test it in a production environment.\n\n\u003e\u003e Use it with caution, but tweak it as you like (see the LICENCE file).\n\n## Why ?\n* **Net traversal**: launch the bot on your server, monitor your log everywhere.\n* **Fast monitoring**: connect with a chat client, and check your log in secs.\n* **Restricted access**: give a read access only to the file your wish to share (ex: apache access).\n* **Multi-user**: add one line to your configuration file, and a new admin can check the log.\n* **XMPP coolness**: XMPP is a great protocol (extensible, multi-purpose, well designed ...).\n\n## Installation\n* **Install the dependencies**: sleekxmpp, dnspython, pyasn1, pyasn1-modules.\n* **Create 2 XMPP accounts**: one for the bot, the other for your chat client.\n* **Edit your configuration file**: copy the test.sample.conf file and edit your account/files.\n* **Launch the program**: simply type 'python chattail.py -c test.conf' with an system account that can access the file.\n\n## Usage\n\nWhen the program is launched, the JID associated with the bot will appear online. Simply pass your command just like a Command Line Interface:\n* ls\n* help\n* help tail\n* tail messages\n* stop\n\nUse the 'help' action to get more information about the command you wish you use. It's straightforward !\n\n## For developers\n\nThis section will explain the design:\n\nWhy use XMPP and not start a new protocol from scratch ?\nXMPP is extensible and come with a lot a functionality and software (client/server). It's an open standard, so we don't have to reinvent the wheel.\n\nWhy Python ?\nIt's a popular, mature and easy to use language. SleekXMPP is a well designed library (thanks [Fritzy](https://github.com/fritzy/SleekXMPP).\n\nWhy only one big Python file ?\nIt's easier that way. Download the file, edit a configuration file and run the program !\n\nWhy threads other processes ?\nI don't need big computation, but sharing memory was necessary (even though the stopping condition can be improved).\n\nWhy there is no unit tests ?\nIt's hard (although possible) to test an asynchronous client/software program. If you need to debug chattail, just give the -v (verbose) to turn the console display (It can give you a lot of information).\n\nIf you have more questions, don't hesitate to contact me !\n\n## Plans\n\n* **Support plugins**: add custom command to make it an extensible bot.\n* **More configuration**: output log file, file permissions, resource ID ...\n* **Multiple tail per JID**: this can be messy, it need a careful planning.\n* **More security**: I try to make as many internal test as I can, but there is still room to improvment.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmind%2Fchattail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffmind%2Fchattail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmind%2Fchattail/lists"}