Project Description

This is a simple and handy text based GUI utility for dealing with boring and repetitive tasks while managing containers.
If you usually manage them in your daily activities you'll surely deal a lot with the CLI and execute repetitive commands for: building images, creating containers, running, killing and stopping them all the time.

It doesn't really matter if you are a Developer, a DevOps or a SRE; most of your time might be spent on the CLI for deleting/respawning/starting new instances for your favorite product.
You can surely do it from a GUI or editor (vscode, eclipse, ...) but it might be messy if you're managing them remotely through SSH and all you have at your disposal is just your trusty text-only shell connection.

That's the reason for this simple, quick, text-only curses based utility, no matter if containers are running on a remote machine, locally or if you prefer a specific Window Manager. I expressly don't want to rely on X11/Wayland, infinite dependencies (or keep them to the bare minimum) and it has to be text-only and usable from a remote shell.
This utility relies on: python (+yaml) and curses bindings (just plain curses, no extra widgets required).
It is not a fully fledged solution but rather a small and quick tool for running boring tasks, you'll still use docker/podman of your choice but you don't want to be annoyed by usual and repetitive commands (docker ps -a; docker kill <ID>; docker start <ID> <params, ...>).

That's what this utility is about.

Goal for this Hackweek

Building a working tool for dealing with boring and repetitive tasks:

  • Totally independent from: docker, podman, LXD (planned)
  • Not related to kubernetes, orchestrators or pods, just "simple" containers. Targeted to personal workstations and workflows, no matter if local or on a remote ssh shell
  • Stop/Start/Kill container
  • Build containers from Images
  • Build images from Containerfile/Docker file
  • Delete images and container quickly without ps+rm+rmi commands
  • A simple and quick curses based cli gui to be used with fewer keys
  • Running locally or through a SSH remote connection should be the same

Resources

git repository: https://github.com/andreabenini/podmaster/tree/main/forklift/
This is a brand new idea with no prior source code or fork from an existing tool.
I want to develop the idea and have a prototype at the end of the Hack Week

keywords

text gui, command line, utility, curses, shell, container, python, podman, docker, ssh, remote

Looking for hackers with the skills:

containers podman docker console curses python

This project is part of:

Hack Week 23

Activity

  • 5 months ago: socon liked this project.
  • 5 months ago: FridayKetchup liked this project.
  • 6 months ago: amunoz liked this project.
  • 6 months ago: jzerebecki liked this project.
  • 6 months ago: andreabenini added keyword "console" to this project.
  • 6 months ago: andreabenini added keyword "curses" to this project.
  • 6 months ago: andreabenini added keyword "python" to this project.
  • 6 months ago: andreabenini added keyword "podman" to this project.
  • 6 months ago: andreabenini added keyword "docker" to this project.
  • 6 months ago: andreabenini added keyword "containers" to this project.
  • 6 months ago: gleidi joined this project.
  • 6 months ago: gleidi liked this project.
  • 6 months ago: andreabenini started this project.
  • 6 months ago: andreabenini liked this project.
  • 6 months ago: andreabenini originated this project.

  • Comments

    • andreabenini
      6 months ago by andreabenini | Reply

      I'll use comment section to post general updates and features.

      • General purpose widgets are in place, maybe they need some refinement but are stable enough for the project, I'm now using: messagebox, inputbox, menu, confirm box
      • Container image management is now working and I'm able to build new images while parking the program's curses interface
      • Container listing and general action items (start/attach, kill, rename, delete) are now working
      • Container listing is suitable for personal desktop usage, not really usable on a fully fledged server with hundreds or thousand containers. No container search feature (yet, but planned)
      • Storing configurations in yaml file (easy to read and you can also add comments in it)
      • docker and podman are fully supported (and tested), never tried LXD or other container managers. I'm now planning to support docker and podman because they basically have the same interface and commands, if necessity arises I'll add something else too.
      • I'll publish curses widgets today, barebone (but working) main utility tomorrow after the tests. I'm now using the python testunit module to suit them all. I'm still without external dependencies, libraries or whatsoever and I'm still working to keep them away; the project has to be simple and without deps (or a required virtual environment) to keep it to the bare minimum.

    • andreabenini
      6 months ago by andreabenini | Reply

      Project info, sample configs and contrib materials are already in the github repo. Rushing on test units for the utility, v0.1 (stable) will be released today ahead in schedule

    • andreabenini
      6 months ago by andreabenini | Reply

      Project published, download everything from https://github.com/andreabenini/podmaster/tree/main/forklift/ Still testing and adding basic functionalities but it's now live and working

    • andreabenini
      6 months ago by andreabenini | Reply

      The utility is straight simple but some documentation is still necessary, just some markdown and a couple of screenshots.

    • andreabenini
      5 months ago by andreabenini | Reply

      Project is working, I've deployed locally for further improvements and in my VM where the real work is. I'm using it locally for further development, test-units checks, local stuff. Remotely on my production machine and it's now working. Constant updates are frequent when new features or comments arise but you can consider it usable. Publishing the package on Pypi is an installation feature coming real soon, feel free to use it right now.

    • andreabenini
      5 months ago by andreabenini | Reply

      v0.2.4 released.
      See CHANGELOG file, updated documentation and a small video in the git repository. Mostly bug fixing and few small new features. Feature freeze at the moment because I'm now focusing on the Pypi catalog for a really smart installation. If someone does not want to get the repo cloned from github, the next version will address pypi specifically. I'm still planning to add LXD, probably just for the sake of doing it because I have never had a single request for it. For personal usage (not orchestration) adding lxd might give me almost a 100% coverage (ubuntu users mostly). Feel free to submit patches and comments on github.

    • socon
      5 months ago by socon | Reply

      Looks like a great project and is aligned with the vision to manage containers for Dolomite, but I wonder why Python. We are trying to reduce the dependency on Python for ALP.

    Similar Projects

    A set of utilities to produce a "from scratch" OCI/Docker container using Opensuse/SLE rpms by ldragon

    [comment]: # (Please use the project descriptio...


    Package MONAI Machine Learning Models for Medical Applications by jordimassaguerpla

    Project Description

    MONAI Deploy aims to ...


    Building a container bootloader by flonnegren

    [comment]: # (Please use the project descriptio...


    Containerized home mirror by lkocman

    I'm running a simple home mirror, but I managed...


    Exploring DPDK within containers by paolodepa

    Project Description

    Containerization is h...


    COOTWbot by ngetahun

    [comment]: # (Please use the project descriptio...