Skip to content

stardust1420/stardocker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

███████╗████████╗ █████╗ ██████╗ ██████╗  ██████╗  ██████╗██╗  ██╗███████╗██████╗
██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗
███████╗   ██║   ███████║██████╔╝██║  ██║██║   ██║██║     █████╔╝ █████╗  ██████╔╝
╚════██║   ██║   ██╔══██║██╔══██╗██║  ██║██║   ██║██║     ██╔═██╗ ██╔══╝  ██╔══██╗
███████║   ██║   ██║  ██║██║  ██║██████╔╝╚██████╔╝╚██████╗██║  ██╗███████╗██║  ██║
╚══════╝   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚═════╝  ╚═════╝  ╚═════╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝

A sleek terminal UI to manage your Docker containers

Go Docker License


✨ Features

  • 📦 List all containers — view both running and stopped containers at a glance
  • ▶️ Start & Stop — toggle container state directly from the TUI
  • 📜 Live Logs — stream container logs in real-time with a scrollable viewport
  • 🗂️ Compose-aware — automatically groups Docker Compose stacks with expandable children
  • 🖼️ Browse Images — view available Docker images and their download status
  • 🚀 Auto-starts Docker — detects if the Docker daemon is down and launches Docker Desktop for you (macOS)
  • ⌨️ Keyboard-driven — fast, intuitive navigation with vim-style keybindings

📸 How It Works

StarDocker connects directly to your local Docker daemon via the Docker SDK. It renders an interactive table of your containers with live state indicators () so you can see what's running at a glance — then lets you drill into logs or control containers without ever leaving the terminal.


🛠️ Installation

Prerequisites

  • Go 1.24+
  • Docker installed and the daemon running (or Docker Desktop on macOS — StarDocker will start it for you)

Build from source

git clone https://github.com/stardust1405/stardocker.git
cd stardocker
go build .

This produces a stardocker binary in the current directory.

Run

./stardocker

Or move it somewhere on your $PATH for global access:

sudo mv stardocker /usr/local/bin/
stardocker

🚀 Usage

Just type stardocker in your terminal. That's it — no config files, no flags, no setup.

Main Menu

Option Description
Containers View and manage all Docker containers
Images Browse available Docker images
Exit Quit StarDocker

Keybindings

Key Action
/ k Move up
/ j Move down
Enter Select / Expand compose stack / View logs
Esc Go back
r Start or stop the selected container
q Quit
? Toggle help

Containers View

  • Running containers are marked with a indicator
  • Docker Compose stacks are automatically detected and grouped — press Enter to expand/collapse child containers
  • Press r on a stopped container to start it, or on a running container to stop it
  • Press Enter on a container to view its live logs

Logs View

  • Logs are fetched from the last 24 hours with timestamps
  • The viewport auto-scrolls to the bottom for new output
  • Scroll freely with arrow keys or vim bindings; auto-scroll resumes when you're near the bottom

🏗️ Project Structure

stardocker/
├── main.go            # Entry point — Docker client init & TUI bootstrap
└── src/
    ├── index.go       # Main menu model
    ├── containers.go  # Container listing, start/stop, Compose grouping
    ├── logs.go        # Live container log viewer
    ├── images.go      # Image browser
    ├── styles.go      # Lipgloss styles and theming
    └── help.go        # Keybinding definitions & help overlay

📚 Built With

  • Bubble Tea — the Elm-inspired TUI framework for Go
  • Bubbles — pre-built TUI components (tables, viewports, progress bars)
  • Lip Gloss — terminal styling and layout
  • Docker Go SDK — Docker Engine API client

📄 License

This project is open-source and available under the MIT License.


Made with ☕ and Go

About

TUI to manage Docker containers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages