dgongut/docker-controller-bot

By dgongut

Updated 15 days ago

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

Image
Web servers
Operating systems
Monitoring & observability
6

1M+

dgongut/docker-controller-bot repository overview

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.

  • ✅ Listar contenedores
  • ✅ Arrancar, parar y eliminar contenedores
  • ✅ Obtener los logs tanto de manera directa como a través de fichero
  • ✅ Extraer el docker-compose de tus contenedores
  • ✅ Notificaciones cuando un contenedor se cae o se inicia
  • ✅ Notificaciones cuando un contenedor tiene una actualización pendiente
  • ✅ Actualizaciones de los contenedores
  • ✅ Cambiar el tag (rollback o actualización)
  • ✅ Limpia el sistema, eliminado contenedores, imagenes y otros objetos no utilizados.
  • ✅ Soporte de idiomas (Spanish, English, Dutch, German, Russian, Galician, Italian, Catalonian)

¿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

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
GROUPED_UPDATESSi se desea que agrupe los mensajes de las actualizaciones en uno solo. 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 / CAT. Por defecto ES (Spanish)
EXTENDED_MESSAGESSi se desea que muestre más mensajes de información. 0 no - 1 sí. Por defecto 0
Anotaciones

Warning

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

Note

Si se requiere tener la sesión iniciada en algún registro como DockerHub, GitHub Registry o alguno privado (docker login) es posible trasladar ese login al contenedor mapeando el ~/.docker/config.json a /root/.docker/config.json
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
            #- GROUPED_UPDATES=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
            #- ~/.docker/config.json:/root/.docker/config.json # Solo si se requiere iniciar sesión en algún registro
        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
  • Añadiendo la etiqueta DCB-Ignore-Check-Updates a un contenedor, no se comprobarán actualizaciones para él.
  • Añadiendo la etiqueta DCB-Auto-Update a un contenedor, se actualizará automáticamente sin preguntar.
Agradecimientos

Tag summary

Content type

Image

Digest

sha256:2e76528b6

Size

31.7 MB

Last updated

15 days ago

docker pull dgongut/docker-controller-bot