Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kpe/telerembash
Telegram Remoting Bot
https://github.com/kpe/telerembash
Last synced: about 2 months ago
JSON representation
Telegram Remoting Bot
- Host: GitHub
- URL: https://github.com/kpe/telerembash
- Owner: kpe
- License: mit
- Created: 2021-01-09T13:16:01.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-04-13T08:46:40.000Z (over 3 years ago)
- Last Synced: 2024-10-12T14:39:47.798Z (2 months ago)
- Language: Python
- Size: 73.2 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
TeleRemBash
===========|Build Status| |Coverage Status| |Version Status| |Python Versions| |Downloads|
``TeleRemBash`` is a `Telegram`_ `Bot`_ for executing
scripts on a remote system, baked with `TOTP`_ Authentication
for a secure and easy setup (QR codes).To keep things simple ``TeleRamBash`` allows a single Telegram user
after a successful `TOTP`_ Authentication to execute a pre-defined
(bash) script by sending a command to the Bot in a Telegram chat, like this:.. code:: bash
/do some-script optional-param1
|ASCIINEMA|
Usage
-----
To install from pypi:.. code:: bash
pip install telerembash
First create a configuration for your Telegram Bot instance by specifying
the bot's ``API_TOKEN`` and the Telegram username of the whitelisted user:.. code:: bash
telerem init --api-token API_TOKEN --username USERNAME
this should create a ``telerem.config.yaml`` in the current directory
and output a QR Code to be scanned in your TOTP Authenticator App (i.e.
`Google Authenticator`_, `andOTP`_, etc).To see all available options, try:
.. code:: bash
telerem --help
you can edit ``telerem.config.yaml`` by hand or call ``telerem init`` multiple times,
to tweak the config.
Note the ``scripts_root`` in the config - this is the location (absolute or relative to
the current working directory) of the directory containing the script your bot will
execute.To start the bot:
.. code:: bash
telerem start --config config.yaml
Once your bot is running, you should add it in a chat.
It will ignore all your messages until it sees a.. code:: bash
/auth
command, where ``
`` is the authentication code generated by
your TOTP Authenticator.And once you are successfully authenticated, you can execute a script
by sending a Telegram message like this:.. code:: bash
/do some-script-name param1 param2
The bot will reply to a ``/do`` command by looking under ``scripts_root`` for
a file with the name ``some-script-name`` or ``some-script-name.sh``
and executing it (with the provided optional parameters).Run as a Service (WIP)
----------------------
You can also create a systemd service or a daemon script for
running your bot in the background like this:.. code:: bash
telerem install --systemd | sudo bash # for systemd
telerem install --initd | sudo bash # otherwisethis will:
1. create a system user ``teleremd``
2. setup a python venv under ``/home/teleremd/``
3. create a service (either ``systemd`` or ``init.d``):* systemd service unit ``/etc/systemd/system/teleremd.service``
* deamon script ``/etc/init.d/teleremd``4. populate the daemon configuration under ``/etc/teleremd.config.yaml``
and finally:
.. code:: bash
sudo systemctl daemon-reload # for systemd
sudo systemctl start teleremdNEWS
----
- **21.Jan.2021** - available on pypi
- **16.Jan.2021** - install as a systemd service (init.d still WIP)
- **15.Jan.2021** - README: Usage instructions
- **09.Jan.2021** - initial commitLICENSE
-------MIT. See `License File `_.
Resources
---------- `Telegram`_ - Telegram BOT API
- `PyOTP`_ - The Python One-Time Password Library
- `python-qrcode`_ - QR code generator for text terminals.. _`python-qrcode`: https://github.com/lincolnloop/python-qrcode
.. _`PyOTP`: https://github.com/pyauth/pyotp
.. _`TOTP`: https://en.wikipedia.org/wiki/Time-based_One-Time_Password
.. _`Telegram`: https://core.telegram.org/api
.. _`Bot`: https://core.telegram.org/bots
.. _`Google Authenticator`: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2
.. _`andOTP`: https://play.google.com/store/apps/details?id=org.shadowice.flocke.andotp.. |Build Status| image:: https://travis-ci.com/kpe/telerembash.svg?branch=master
:target: https://travis-ci.com/kpe/telerembash
.. |Coverage Status| image:: https://coveralls.io/repos/kpe/telerembash/badge.svg?branch=master
:target: https://coveralls.io/r/kpe/telerembash?branch=master
.. |Version Status| image:: https://badge.fury.io/py/telerembash.svg
:target: https://badge.fury.io/py/telerembash
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/telerembash.svg
.. |Downloads| image:: https://img.shields.io/pypi/dm/telerembash.svg
.. |Twitter| image:: https://img.shields.io/twitter/follow/siddhadev?logo=twitter&label=&style=
:target: https://twitter.com/intent/user?screen_name=siddhadev
.. |ASCIINEMA| image:: telerembash.svg?raw=true&sanitize=true
:target: https://asciinema.org/a/7p3UUcdffGQDyfBhBf5cm8tBw?t=5&speed=3