Anthony Fitzpatrick51 downloadsA desktop Docker environment dashboard with secure local, Context, SSH, and mutual TLS connections.
Docker Connector brings multi-host Docker monitoring and deliberately opt-in container management into Obsidian. Connect to local or remote Docker Engines, inspect Docker Compose applications and Docker resources, check image availability, and use explicit lifecycle actions without leaving your vault.
Docker Connector supports desktop Obsidian on macOS, Windows, and Linux with Local Docker Socket, Docker Context, SSH, and mutual TLS connections. Docker Connector is read-only by default; each Online connection's Connections-card switch controls its own session-only management authorization. SSH usernames are shown only while adding or editing a host, not in normal dashboard cards.
Docker access is highly privileged. A user or process that can control Docker can often gain extensive control of that Docker host. Connect only to Docker hosts, Docker Contexts, and credentials you trust.
Overview. Every configured Docker environment at a glance: host, container, image, volume and network counts, host health, and anything needing attention.

Four ways to connect. A local Docker socket, an existing Docker Context, a remote host over SSH, or the Docker Engine API over mutual TLS.

Connections. Each saved host shows its status, endpoint, inventory counts and Engine details. Container management is the per-connection switch on each card, off by default.

Applications. Containers grouped into their Docker Compose projects, with services, health and update status, and an inspector for each one.

Containers. Per-container state, health and image-update status. Lifecycle actions appear only once management is enabled for that connection, and each one confirms before it is sent.

The User Guide is illustrated throughout, from first launch and each connection method to the dashboard views, container management, and settings.
| Connection method | Best for | Authentication | Direct Docker API exposure |
|---|---|---|---|
| Local Docker Socket | Docker running on the same computer | Local Docker permissions | No |
| Docker Context | Existing Docker CLI configurations | Context-defined | Depends on Context |
| Remote Docker via SSH | Most remote Docker hosts | Password or private key | No |
| Remote Docker API (Mutual TLS) | Direct secured Docker Engine API access | CA + client certificate + private key | Yes |
Local Docker Socket discovers and validates local Unix sockets or Windows named pipes. Docker Context uses an existing Docker CLI Context without changing your active Context; local Context endpoints route through the local transport, while supported SSH Contexts use Docker CLI’s secure Context transport. Remote Docker via SSH carries Docker traffic through SSH, so the Docker API does not need to be exposed directly. Remote Docker API (Mutual TLS) requires a trusted CA, client certificate, client private key, and mandatory server identity verification.
Plain unauthenticated Docker TCP is not supported.
The normal Docker Engine client is restricted to approved read-only GET requests. Container management is disabled by default, resets after restarting or reloading Obsidian, and is enabled only from the Connections-card switch for an individual Online connection. It turns off immediately if that connection is lost and never restores automatically after reconnecting. Even then, Docker Connector exposes only explicit typed actions—Start, Shut down, Stop, Restart, and eligible Update—not a general-purpose Docker command shell or arbitrary API interface.
Docker Connector’s Applications view groups only Docker Compose-labelled containers. It uses Docker’s Compose project and service labels, rather than guessing from container names. Applications are a read-only project-level overview: Docker Connector does not run docker compose up or docker compose down, edit Compose files, or update an entire Compose application.
The Containers, Images, Volumes, and Networks views provide searchable, filterable inventories and read-only detail inspectors. Docker Connector does not delete images, volumes, or networks.
Image update checks are advisory. For eligible standalone containers, Docker Connector compares the current image with the image resolved for the configured tagged reference. Automatic checks occur on a 24-hour stale interval while Container management is enabled; they do not automatically update, stop, restart, or recreate containers.
When a newer image is confirmed and a standalone container is eligible, Update opens a preview before it starts a backup-first transaction. Docker Connector attempts to preserve supported configuration, creates and verifies a replacement, and attempts rollback if the transaction fails. Compose-managed containers are intentionally blocked from this standalone update workflow. Read the Safe Container Updates note before using it.
docker context use, create, update, remove, import, or export commands.For details, read the Security Review.
Obsidian's plugin check reports the platform capabilities a plugin reaches for. Docker Connector uses four, and this is what each one is for:
fs). Reads the SSH private key, known_hosts, and the TLS CA, certificate, and key files you select, plus the local Docker socket paths and Docker CLI config it probes during discovery. It writes only when you ask it to generate an SSH key pair. It never reads or writes vault files.child_process). Runs the local docker CLI for Docker Context discovery and docker system dial-stdio, and runs one fixed capability probe over SSH. Arguments that come from a profile are POSIX-quoted, and profile fields are rejected up front if they contain quotes, backslashes, shell expansion characters, or control characters. There is no free-form command entry anywhere in the interface.new Function in the release bundle is inside the vendored ssh2 dependency, which uses it once as a fixed new Function("return 2n ** 32n") feature probe for BigInt support. No plugin, vault, or daemon data reaches it.Releases are built by a GitHub Actions workflow that publishes build provenance attestations for main.js, manifest.json, and styles.css, so you can verify a downloaded release was built from this repository:
gh attestation verify main.js --repo anthonyfitzpatrick/obsidian-docker-connector
| Requirement | Details |
|---|---|
| Obsidian | Obsidian 1.13.0 or later on desktop. |
| Local Docker Socket | A local Docker Engine/Docker Desktop and permission to access its Unix socket or Windows named pipe. |
| Docker Context | Local Docker CLI and an existing Context. |
| Remote Docker via SSH | SSH access and Docker access for the remote account; no interactive sudo. |
| Remote Docker API (Mutual TLS) | A correctly secured Docker HTTPS endpoint plus CA, client certificate, and client key. |
When Docker Connector is available in Obsidian Community Plugins:
For manual release installation, place these files in your vault’s .obsidian/plugins/docker-connector/ directory, then enable the plugin in Obsidian:
.obsidian/plugins/docker-connector/
├── main.js
├── manifest.json
└── styles.css
Do not install source files, test fixtures, or node_modules for normal use.
For complete setup walkthroughs, connection fields, diagnostics, update behavior, recovery guidance, and troubleshooting, see the Docker Connector User Guide.
For eligible standalone containers, Docker Connector can compare the running image ID with the image currently resolved for the configured tagged image. The 24-hour stale interval and Check now are advisory checks. A check can ask Docker to pull/resolve image metadata, but it never stops, starts, restarts, or recreates a container.
An available image is not automatically eligible for a standalone update. Docker Compose-managed containers remain under Compose’s control, and unsupported configurations are blocked before any mutation. When Update is available, it always begins with a preview and an explicit user decision. Read the User Guide’s update and recovery chapters before using it.
npm install
npm test
npm run lint
npm run build
The automated test suite covers connection routing, lifecycle behavior, update transactions, UI boundaries, and security constraints. See CONTRIBUTING.md, CHANGELOG.md, Testing, Release Checklist, and Community Plugin Compliance.
Contributions should preserve the plugin’s read-only-by-default posture, avoid insecure Docker TCP and arbitrary mutation routes, and include focused tests for behavior changes. Please read the project documentation and contribution guidance before proposing a change.
MIT. See LICENSE.