Home

Awesome

docker-controller-bot

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

Lleva el control de tus contenedores docker desde un único lugar.

¿Lo buscas en ?

NUEVO Canal de novedades 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

CLAVEOBLIGATORIOVALOR
TELEGRAM_TOKENToken del bot
TELEGRAM_ADMINChatId 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_GROUPChatId del grupo. Si este bot va a formar parte de un grupo, es necesario especificar el chatId de dicho grupo. Es necesario que el bot sea administrador del grupo
TELEGRAM_THREADThread 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
TELEGRAM_NOTIFICATION_CHANNELCanal donde se publicarán exclusivamente los cambios de estado de los contenedores
CONTAINER_NAMENombre del contenedor, lo que se le ponga en container_name en el docker-compose ha de ir aquí también
TZTimezone (Por ejemplo Europe/Madrid)
CHECK_UPDATESSi se desea que compruebe actualizaciones. 0 no - 1 sí. Por defecto 1
CHECK_UPDATE_EVERY_HOURSTiempo de espera en horas entre chequeo de actualizaciones. Por defecto 4
CHECK_UPDATE_STOPPED_CONTAINERSSi se desea que compruebe las actualizaciones de los contenedores detenidos. 0 no - 1 sí. Por defecto 1
BUTTON_COLUMNSNumero de columnas de botones en las listas de contenedores. Por defecto 2
LANGUAGEIdioma, puede ser ES / EN / NL / DE / RU / GL / IT. Por defecto ES (Spanish)
EXTENDED_MESSAGESSi se desea que muestre más mensajes de información. 0 no - 1 sí. Por defecto 0

Anotaciones

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

Ejemplo de Docker-Compose para su ejecución normal

version: '3.3'
services:
    docker-controller-bot:
        environment:
            - TELEGRAM_TOKEN=
            - TELEGRAM_ADMIN=
            - CONTAINER_NAME=docker-controller-bot
            - TZ=Europe/Madrid
            #- TELEGRAM_GROUP=
            #- TELEGRAM_THREAD=1
            #- TELEGRAM_NOTIFICATION_CHANNEL=
            #- CHECK_UPDATES=1
            #- CHECK_UPDATE_EVERY_HOURS=4
            #- CHECK_UPDATE_STOPPED_CONTAINERS=1
            #- BUTTON_COLUMNS=2
            #- LANGUAGE=ES
            #- EXTENDED_MESSAGES=0
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock # NO CAMBIAR
            - /ruta/para/guardar/las/programaciones:/app/schedule # CAMBIAR LA PARTE IZQUIERDA
        image: dgongut/docker-controller-bot:latest
        container_name: docker-controller-bot
        restart: always
        network_mode: host
        tty: true

Funciones Extra mediante Labels/Etiquetas en otros contenedores

Agradecimientos

Traducción al neerlandés: ManCaveMedia Traducción al alemán: shedowe19 Traducción al ruso: leyalton Traducción al gallego: monfero Traducción al italiano: [zichichi] (https://github.com/zichichi)


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

Para su ejecución en local y probar nuevos cambios de código, se necesita renombrar el fichero .env-example a .env con los valores necesarios para su ejecución. Es necesario establecer un TELEGRAM_TOKEN y un TELEGRAM_ADMIN correctos y diferentes al de la ejecución normal.

La estructura de carpetas debe quedar:

docker-controller-bot/
    ├── .env
    ├── .gitignore
    ├── LICENSE
    ├── requirements.txt
    ├── README.md
    ├── config.py
    ├── docker-controller-bot.py
    ├── Dockerfile_local
    ├── docker-compose.yaml
    └── locale
        ├── en.json
        ├── es.json
        ├── de.json
        ├── ru.json
        ├── gl.json
        ├── nl.json
        └── it.json

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