npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@filipaltdelete/dockeru

v1.3.1

Published

Minimal desktop app and CLI to manage Docker containers, images, and git-repo builds

Readme

dockeru

A minimal desktop app and CLI for managing Docker on this machine: containers, images, and git repositories you build into images.

Run

npm install
npm run app        # desktop app
./cli.js           # CLI (also symlinked as `dockeru` into ~/.local/bin)

Requires access to /var/run/docker.sock and the docker CLI (used for git builds).

Repo folder

dockeru scans one folder — the repo folder — for compose projects (docker-compose.yml/compose.yml, one or two levels deep; projects two levels deep are bundled under their parent "master" folder in the container list).

By default the Containers tab only shows containers belonging to compose projects inside the repo folder — untick only repo folder in the toolbar to see everything on the machine (including non-compose containers).

Set it from the app: click in the top-right corner, enter the path, and save — it takes effect immediately and is stored in data/settings.json. Leaving the field empty reverts to the default. The setting applies to the CLI too (dockeru root <path> sets the same value).

Resolution order:

  1. Folder set in the app (data/settings.json)
  2. REPO_ROOT environment variable
  3. Default: the parent of the folder dockeru is cloned into

Desktop app

npm run app opens the UI as an Electron window (the backend runs embedded on a random localhost port). A launcher is installed at ~/.local/share/applications/dockeru.desktop, so "dockeru" also appears in the system application menu.

The launcher passes --no-sandbox only when Electron's chrome-sandbox helper lacks its setuid permissions; to run fully sandboxed:

sudo chown root:root node_modules/electron/dist/chrome-sandbox
sudo chmod 4755 node_modules/electron/dist/chrome-sandbox

CLI

The same functionality is available in the terminal via dockeru (symlinked into ~/.local/bin, or run ./cli.js). Run dockeru help for all commands; highlights:

dockeru ps               # grouped container list, only the repo folder's projects (-a: everything)
dockeru start repo   # start a master folder, project, or single container
dockeru up repo # docker compose up -d in the project dir
dockeru rebuild          # docker compose up -d --build for the folder you're standing in ('b' in the UI)
dockeru logs <name> -f   # follow logs
dockeru shell <name>     # shell inside the container (also 't' in the full-screen UI)
dockeru root ~/projects  # set the repo folder (same setting as the desktop UI ⚙)
dockeru editor code      # editor used by the UI file explorer ('e'); default $EDITOR/vi
dockeru repos add app https://github.com/user/app.git && dockeru build app

Reordering

The order of the container groups (in dockeru ps, dockeru ui, and the desktop UI) and of the connected repositories is customizable. In the desktop UI, drag the handle; from the CLI:

# Container groups (masters and standalone projects), as shown by `dockeru ps`
dockeru move webshop top        # pin the webshop project first
dockeru move backoffice up      # swap backoffice with the group above it
dockeru move legacy bottom      # move the legacy master folder last
dockeru move api 3              # put api at position 3 (1 = first)

# Connected repositories, as shown by `dockeru repos`
dockeru repos move app top      # list the app repo first
dockeru repos move tools down   # swap tools with the repo below it

Both commands accept up, down, top, bottom, or a 1-based position (out-of-range positions clamp to the ends) and print the resulting order. The order is shared with the desktop UI — groups in data/settings.json, repos in data/repos.json. Groups you haven't ordered sort alphabetically after the ordered ones; the unnamed "Other containers" group always stays last.

Features

  • Containers — list running and stopped containers, start / stop / restart / remove, view the last 300 log lines. The list auto-refreshes every 5 s. Drag the handle to reorder the groups (shared with the CLI, see Reordering).
  • Images — list local images, pull from Docker Hub or any registry (e.g. nginx:alpine, ghcr.io/org/app:tag) with live progress, remove, and run a container from an image (with optional name, port mappings host:container, and KEY=val environment variables).
  • Repositories — connect a git repository by URL. Build runs docker build <git-url> (the Docker daemon clones the repo itself, so the repo needs a Dockerfile) and tags the result <name>:latest, streaming the build output live. After a build you can launch containers from it. Private repos work with URLs that embed credentials or over ssh if the daemon host has keys set up. Connected repos are stored in data/repos.json and can be reordered by dragging the handle.

Notes

  • The embedded backend has no authentication — it exposes full Docker control. It only ever binds to 127.0.0.1 on a random port for the Electron window; never make it listen on a network interface.