dgongut / wakebot

Bot de telegram que te permitirá despertar a tus dispositivos en red local mediante Wake on lan
GNU General Public License v3.0
4 stars 0 forks source link

wakebot

Docker Pulls Docker Stars Docker Image Size Github stars Github forks Github last-commit Github last-commit alt text

Despierta mediante Wake on LAN dispositivos en tu red

¿Lo buscas en ?

🖼️ Si deseas establecerle el icono al bot de telegram, te dejo aquí el icono en alta resolución. Solo tienes que descargarlo y mandárselo al @BotFather en la opción de BotPic.

Configuración en config.py

CLAVE OBLIGATORIO VALOR
TELEGRAM_TOKEN Token del bot
TELEGRAM_ADMIN ChatId del administrador (se puede obtener hablándole al bot Rose escribiendo /id). Admite múltiples administradores separados por comas. Por ejemplo 12345,54431,55944
TELEGRAM_GROUP ChatId del grupo. Si este bot va a formar parte de un grupo, es necesario especificar el chatId de dicho grupo. El bot debe ser administrador del grupo
TELEGRAM_THREAD Thread del tema dentro de un supergrupo; valor numérico (2,3,4..). Por defecto 1. Se utiliza en conjunción con la variable TELEGRAM_GROUP
TZ Timezone (Por ejemplo Europe/Madrid)
LANGUAGE Idioma, puede ser ES / EN. Por defecto es ES (Spanish)

Anotaciones

Será necesario mapear un volumen para almacenar lo que el bot escribe en /app/data

Ejemplo de Docker-Compose para su ejecución normal

version: '3.3'
services:
    wakebot:
        environment:
            - TELEGRAM_TOKEN=
            - TELEGRAM_ADMIN=
            - TZ=Europe/Madrid
            #- TELEGRAM_GROUP=
            #- TELEGRAM_THREAD=1
            #- LANGUAGE=ES
        volumes:
            - /ruta/para/guardar/las/programaciones:/app/data # CAMBIAR LA PARTE IZQUIERDA
        image: dgongut/wakebot:latest
        container_name: wakebot
        restart: always
        network_mode: host
        tty: true

Solo para desarrolladores - Ejecución con código local

Para su ejecución en local y probar nuevos cambios de código, se necesitan crear 2 ficheros llamados respectivamente Dockerfile_local y docker-compose.yaml

La estructura de carpetas debe quedar:

wakebot/
├── Dockerfile_local
├── docker-compose.yaml
└── src
    ├── LICENSE
    ├── README.md
    ├── config.py
    ├── wakebot.py
    └── locale
        ├── en.json
        └── es.json

Dockerfile_local

FROM alpine:3.18.6

ENV TELEGRAM_TOKEN abc
ENV TELEGRAM_ADMIN abc
ENV TELEGRAM_GROUP abc
ENV TELEGRAM_THREAD 1
ENV LANGUAGE ES
ENV TZ UTC

RUN apk add --no-cache python3 py3-pip tzdata
RUN pip3 install pyTelegramBotAPI==4.17.0
RUN pip3 install wakeonlan==3.1.0

WORKDIR /app
COPY src/ .

ENTRYPOINT ["python3", "wakebot.py"]

docker-compose.yaml

version: '3.3'
services:
    TEST-wakebot:
        container_name: TEST-wakebot
        environment:
            - TELEGRAM_TOKEN=
            - TELEGRAM_ADMIN=
            - TZ=Europe/Madrid
            #- TELEGRAM_GROUP=
            #- TELEGRAM_THREAD=1
            #- LANGUAGE=ES
        volumes:
            - /ruta/para/guardar/las/programaciones:/app/data # CAMBIAR LA PARTE IZQUIERDA
        build:
          context: .
          dockerfile: ./Dockerfile_local
        tty: true

Es necesario establecer un TELEGRAM_TOKEN y un TELEGRAM_ADMIN correctos y diferentes al de la ejecución normal.

Para levantarlo habría que ejecutar en esa ruta: docker compose up -d

Para detenerlo y probar nuevos cambios habría que ejecutar en esa ruta: docker compose down --rmi