{"id":15306712,"url":"https://github.com/t0mer/wolbot","last_synced_at":"2025-04-15T00:54:07.678Z","repository":{"id":214083967,"uuid":"735647605","full_name":"t0mer/wolbot","owner":"t0mer","description":"Wolbot is a python powerd telegram bot for Wak On LAN tasks","archived":false,"fork":false,"pushed_at":"2025-01-26T22:33:24.000Z","size":634,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T00:54:01.486Z","etag":null,"topics":["bot","python","telegram-bot","wake-on-lan","wol"],"latest_commit_sha":null,"homepage":"https://www.medium.com/@tomer.klein","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/t0mer.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":"2023-12-25T17:11:17.000Z","updated_at":"2025-01-26T22:33:27.000Z","dependencies_parsed_at":"2023-12-30T11:27:21.497Z","dependency_job_id":"17b63c55-2a8d-4cf6-9195-aef692fcc891","html_url":"https://github.com/t0mer/wolbot","commit_stats":null,"previous_names":["t0mer/wolbot"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t0mer%2Fwolbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t0mer%2Fwolbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t0mer%2Fwolbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t0mer%2Fwolbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/t0mer","download_url":"https://codeload.github.com/t0mer/wolbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248986279,"owners_count":21194025,"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":["bot","python","telegram-bot","wake-on-lan","wol"],"created_at":"2024-10-01T08:07:01.685Z","updated_at":"2025-04-15T00:54:07.660Z","avatar_url":"https://github.com/t0mer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wolbot\nWolbot is a python powerd telegram bot for Wak On LAN tasks.\n\n\n## Features\n- List devices (All/Online/Offline) with status.\n- Send magic packet to wake up the devices.\n\n\n## Components and Frameworks used in Certi\n* [Loguru](https://pypi.org/project/loguru/) a library which aims to bring enjoyable logging in Python.\n* [PyYAML](https://pypi.org/project/PyYAML/) a data serialization format designed for human readability and interaction with scripting languages.\n* [pyTelegramBotAPI](https://pypi.org/project/pyTelegramBotAPI/) A simple, but extensible Python implementation for the Telegram Bot API.\n* [wakeonlan](https://pypi.org/project/wakeonlan/) A small python module for wake on lan.\n\n\n## Installing Wolbot\nWolbot can be installed and run as a system service or a Docker container.\n\n1. Create new telegram bot and get the token\n    Open [Telegram messenger](https://web.telegram.org/), sign in to your account or create a new one.\n\n    Enter @Botfather in the search tab and choose this bot (Official Telegram bots have a blue checkmark beside their name.)\n\n    [![@Botfather](https://github.com/t0mer/voicy/blob/main/screenshots/scr1-min.png?raw=true \"@Botfather\")](https://github.com/t0mer/voicy/blob/main/screenshots/scr1-min.png?raw=true \"@Botfather\")\n\n    Click “Start” to activate BotFather bot.\n\n    [![@start](https://github.com/t0mer/voicy/blob/main/screenshots/scr2-min.png?raw=true \"@start\")](https://github.com/t0mer/voicy/blob/main/screenshots/scr1-min.png?raw=true \"@start\")\n\n    In response, you receive a list of commands to manage bots.\n    Choose or type the /newbot command and send it.\n\n    [![@newbot](https://github.com/t0mer/voicy/blob/main/screenshots/scr3-min.png?raw=true \"@newbot\")](https://github.com/t0mer/voicy/blob/main/screenshots/scr3-min.png?raw=true \"@newbot\")\n\n    Choose a name for your bot — your subscribers will see it in the conversation. And choose a username for your bot — the bot can be found by its username in searches. The username must be unique and end with the word “bot.”\n\n    [![@username](https://github.com/t0mer/voicy/blob/main/screenshots/scr4-min.png?raw=true \"@username\")](https://github.com/t0mer/voicy/blob/main/screenshots/scr4-min.png?raw=true \"@username\")\n\n    After you choose a suitable name for your bot — the bot is created. You will receive a message with a link to your bot t.me/\u003cbot_username\u003e, recommendations to set up a profile picture, description, and a list of commands to manage your new bot.\n\n    [![@bot_username](https://github.com/t0mer/voicy/blob/main/screenshots/scr5-min.png?raw=true \"@bot_username\")](https://github.com/t0mer/voicy/blob/main/screenshots/scr5-min.png?raw=true \"@bot_username\")\n\n2. Update the configuration file with the list of network objects. the file should be place under **config** folder:\n   ```yaml\n   computers:\n    - name: \n        ip: \n        mac:\n   ```\n\n3. Set the following environment variables:\n    - BOT_TOKEN=#Telegram bot Token generated in the previous step.\n    - ALLOWED_IDS= #List of telegram id's allowed to communicate with the bot, comma-separated values.\n\n\n4. If you want to run Wolbot as a ***docker container***, copy the following code into your docker-compose.yaml:\n    ```yaml\n    version: \"3.6\"\n    services:\n    wolbot:\n        image: techblog/wolbot\n        container_name: wolbot\n        restart: always\n        environment:\n        - BOT_TOKEN= #Telegram bot Token.\n        - ALLOWED_IDS= #List of telegram id's allowed to communicate with the bot, comma-separated values.\n    ```\n    **Make sure to set all the environment variables before running the *\"docker-compose up -d\"* command.\n\n\n5. If you want to run Wolbot as a systemd service, clone the repository using the following command:\n    ```bash\n    git clone https://github.com/t0mer/wolbot\n    ```\n    enter the *wolbot* folder and install the dipendencies:\n    ```bash\n    pip3 install -r requirements.txt\n    ```\n\n    Next, create a file names **\"wolbot.service\"** under **/etc/systemd/system\"** and paste the following content:\n\n    ```bash\n    [Unit]\n    Description=Wake On Lan bot \n    After=network-online.target\n    Wants=network-online.target systemd-networkd-wait-online.service\n    StartLimitIntervalSec=5\n    StartLimitBurst=5\n\n    [Service]\n    EnvironmentFile=/etc/environment\n    KillSignal=SIGINT\n    WorkingDirectory=/opt/dev/wolbot/app/\n    Type=simple\n    User=root\n    ExecStart=/usr/bin/python3 /opt/dev/wolbot/app/app.py\n    Restart=always\n\n    [Install]\n    WantedBy=multi-user.target\n    ```\n    ***Make sure to adjust the path for \"WorkingDirectory\" and \"ExecStart\" accordingly to the path of the Wolbot location***\n\n    Next, run the following command to enable and start the service:\n    ```bash\n    systemctl enable wolbot.service\n    systemctl start wolbot.service\n    ```\n    To check the status of the service, run the following command:\n    ```bash\n    systemctl status wolbot.servies\n    ```\n\n## Using Wolbot\nTo start using **Wolbot** send one of the following commands: **/start** ot **/help**.\nA shortcut menu will be opened, with four options:\n\n* Show all computers.\n* Show online computers.\n* Show offline computers.\n* Cancel.\n\n![Bot menu](screenshots/start.png)\n\nClick on one of the first three options, and a list of computers will be displayed:\n\n![Computers list](screenshots/computers.png)\n\nClick on one of the computers to wake it up:\n\n![Wake up](screenshots/wake.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft0mer%2Fwolbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ft0mer%2Fwolbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft0mer%2Fwolbot/lists"}