Repository files navigation

DD-UI (Designated Driver UI) DD-UI (Designated Driver UI)

DD-UI is a declarative, security-first Docker orchestration engine. It compares runtime state (running containers) to declared state (your IaC repo), shows drift, and puts encryption (SOPS/AGE) and DevOps ergonomics first. Please Docker responsibly.

GitHubGitLabLast CommitOpen IssuesContributors

buildlicensereleaseupdateddonatesponsor

Dockerpulls

What is DD-UI?

DD-UI is a Docker management engine that puts DevOps and encryption first — in essence, a Docker-focused CI/CD pipeline with a UI.

  • Infrastructure as Code. DD-UI manages hosts, groups, and Docker "stacks" as standardized, CI/CD-compatible IaC files. Deployment state is decoupled from the app — edit it in the editor of your choice, and DD-UI redeploys containers when the IaC changes.
  • Encryption, first-class. Encrypt/decrypt any IaC file — compose and .env included — with SOPS/AGE, right from the UI. Values are censored by default, so you can stream or push configs to a repo safely, and DD-UI can still deploy them encrypted.
  • A rich experience. Many of the features you'd expect from a Docker GUI, plus industry tools like xterm 🔥 and monaco (the editor from VS Code 🎉).
  • Free and open source under the AGPL-3.0-or-later — free forever for personal, homelab, non-profit, and commercial use alike (a commercial license is available if you need proprietary terms).

DD-UI — every stack across every host in one view

📸 See DD-UI in action → — SOPS-encrypted stacks decrypted on the fly, live logs, in-container terminal, drift detection, cleanup, and more.

Status

⚠️Pre-release — ~85–95% functional. Core works; some advanced features are partial (git-sync is currently unstable). Before you rely on it, skim the open issues and Known Issues for any dealbreakers. See Roadmap & Status for scope & cadence. CHEERS!


What DD-UI does today

  • Container control: start / stop / pause / resume / kill containers.
  • Live logs: dedicated logging view with advanced filters.
  • In-container terminal: an xterm-powered shell for a rich experience.
  • Editor: edit compose, .env, and scripts with monaco (the editor from VS Code) — no compromise vs other Docker tools.
  • Inventory: list hosts.
  • Stacks / containers: every running container across all your systems in one view.
  • Sync: one click triggers an IaC scan (local repo) plus a runtime scan per host (Docker).
  • Compare: runtime vs desired (images, services), with a per-stack drift indicator.
  • Usability: per-host search, fixed table layout, ports rendered one mapping per line.
  • SOPS awareness: detect encrypted files; never decrypt by default (explicit, audited reveal flow).
  • Auth: OIDC is mandatory — there are no local accounts. Authenticate through your IdP (Zitadel/Keycloak/Authentik/Okta/Auth0) or you're not getting in. Session probe, login, logout (RP-logout optional).
  • API: /api/... (JSON), with the static SPA served by the backend.
  • SOPS CLI integration: the server runs sops for encrypt/decrypt; no plaintext secrets are stored.
  • Health pills: health-aware state (running / healthy / exited …).
  • Stack Files page: view/edit compose/env/scripts against runtime context, with gated SOPS decryption.
  • Docker Cleanup page: prune or clear the build cache from the UI.

📚 Documentation

Full documentation → — deploy, configure, and run DD-UI.


Contributing

  • File issues with steps, logs, and versions.
  • Small, focused PRs are best (typos, error handling, UI polish).
  • Sample IaC directories welcome!
  • Security-related PRs and hardening suggestions are especially appreciated (SOPS/AGE, cookie settings, RBAC, etc.).

Support / Sponsorship

If you’d like to help keep the project moving:

ko-fi


License

DD-UI is distributed under the AGPL-3.0-or-later license — free and open for everyone, including commercial use, under its copyleft terms. See LICENSING.md for commercial/proprietary licensing options.

This section is a human‑readable summary and not a substitute for the license. Nothing here grants rights by itself.


Disclaimer

The Software provided hereunder (“Software”) is licensed “as‑is,” without warranties of any kind—express, implied, or telepathically transmitted. The Softwarer (yes, that’s totally a word now) makes no promises about functionality, performance, compatibility, security, or availability—and absolutely no warranty of any sort. The developer shall not be held responsible, even if the software is clearly the reason your dog decided to orchestrate its own sidecar, your mom scored five tickets to Hawaii but you missed out because you were knee‑deep in a docker compose rabbit hole, or your stack drifted so hard it achieved sentience and renamed itself.

If using this orchestration UI leads you down a rabbit hole of obsessive network optimizations, breaks your fragile grasp of version pinning, or causes an uprising among your offline‑first containers—sorry, still not liable. Also not liable if your repo syncs so fast it rips a hole in the space‑time continuum or if your .env files multiply like Tribbles. The developer likewise claims no credit for anything that actually goes right either. Any positive experiences are owed entirely to the unstoppable force that is the Open Source community.

It’s never been a better time to be a PC user—or a homelabber. Just don’t blame me when YAML inevitably eats your weekend.

About

Sometimes you need someone else to take the wheel... DD-UI is a declarative, security-first Docker orchestration engine. Please Docker responsibly.

Resources

Security policy

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

DD-UI (Designated Driver UI) DD-UI (Designated Driver UI)

DD-UI is a declarative, security-first Docker orchestration engine. It compares runtime state (running containers) to declared state (your IaC repo), shows drift, and puts encryption (SOPS/AGE) and DevOps ergonomics first. Please Docker responsibly.

GitHubGitLabLast CommitOpen IssuesContributors

buildlicensereleaseupdateddonatesponsor

Dockerpulls

What is DD-UI?

DD-UI is a Docker management engine that puts DevOps and encryption first — in essence, a Docker-focused CI/CD pipeline with a UI.

  • Infrastructure as Code. DD-UI manages hosts, groups, and Docker "stacks" as standardized, CI/CD-compatible IaC files. Deployment state is decoupled from the app — edit it in the editor of your choice, and DD-UI redeploys containers when the IaC changes.
  • Encryption, first-class. Encrypt/decrypt any IaC file — compose and .env included — with SOPS/AGE, right from the UI. Values are censored by default, so you can stream or push configs to a repo safely, and DD-UI can still deploy them encrypted.
  • A rich experience. Many of the features you'd expect from a Docker GUI, plus industry tools like xterm 🔥 and monaco (the editor from VS Code 🎉).
  • Free and open source under the AGPL-3.0-or-later — free forever for personal, homelab, non-profit, and commercial use alike (a commercial license is available if you need proprietary terms).

DD-UI — every stack across every host in one view

📸 See DD-UI in action → — SOPS-encrypted stacks decrypted on the fly, live logs, in-container terminal, drift detection, cleanup, and more.

Status

⚠️Pre-release — ~85–95% functional. Core works; some advanced features are partial (git-sync is currently unstable). Before you rely on it, skim the open issues and Known Issues for any dealbreakers. See Roadmap & Status for scope & cadence. CHEERS!


What DD-UI does today

  • Container control: start / stop / pause / resume / kill containers.
  • Live logs: dedicated logging view with advanced filters.
  • In-container terminal: an xterm-powered shell for a rich experience.
  • Editor: edit compose, .env, and scripts with monaco (the editor from VS Code) — no compromise vs other Docker tools.
  • Inventory: list hosts.
  • Stacks / containers: every running container across all your systems in one view.
  • Sync: one click triggers an IaC scan (local repo) plus a runtime scan per host (Docker).
  • Compare: runtime vs desired (images, services), with a per-stack drift indicator.
  • Usability: per-host search, fixed table layout, ports rendered one mapping per line.
  • SOPS awareness: detect encrypted files; never decrypt by default (explicit, audited reveal flow).
  • Auth: OIDC is mandatory — there are no local accounts. Authenticate through your IdP (Zitadel/Keycloak/Authentik/Okta/Auth0) or you're not getting in. Session probe, login, logout (RP-logout optional).
  • API: /api/... (JSON), with the static SPA served by the backend.
  • SOPS CLI integration: the server runs sops for encrypt/decrypt; no plaintext secrets are stored.
  • Health pills: health-aware state (running / healthy / exited …).
  • Stack Files page: view/edit compose/env/scripts against runtime context, with gated SOPS decryption.
  • Docker Cleanup page: prune or clear the build cache from the UI.

📚 Documentation

Full documentation → — deploy, configure, and run DD-UI.


Contributing

  • File issues with steps, logs, and versions.
  • Small, focused PRs are best (typos, error handling, UI polish).
  • Sample IaC directories welcome!
  • Security-related PRs and hardening suggestions are especially appreciated (SOPS/AGE, cookie settings, RBAC, etc.).

Support / Sponsorship

If you’d like to help keep the project moving:

ko-fi


License

DD-UI is distributed under the AGPL-3.0-or-later license — free and open for everyone, including commercial use, under its copyleft terms. See LICENSING.md for commercial/proprietary licensing options.

This section is a human‑readable summary and not a substitute for the license. Nothing here grants rights by itself.


Disclaimer

The Software provided hereunder (“Software”) is licensed “as‑is,” without warranties of any kind—express, implied, or telepathically transmitted. The Softwarer (yes, that’s totally a word now) makes no promises about functionality, performance, compatibility, security, or availability—and absolutely no warranty of any sort. The developer shall not be held responsible, even if the software is clearly the reason your dog decided to orchestrate its own sidecar, your mom scored five tickets to Hawaii but you missed out because you were knee‑deep in a docker compose rabbit hole, or your stack drifted so hard it achieved sentience and renamed itself.

If using this orchestration UI leads you down a rabbit hole of obsessive network optimizations, breaks your fragile grasp of version pinning, or causes an uprising among your offline‑first containers—sorry, still not liable. Also not liable if your repo syncs so fast it rips a hole in the space‑time continuum or if your .env files multiply like Tribbles. The developer likewise claims no credit for anything that actually goes right either. Any positive experiences are owed entirely to the unstoppable force that is the Open Source community.

It’s never been a better time to be a PC user—or a homelabber. Just don’t blame me when YAML inevitably eats your weekend.

About

Sometimes you need someone else to take the wheel... DD-UI is a declarative, security-first Docker orchestration engine. Please Docker responsibly.

Resources

Security policy

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DD-UI (Designated Driver UI) DD-UI (Designated Driver UI)

DD-UI is a declarative, security-first Docker orchestration engine. It compares runtime state (running containers) to declared state (your IaC repo), shows drift, and puts encryption (SOPS/AGE) and DevOps ergonomics first. Please Docker responsibly.

GitHubGitLabLast CommitOpen IssuesContributors

buildlicensereleaseupdateddonatesponsor

Dockerpulls

What is DD-UI?

DD-UI is a Docker management engine that puts DevOps and encryption first — in essence, a Docker-focused CI/CD pipeline with a UI.

  • Infrastructure as Code. DD-UI manages hosts, groups, and Docker "stacks" as standardized, CI/CD-compatible IaC files. Deployment state is decoupled from the app — edit it in the editor of your choice, and DD-UI redeploys containers when the IaC changes.
  • Encryption, first-class. Encrypt/decrypt any IaC file — compose and .env included — with SOPS/AGE, right from the UI. Values are censored by default, so you can stream or push configs to a repo safely, and DD-UI can still deploy them encrypted.
  • A rich experience. Many of the features you'd expect from a Docker GUI, plus industry tools like xterm 🔥 and monaco (the editor from VS Code 🎉).
  • Free and open source under the AGPL-3.0-or-later — free forever for personal, homelab, non-profit, and commercial use alike (a commercial license is available if you need proprietary terms).

DD-UI — every stack across every host in one view

📸 See DD-UI in action → — SOPS-encrypted stacks decrypted on the fly, live logs, in-container terminal, drift detection, cleanup, and more.

Status

⚠️Pre-release — ~85–95% functional. Core works; some advanced features are partial (git-sync is currently unstable). Before you rely on it, skim the open issues and Known Issues for any dealbreakers. See Roadmap & Status for scope & cadence. CHEERS!


What DD-UI does today

  • Container control: start / stop / pause / resume / kill containers.
  • Live logs: dedicated logging view with advanced filters.
  • In-container terminal: an xterm-powered shell for a rich experience.
  • Editor: edit compose, .env, and scripts with monaco (the editor from VS Code) — no compromise vs other Docker tools.
  • Inventory: list hosts.
  • Stacks / containers: every running container across all your systems in one view.
  • Sync: one click triggers an IaC scan (local repo) plus a runtime scan per host (Docker).
  • Compare: runtime vs desired (images, services), with a per-stack drift indicator.
  • Usability: per-host search, fixed table layout, ports rendered one mapping per line.
  • SOPS awareness: detect encrypted files; never decrypt by default (explicit, audited reveal flow).
  • Auth: OIDC is mandatory — there are no local accounts. Authenticate through your IdP (Zitadel/Keycloak/Authentik/Okta/Auth0) or you're not getting in. Session probe, login, logout (RP-logout optional).
  • API: /api/... (JSON), with the static SPA served by the backend.
  • SOPS CLI integration: the server runs sops for encrypt/decrypt; no plaintext secrets are stored.
  • Health pills: health-aware state (running / healthy / exited …).
  • Stack Files page: view/edit compose/env/scripts against runtime context, with gated SOPS decryption.
  • Docker Cleanup page: prune or clear the build cache from the UI.

📚 Documentation

Full documentation → — deploy, configure, and run DD-UI.


Contributing

  • File issues with steps, logs, and versions.
  • Small, focused PRs are best (typos, error handling, UI polish).
  • Sample IaC directories welcome!
  • Security-related PRs and hardening suggestions are especially appreciated (SOPS/AGE, cookie settings, RBAC, etc.).

Support / Sponsorship

If you’d like to help keep the project moving:

ko-fi


License

DD-UI is distributed under the AGPL-3.0-or-later license — free and open for everyone, including commercial use, under its copyleft terms. See LICENSING.md for commercial/proprietary licensing options.

This section is a human‑readable summary and not a substitute for the license. Nothing here grants rights by itself.


Disclaimer

The Software provided hereunder (“Software”) is licensed “as‑is,” without warranties of any kind—express, implied, or telepathically transmitted. The Softwarer (yes, that’s totally a word now) makes no promises about functionality, performance, compatibility, security, or availability—and absolutely no warranty of any sort. The developer shall not be held responsible, even if the software is clearly the reason your dog decided to orchestrate its own sidecar, your mom scored five tickets to Hawaii but you missed out because you were knee‑deep in a docker compose rabbit hole, or your stack drifted so hard it achieved sentience and renamed itself.

If using this orchestration UI leads you down a rabbit hole of obsessive network optimizations, breaks your fragile grasp of version pinning, or causes an uprising among your offline‑first containers—sorry, still not liable. Also not liable if your repo syncs so fast it rips a hole in the space‑time continuum or if your .env files multiply like Tribbles. The developer likewise claims no credit for anything that actually goes right either. Any positive experiences are owed entirely to the unstoppable force that is the Open Source community.

It’s never been a better time to be a PC user—or a homelabber. Just don’t blame me when YAML inevitably eats your weekend.

About

Sometimes you need someone else to take the wheel... DD-UI is a declarative, security-first Docker orchestration engine. Please Docker responsibly.

Resources

Security policy

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DD-UI (Designated Driver UI) DD-UI (Designated Driver UI)

DD-UI is a declarative, security-first Docker orchestration engine. It compares runtime state (running containers) to declared state (your IaC repo), shows drift, and puts encryption (SOPS/AGE) and DevOps ergonomics first. Please Docker responsibly.

GitHubGitLabLast CommitOpen IssuesContributors

buildlicensereleaseupdateddonatesponsor

Dockerpulls

What is DD-UI?

DD-UI is a Docker management engine that puts DevOps and encryption first — in essence, a Docker-focused CI/CD pipeline with a UI.

  • Infrastructure as Code. DD-UI manages hosts, groups, and Docker "stacks" as standardized, CI/CD-compatible IaC files. Deployment state is decoupled from the app — edit it in the editor of your choice, and DD-UI redeploys containers when the IaC changes.
  • Encryption, first-class. Encrypt/decrypt any IaC file — compose and .env included — with SOPS/AGE, right from the UI. Values are censored by default, so you can stream or push configs to a repo safely, and DD-UI can still deploy them encrypted.
  • A rich experience. Many of the features you'd expect from a Docker GUI, plus industry tools like xterm 🔥 and monaco (the editor from VS Code 🎉).
  • Free and open source under the AGPL-3.0-or-later — free forever for personal, homelab, non-profit, and commercial use alike (a commercial license is available if you need proprietary terms).

DD-UI — every stack across every host in one view

📸 See DD-UI in action → — SOPS-encrypted stacks decrypted on the fly, live logs, in-container terminal, drift detection, cleanup, and more.

Status

⚠️Pre-release — ~85–95% functional. Core works; some advanced features are partial (git-sync is currently unstable). Before you rely on it, skim the open issues and Known Issues for any dealbreakers. See Roadmap & Status for scope & cadence. CHEERS!


What DD-UI does today

  • Container control: start / stop / pause / resume / kill containers.
  • Live logs: dedicated logging view with advanced filters.
  • In-container terminal: an xterm-powered shell for a rich experience.
  • Editor: edit compose, .env, and scripts with monaco (the editor from VS Code) — no compromise vs other Docker tools.
  • Inventory: list hosts.
  • Stacks / containers: every running container across all your systems in one view.
  • Sync: one click triggers an IaC scan (local repo) plus a runtime scan per host (Docker).
  • Compare: runtime vs desired (images, services), with a per-stack drift indicator.
  • Usability: per-host search, fixed table layout, ports rendered one mapping per line.
  • SOPS awareness: detect encrypted files; never decrypt by default (explicit, audited reveal flow).
  • Auth: OIDC is mandatory — there are no local accounts. Authenticate through your IdP (Zitadel/Keycloak/Authentik/Okta/Auth0) or you're not getting in. Session probe, login, logout (RP-logout optional).
  • API: /api/... (JSON), with the static SPA served by the backend.
  • SOPS CLI integration: the server runs sops for encrypt/decrypt; no plaintext secrets are stored.
  • Health pills: health-aware state (running / healthy / exited …).
  • Stack Files page: view/edit compose/env/scripts against runtime context, with gated SOPS decryption.
  • Docker Cleanup page: prune or clear the build cache from the UI.

📚 Documentation

Full documentation → — deploy, configure, and run DD-UI.


Contributing

  • File issues with steps, logs, and versions.
  • Small, focused PRs are best (typos, error handling, UI polish).
  • Sample IaC directories welcome!
  • Security-related PRs and hardening suggestions are especially appreciated (SOPS/AGE, cookie settings, RBAC, etc.).

Support / Sponsorship

If you’d like to help keep the project moving:

ko-fi


License

DD-UI is distributed under the AGPL-3.0-or-later license — free and open for everyone, including commercial use, under its copyleft terms. See LICENSING.md for commercial/proprietary licensing options.

This section is a human‑readable summary and not a substitute for the license. Nothing here grants rights by itself.


Disclaimer

The Software provided hereunder (“Software”) is licensed “as‑is,” without warranties of any kind—express, implied, or telepathically transmitted. The Softwarer (yes, that’s totally a word now) makes no promises about functionality, performance, compatibility, security, or availability—and absolutely no warranty of any sort. The developer shall not be held responsible, even if the software is clearly the reason your dog decided to orchestrate its own sidecar, your mom scored five tickets to Hawaii but you missed out because you were knee‑deep in a docker compose rabbit hole, or your stack drifted so hard it achieved sentience and renamed itself.

If using this orchestration UI leads you down a rabbit hole of obsessive network optimizations, breaks your fragile grasp of version pinning, or causes an uprising among your offline‑first containers—sorry, still not liable. Also not liable if your repo syncs so fast it rips a hole in the space‑time continuum or if your .env files multiply like Tribbles. The developer likewise claims no credit for anything that actually goes right either. Any positive experiences are owed entirely to the unstoppable force that is the Open Source community.

It’s never been a better time to be a PC user—or a homelabber. Just don’t blame me when YAML inevitably eats your weekend.

About

Sometimes you need someone else to take the wheel... DD-UI is a declarative, security-first Docker orchestration engine. Please Docker responsibly.

Resources

Security policy

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

DD-UI (Designated Driver UI) DD-UI (Designated Driver UI)

DD-UI is a declarative, security-first Docker orchestration engine. It compares runtime state (running containers) to declared state (your IaC repo), shows drift, and puts encryption (SOPS/AGE) and DevOps ergonomics first. Please Docker responsibly.

GitHubGitLabLast CommitOpen IssuesContributors

buildlicensereleaseupdateddonatesponsor

Dockerpulls

What is DD-UI?

DD-UI is a Docker management engine that puts DevOps and encryption first — in essence, a Docker-focused CI/CD pipeline with a UI.

  • Infrastructure as Code. DD-UI manages hosts, groups, and Docker "stacks" as standardized, CI/CD-compatible IaC files. Deployment state is decoupled from the app — edit it in the editor of your choice, and DD-UI redeploys containers when the IaC changes.
  • Encryption, first-class. Encrypt/decrypt any IaC file — compose and .env included — with SOPS/AGE, right from the UI. Values are censored by default, so you can stream or push configs to a repo safely, and DD-UI can still deploy them encrypted.
  • A rich experience. Many of the features you'd expect from a Docker GUI, plus industry tools like xterm 🔥 and monaco (the editor from VS Code 🎉).
  • Free and open source under the AGPL-3.0-or-later — free forever for personal, homelab, non-profit, and commercial use alike (a commercial license is available if you need proprietary terms).

DD-UI — every stack across every host in one view

📸 See DD-UI in action → — SOPS-encrypted stacks decrypted on the fly, live logs, in-container terminal, drift detection, cleanup, and more.

Status

⚠️Pre-release — ~85–95% functional. Core works; some advanced features are partial (git-sync is currently unstable). Before you rely on it, skim the open issues and Known Issues for any dealbreakers. See Roadmap & Status for scope & cadence. CHEERS!


What DD-UI does today

  • Container control: start / stop / pause / resume / kill containers.
  • Live logs: dedicated logging view with advanced filters.
  • In-container terminal: an xterm-powered shell for a rich experience.
  • Editor: edit compose, .env, and scripts with monaco (the editor from VS Code) — no compromise vs other Docker tools.
  • Inventory: list hosts.
  • Stacks / containers: every running container across all your systems in one view.
  • Sync: one click triggers an IaC scan (local repo) plus a runtime scan per host (Docker).
  • Compare: runtime vs desired (images, services), with a per-stack drift indicator.
  • Usability: per-host search, fixed table layout, ports rendered one mapping per line.
  • SOPS awareness: detect encrypted files; never decrypt by default (explicit, audited reveal flow).
  • Auth: OIDC is mandatory — there are no local accounts. Authenticate through your IdP (Zitadel/Keycloak/Authentik/Okta/Auth0) or you're not getting in. Session probe, login, logout (RP-logout optional).
  • API: /api/... (JSON), with the static SPA served by the backend.
  • SOPS CLI integration: the server runs sops for encrypt/decrypt; no plaintext secrets are stored.
  • Health pills: health-aware state (running / healthy / exited …).
  • Stack Files page: view/edit compose/env/scripts against runtime context, with gated SOPS decryption.
  • Docker Cleanup page: prune or clear the build cache from the UI.

📚 Documentation

Full documentation → — deploy, configure, and run DD-UI.


Contributing

  • File issues with steps, logs, and versions.
  • Small, focused PRs are best (typos, error handling, UI polish).
  • Sample IaC directories welcome!
  • Security-related PRs and hardening suggestions are especially appreciated (SOPS/AGE, cookie settings, RBAC, etc.).

Support / Sponsorship

If you’d like to help keep the project moving:

ko-fi


License

DD-UI is distributed under the AGPL-3.0-or-later license — free and open for everyone, including commercial use, under its copyleft terms. See LICENSING.md for commercial/proprietary licensing options.

This section is a human‑readable summary and not a substitute for the license. Nothing here grants rights by itself.


Disclaimer

The Software provided hereunder (“Software”) is licensed “as‑is,” without warranties of any kind—express, implied, or telepathically transmitted. The Softwarer (yes, that’s totally a word now) makes no promises about functionality, performance, compatibility, security, or availability—and absolutely no warranty of any sort. The developer shall not be held responsible, even if the software is clearly the reason your dog decided to orchestrate its own sidecar, your mom scored five tickets to Hawaii but you missed out because you were knee‑deep in a docker compose rabbit hole, or your stack drifted so hard it achieved sentience and renamed itself.

If using this orchestration UI leads you down a rabbit hole of obsessive network optimizations, breaks your fragile grasp of version pinning, or causes an uprising among your offline‑first containers—sorry, still not liable. Also not liable if your repo syncs so fast it rips a hole in the space‑time continuum or if your .env files multiply like Tribbles. The developer likewise claims no credit for anything that actually goes right either. Any positive experiences are owed entirely to the unstoppable force that is the Open Source community.

It’s never been a better time to be a PC user—or a homelabber. Just don’t blame me when YAML inevitably eats your weekend.

About

Sometimes you need someone else to take the wheel... DD-UI is a declarative, security-first Docker orchestration engine. Please Docker responsibly.

Resources

Security policy

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DD-UI (Designated Driver UI) DD-UI (Designated Driver UI)

DD-UI is a declarative, security-first Docker orchestration engine. It compares runtime state (running containers) to declared state (your IaC repo), shows drift, and puts encryption (SOPS/AGE) and DevOps ergonomics first. Please Docker responsibly.

GitHubGitLabLast CommitOpen IssuesContributors

buildlicensereleaseupdateddonatesponsor

Dockerpulls

What is DD-UI?

DD-UI is a Docker management engine that puts DevOps and encryption first — in essence, a Docker-focused CI/CD pipeline with a UI.

  • Infrastructure as Code. DD-UI manages hosts, groups, and Docker "stacks" as standardized, CI/CD-compatible IaC files. Deployment state is decoupled from the app — edit it in the editor of your choice, and DD-UI redeploys containers when the IaC changes.
  • Encryption, first-class. Encrypt/decrypt any IaC file — compose and .env included — with SOPS/AGE, right from the UI. Values are censored by default, so you can stream or push configs to a repo safely, and DD-UI can still deploy them encrypted.
  • A rich experience. Many of the features you'd expect from a Docker GUI, plus industry tools like xterm 🔥 and monaco (the editor from VS Code 🎉).
  • Free and open source under the AGPL-3.0-or-later — free forever for personal, homelab, non-profit, and commercial use alike (a commercial license is available if you need proprietary terms).

DD-UI — every stack across every host in one view

📸 See DD-UI in action → — SOPS-encrypted stacks decrypted on the fly, live logs, in-container terminal, drift detection, cleanup, and more.

Status

⚠️Pre-release — ~85–95% functional. Core works; some advanced features are partial (git-sync is currently unstable). Before you rely on it, skim the open issues and Known Issues for any dealbreakers. See Roadmap & Status for scope & cadence. CHEERS!


What DD-UI does today

  • Container control: start / stop / pause / resume / kill containers.
  • Live logs: dedicated logging view with advanced filters.
  • In-container terminal: an xterm-powered shell for a rich experience.
  • Editor: edit compose, .env, and scripts with monaco (the editor from VS Code) — no compromise vs other Docker tools.
  • Inventory: list hosts.
  • Stacks / containers: every running container across all your systems in one view.
  • Sync: one click triggers an IaC scan (local repo) plus a runtime scan per host (Docker).
  • Compare: runtime vs desired (images, services), with a per-stack drift indicator.
  • Usability: per-host search, fixed table layout, ports rendered one mapping per line.
  • SOPS awareness: detect encrypted files; never decrypt by default (explicit, audited reveal flow).
  • Auth: OIDC is mandatory — there are no local accounts. Authenticate through your IdP (Zitadel/Keycloak/Authentik/Okta/Auth0) or you're not getting in. Session probe, login, logout (RP-logout optional).
  • API: /api/... (JSON), with the static SPA served by the backend.
  • SOPS CLI integration: the server runs sops for encrypt/decrypt; no plaintext secrets are stored.
  • Health pills: health-aware state (running / healthy / exited …).
  • Stack Files page: view/edit compose/env/scripts against runtime context, with gated SOPS decryption.
  • Docker Cleanup page: prune or clear the build cache from the UI.

📚 Documentation

Full documentation → — deploy, configure, and run DD-UI.


Contributing

  • File issues with steps, logs, and versions.
  • Small, focused PRs are best (typos, error handling, UI polish).
  • Sample IaC directories welcome!
  • Security-related PRs and hardening suggestions are especially appreciated (SOPS/AGE, cookie settings, RBAC, etc.).

Support / Sponsorship

If you’d like to help keep the project moving:

ko-fi


License

DD-UI is distributed under the AGPL-3.0-or-later license — free and open for everyone, including commercial use, under its copyleft terms. See LICENSING.md for commercial/proprietary licensing options.

This section is a human‑readable summary and not a substitute for the license. Nothing here grants rights by itself.


Disclaimer

The Software provided hereunder (“Software”) is licensed “as‑is,” without warranties of any kind—express, implied, or telepathically transmitted. The Softwarer (yes, that’s totally a word now) makes no promises about functionality, performance, compatibility, security, or availability—and absolutely no warranty of any sort. The developer shall not be held responsible, even if the software is clearly the reason your dog decided to orchestrate its own sidecar, your mom scored five tickets to Hawaii but you missed out because you were knee‑deep in a docker compose rabbit hole, or your stack drifted so hard it achieved sentience and renamed itself.

If using this orchestration UI leads you down a rabbit hole of obsessive network optimizations, breaks your fragile grasp of version pinning, or causes an uprising among your offline‑first containers—sorry, still not liable. Also not liable if your repo syncs so fast it rips a hole in the space‑time continuum or if your .env files multiply like Tribbles. The developer likewise claims no credit for anything that actually goes right either. Any positive experiences are owed entirely to the unstoppable force that is the Open Source community.

It’s never been a better time to be a PC user—or a homelabber. Just don’t blame me when YAML inevitably eats your weekend.

About

Sometimes you need someone else to take the wheel... DD-UI is a declarative, security-first Docker orchestration engine. Please Docker responsibly.

Resources

Security policy

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DD-UI (Designated Driver UI) DD-UI (Designated Driver UI)

DD-UI is a declarative, security-first Docker orchestration engine. It compares runtime state (running containers) to declared state (your IaC repo), shows drift, and puts encryption (SOPS/AGE) and DevOps ergonomics first. Please Docker responsibly.

GitHubGitLabLast CommitOpen IssuesContributors

buildlicensereleaseupdateddonatesponsor

Dockerpulls

What is DD-UI?

DD-UI is a Docker management engine that puts DevOps and encryption first — in essence, a Docker-focused CI/CD pipeline with a UI.

  • Infrastructure as Code. DD-UI manages hosts, groups, and Docker "stacks" as standardized, CI/CD-compatible IaC files. Deployment state is decoupled from the app — edit it in the editor of your choice, and DD-UI redeploys containers when the IaC changes.
  • Encryption, first-class. Encrypt/decrypt any IaC file — compose and .env included — with SOPS/AGE, right from the UI. Values are censored by default, so you can stream or push configs to a repo safely, and DD-UI can still deploy them encrypted.
  • A rich experience. Many of the features you'd expect from a Docker GUI, plus industry tools like xterm 🔥 and monaco (the editor from VS Code 🎉).
  • Free and open source under the AGPL-3.0-or-later — free forever for personal, homelab, non-profit, and commercial use alike (a commercial license is available if you need proprietary terms).

DD-UI — every stack across every host in one view

📸 See DD-UI in action → — SOPS-encrypted stacks decrypted on the fly, live logs, in-container terminal, drift detection, cleanup, and more.

Status

⚠️Pre-release — ~85–95% functional. Core works; some advanced features are partial (git-sync is currently unstable). Before you rely on it, skim the open issues and Known Issues for any dealbreakers. See Roadmap & Status for scope & cadence. CHEERS!


What DD-UI does today

  • Container control: start / stop / pause / resume / kill containers.
  • Live logs: dedicated logging view with advanced filters.
  • In-container terminal: an xterm-powered shell for a rich experience.
  • Editor: edit compose, .env, and scripts with monaco (the editor from VS Code) — no compromise vs other Docker tools.
  • Inventory: list hosts.
  • Stacks / containers: every running container across all your systems in one view.
  • Sync: one click triggers an IaC scan (local repo) plus a runtime scan per host (Docker).
  • Compare: runtime vs desired (images, services), with a per-stack drift indicator.
  • Usability: per-host search, fixed table layout, ports rendered one mapping per line.
  • SOPS awareness: detect encrypted files; never decrypt by default (explicit, audited reveal flow).
  • Auth: OIDC is mandatory — there are no local accounts. Authenticate through your IdP (Zitadel/Keycloak/Authentik/Okta/Auth0) or you're not getting in. Session probe, login, logout (RP-logout optional).
  • API: /api/... (JSON), with the static SPA served by the backend.
  • SOPS CLI integration: the server runs sops for encrypt/decrypt; no plaintext secrets are stored.
  • Health pills: health-aware state (running / healthy / exited …).
  • Stack Files page: view/edit compose/env/scripts against runtime context, with gated SOPS decryption.
  • Docker Cleanup page: prune or clear the build cache from the UI.

📚 Documentation

Full documentation → — deploy, configure, and run DD-UI.


Contributing

  • File issues with steps, logs, and versions.
  • Small, focused PRs are best (typos, error handling, UI polish).
  • Sample IaC directories welcome!
  • Security-related PRs and hardening suggestions are especially appreciated (SOPS/AGE, cookie settings, RBAC, etc.).

Support / Sponsorship

If you’d like to help keep the project moving:

ko-fi


License

DD-UI is distributed under the AGPL-3.0-or-later license — free and open for everyone, including commercial use, under its copyleft terms. See LICENSING.md for commercial/proprietary licensing options.

This section is a human‑readable summary and not a substitute for the license. Nothing here grants rights by itself.


Disclaimer

The Software provided hereunder (“Software”) is licensed “as‑is,” without warranties of any kind—express, implied, or telepathically transmitted. The Softwarer (yes, that’s totally a word now) makes no promises about functionality, performance, compatibility, security, or availability—and absolutely no warranty of any sort. The developer shall not be held responsible, even if the software is clearly the reason your dog decided to orchestrate its own sidecar, your mom scored five tickets to Hawaii but you missed out because you were knee‑deep in a docker compose rabbit hole, or your stack drifted so hard it achieved sentience and renamed itself.

If using this orchestration UI leads you down a rabbit hole of obsessive network optimizations, breaks your fragile grasp of version pinning, or causes an uprising among your offline‑first containers—sorry, still not liable. Also not liable if your repo syncs so fast it rips a hole in the space‑time continuum or if your .env files multiply like Tribbles. The developer likewise claims no credit for anything that actually goes right either. Any positive experiences are owed entirely to the unstoppable force that is the Open Source community.

It’s never been a better time to be a PC user—or a homelabber. Just don’t blame me when YAML inevitably eats your weekend.

About

Sometimes you need someone else to take the wheel... DD-UI is a declarative, security-first Docker orchestration engine. Please Docker responsibly.

Resources

Security policy

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

DD-UI (Designated Driver UI) DD-UI (Designated Driver UI)

DD-UI is a declarative, security-first Docker orchestration engine. It compares runtime state (running containers) to declared state (your IaC repo), shows drift, and puts encryption (SOPS/AGE) and DevOps ergonomics first. Please Docker responsibly.

GitHubGitLabLast CommitOpen IssuesContributors

buildlicensereleaseupdateddonatesponsor

Dockerpulls

What is DD-UI?

DD-UI is a Docker management engine that puts DevOps and encryption first — in essence, a Docker-focused CI/CD pipeline with a UI.

  • Infrastructure as Code. DD-UI manages hosts, groups, and Docker "stacks" as standardized, CI/CD-compatible IaC files. Deployment state is decoupled from the app — edit it in the editor of your choice, and DD-UI redeploys containers when the IaC changes.
  • Encryption, first-class. Encrypt/decrypt any IaC file — compose and .env included — with SOPS/AGE, right from the UI. Values are censored by default, so you can stream or push configs to a repo safely, and DD-UI can still deploy them encrypted.
  • A rich experience. Many of the features you'd expect from a Docker GUI, plus industry tools like xterm 🔥 and monaco (the editor from VS Code 🎉).
  • Free and open source under the AGPL-3.0-or-later — free forever for personal, homelab, non-profit, and commercial use alike (a commercial license is available if you need proprietary terms).

DD-UI — every stack across every host in one view

📸 See DD-UI in action → — SOPS-encrypted stacks decrypted on the fly, live logs, in-container terminal, drift detection, cleanup, and more.

Status

⚠️Pre-release — ~85–95% functional. Core works; some advanced features are partial (git-sync is currently unstable). Before you rely on it, skim the open issues and Known Issues for any dealbreakers. See Roadmap & Status for scope & cadence. CHEERS!


What DD-UI does today

  • Container control: start / stop / pause / resume / kill containers.
  • Live logs: dedicated logging view with advanced filters.
  • In-container terminal: an xterm-powered shell for a rich experience.
  • Editor: edit compose, .env, and scripts with monaco (the editor from VS Code) — no compromise vs other Docker tools.
  • Inventory: list hosts.
  • Stacks / containers: every running container across all your systems in one view.
  • Sync: one click triggers an IaC scan (local repo) plus a runtime scan per host (Docker).
  • Compare: runtime vs desired (images, services), with a per-stack drift indicator.
  • Usability: per-host search, fixed table layout, ports rendered one mapping per line.
  • SOPS awareness: detect encrypted files; never decrypt by default (explicit, audited reveal flow).
  • Auth: OIDC is mandatory — there are no local accounts. Authenticate through your IdP (Zitadel/Keycloak/Authentik/Okta/Auth0) or you're not getting in. Session probe, login, logout (RP-logout optional).
  • API: /api/... (JSON), with the static SPA served by the backend.
  • SOPS CLI integration: the server runs sops for encrypt/decrypt; no plaintext secrets are stored.
  • Health pills: health-aware state (running / healthy / exited …).
  • Stack Files page: view/edit compose/env/scripts against runtime context, with gated SOPS decryption.
  • Docker Cleanup page: prune or clear the build cache from the UI.

📚 Documentation

Full documentation → — deploy, configure, and run DD-UI.


Contributing

  • File issues with steps, logs, and versions.
  • Small, focused PRs are best (typos, error handling, UI polish).
  • Sample IaC directories welcome!
  • Security-related PRs and hardening suggestions are especially appreciated (SOPS/AGE, cookie settings, RBAC, etc.).

Support / Sponsorship

If you’d like to help keep the project moving:

ko-fi


License

DD-UI is distributed under the AGPL-3.0-or-later license — free and open for everyone, including commercial use, under its copyleft terms. See LICENSING.md for commercial/proprietary licensing options.

This section is a human‑readable summary and not a substitute for the license. Nothing here grants rights by itself.


Disclaimer

The Software provided hereunder (“Software”) is licensed “as‑is,” without warranties of any kind—express, implied, or telepathically transmitted. The Softwarer (yes, that’s totally a word now) makes no promises about functionality, performance, compatibility, security, or availability—and absolutely no warranty of any sort. The developer shall not be held responsible, even if the software is clearly the reason your dog decided to orchestrate its own sidecar, your mom scored five tickets to Hawaii but you missed out because you were knee‑deep in a docker compose rabbit hole, or your stack drifted so hard it achieved sentience and renamed itself.

If using this orchestration UI leads you down a rabbit hole of obsessive network optimizations, breaks your fragile grasp of version pinning, or causes an uprising among your offline‑first containers—sorry, still not liable. Also not liable if your repo syncs so fast it rips a hole in the space‑time continuum or if your .env files multiply like Tribbles. The developer likewise claims no credit for anything that actually goes right either. Any positive experiences are owed entirely to the unstoppable force that is the Open Source community.

It’s never been a better time to be a PC user—or a homelabber. Just don’t blame me when YAML inevitably eats your weekend.

About

Sometimes you need someone else to take the wheel... DD-UI is a declarative, security-first Docker orchestration engine. Please Docker responsibly.

Resources

Security policy

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages