No description
  • Rust 97.8%
  • Shell 1.5%
  • Nix 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Durable Programming, LLC Team 27845f3407 chore: update bollard to 0.20.1
Update bollard dependency from 0.19.2 to 0.20.1. This minor version
update brings bollard-stubs from 1.49.0-rc.28.3.3 to 1.52.1-rc.29.1.3,
adding support for Docker API features through version 1.52.

Dependency tree changes include removal of several transitive
dependencies that are no longer required by the updated bollard
crate:
- serde_with and its dependencies (schemars, ref-cast, ref-cast-impl,
  dyn-clone)
- time crate and its dependencies (time-core, time-macros, deranged,
  num-conv, powerfmt)
- serde_repr removed from bollard's direct dependencies (moved to
  bollard-stubs only)
- indexmap 1.9.3 removed (consolidated to 2.11.0)
- hashbrown 0.12.3 removed (consolidated to 0.15.4)

Minor version updates to transitive dependencies:
- bytes: 1.10.1 -> 1.11.1

Serde feature flags removed from chrono dependency as they are no
longer required by the updated dependency graph.
2026-03-05 10:59:09 -05:00
.cargo refactor: improve IP extraction logic to handle edge cases 2025-12-02 15:40:43 -05:00
.github/workflows fix: prevent division by zero in progress calculations and tab navigation 2026-01-20 12:25:09 -05:00
demo update animated gif demo v2 2025-09-12 16:06:55 -04:00
scripts chore: implement lazy log parsing with caching to improve performance 2025-11-19 14:10:38 -05:00
src refactor: simplify code and apply clippy suggestions 2026-03-03 14:35:11 -05:00
.envrc Switch to copypasta and copypasta-ext for clipboard support. 2025-06-11 07:55:32 -04:00
.gitignore improve documentation, add shell.nix for nix-but-devenv.shless devs 2025-06-10 09:04:03 -04:00
Cargo.lock chore: update bollard to 0.20.1 2026-03-05 10:59:09 -05:00
Cargo.toml chore: update bollard to 0.20.1 2026-03-05 10:59:09 -05:00
devenv.lock chore: update dependencies and build toolchain 2025-11-12 14:34:53 -05:00
devenv.nix chore: update dependencies and build toolchain 2025-11-12 14:34:53 -05:00
devenv.yaml setup github CI 2025-07-02 10:54:07 -04:00
LICENSE.md add MIT license 2025-05-30 12:37:21 -04:00
README.md [fix] Fix typo in URL in install command in README.md. 2026-02-12 13:13:50 -05:00
shell.nix improve documentation, add shell.nix for nix-but-devenv.shless devs 2025-06-10 09:04:03 -04:00

DPRS - Docker Process Management TUI

DPRS (Docker PRocesS Manager) is a terminal user interface for managing Docker containers and monitoring their logs. Built with a focus on reliability, usability, and efficient container management.

DPRS is designed to assist in software development, not sysadmin or DevOps, and features related to those tasks are prioritized.

DPRS demo video

Quick Install

curl -fsSL https://get.durableprogramming.com/dprs | sh
       .o8
      "888                                   _____              __
  .oooo888  oo.ooooo.  oooo d8b  .oooo.o    |     \.-----.----.|  |--.-----.----.
 d88' `888   888' `88b `888""8P d88(  `8 () |  --  |  _  |  __||    <|  -__|   _|
 888   888   888   888  888     `"Y88b.     |_____/|_____|____||__|__|_____|__|     _______
 888   888   888   888  888     o.  )88b () |   __ \   __ \.-----.----.-----.-----.|     __|
 `Y8bod88P"  888bod8P' d888b    8""888P'    |    __/      <|  _  |  __|  -__|__ --||__     |
  ---------  888  ---------------------     |___|  |___|__||_____|____|_____|_____||_______|
            o888o                           .--------.---.-.-----.---.-.-----.-----.----.
                  A Durable                 |        |  _  |     |  _  |  _  |  -__|   _|
                    Programming             |__|__|__|___._|__|__|___._|___  |_____|__|
                    Production                                         |_____|

Features

  • Container Management

    • List running containers with details (name, image, status, IP, ports)
    • Stop containers with a single keystroke
    • Copy container IP addresses to clipboard
    • Open container web interfaces in browser
    • Real-time container list refresh
  • Log Monitoring

    • Real-time log streaming from multiple containers
    • Color-coded log levels (Info, Warning, Error, Debug)
    • Easy navigation between container logs
    • Scroll through log history
    • Automatic log rotation to manage memory usage

Usage

DPRS provides two main binaries:

dprs - Container Manager

dprs

Navigate containers with arrow keys or j/k

  • q: Quit
  • c: Copy selected container's IP address
  • l: Open container web interface in browser
  • x: Stop selected container
  • r: Refresh container list

dplw - Log Watcher

dplw

Watch logs from multiple containers:

  • Left/Right arrows: Switch between containers
  • Up/Down arrows: Scroll through logs
  • Home/End: Jump to start/end of logs
  • r: Refresh container list
  • q: Quit

Philosophy

DPRS is built on principles of:

  • Reliability: Stable, well-tested code that handles edge cases gracefully
  • Usability: Intuitive interface with clear feedback for all actions
  • Efficiency: Fast operation with minimal resource usage
  • Pragmatism: Focused on solving real container management needs

Development

Requirements

  • Rust 2024 edition
  • Docker daemon running locally

Building

cargo build --release

Testing

cargo test

Project Structure

  • src/app/: Application state and action handlers
  • src/display/: UI components and rendering
  • src/docker_log_watcher/: Container log monitoring
  • src/log_view/: Log display and navigation

Contributing

Contributions are welcome! Please read our contributing guidelines and code of conduct before submitting pull requests.

License

MIT.

Copyright (c) 2025 Durable Programming, LLC. All rights reserved.

Support

For bugs, feature requests, or questions, please open an issue on GitHub.

Acknowledgments

Built with:

Special thanks to the Docker and Rust communities for their excellent tools and documentation.