MCPcopy Index your code
hub / github.com/arshamalh/dockeroller

github.com/arshamalh/dockeroller @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
254 symbols 753 edges 45 files 120 documented · 47%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Dockeroller 🐳

Dockeroller (docker controller) is an open-source project giving you the power to control your docker daemon through Telegram, it was made for fun and personal use, but it appears to have many real-world use cases and it is a part of ChatOps world!

[!IMPORTANT] Dockeroller is made to run self-hosted, so WE WON'T ACCESS or STORE ANY OF YOUR DATA in any terms.

[!CAUTION] Dockeroller is in Alpha phase and not yet production-ready

How to use

First make sure you installed go version 1.19 or above then run:

go install github.com/arshamalh/dockeroller@main

Then you should make a bot (it's name and username doesn't matter) with bot father, copy its token, then you can run the CLI using:

dockeroller start --token "<YOUR-TOKEN>"

And now your docker daemon is accessible thorough your Telegram bot.

Security

There is no security concerns as long as you keep your telegram account safe, and Whitelist known ids:

dockeroller start -w 22,33,44

Dockeroller will return your ChatID when you message it in an UnAuthorized state, then you can whitelist it.

We will also add a password mechanism soon.

Features

  • [x] Containers
    • [x] List
    • [x] Start
    • [x] Stop
    • [x] Live logs
    • [x] Live stats
    • [x] Remove
    • [x] Rename
  • [ ] Images
    • [x] List
    • [x] Remove
    • [x] Tagging

Note for developers and contributors

We cache containers and images list, and update this cache after "next, back, list, final rename, final remove" but we don't update this cache after "remove form buttons clicking", because we don't want you to face another container after clicking to "Force: false" button.

Some Screen Shots

dockeroller containers list started one dockeroller containers list stopped one dockeroller start command

Extension points exported contracts — how you extend this code

Session (Interface)
(no doc) [3 implementers]
session/session.go
Docker (Interface)
(no doc) [1 implementers]
docker/docker.go

Core symbols most depended-on inside this repo

Get
called by 32
session/session.go
Key
called by 24
telegram/btns/btns.go
NewCallbackResponse
called by 15
telegram/msgs/callback_responses.go
String
called by 13
telegram/btns/btns.go
GetContainer
called by 13
docker/docker.go
FmtContainer
called by 12
telegram/msgs/format.go
New
called by 11
session/session.go
ContainersList
called by 10
docker/docker.go

Shape

Method 186
Function 43
Struct 18
TypeAlias 5
Interface 2

Languages

Go100%

Modules by API surface

telegram/handlers/mock_telebot_context_test.go78 symbols
telegram/handlers/mock_docker_test.go26 symbols
session/userdata.go22 symbols
docker/docker.go16 symbols
docker/containers.go10 symbols
telegram/handlers/containers.go7 symbols
entities/queue.go7 symbols
telegram/msgs/format.go6 symbols
session/session.go6 symbols
entities/stats.go5 symbols
telegram/keyboards/containers.go4 symbols
telegram/handlers/images.go4 symbols

For agents

$ claude mcp add dockeroller \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact