nauka नौका
Docker

nauka

नौका · “boat”

Docker in the terminal: containers, compose, images, volumes and networks, with what's attached to what.

v0.1.1 latest2 releases1 decisions recordedMIT license

#nauka

Docker in the terminal: containers, compose projects, images, volumes, networks and disk use, with what's attached to what. Start, stop, open a shell, follow logs, bring a compose project up or down, prune, all from the keyboard.

nauka (नौका) is Sanskrit for a boat.

 Containers 4   Compose 1   Images 15   Volumes 6   Networks 4   System     nauka · docker 29.9.1 · 3 running
╭─ Containers · 3 running · 1 stopped ───────────╮╭─ onadssuper-postgres-1 ─────────────────────────╮
│    NAME          IMAGE              PORTS  CPU │ │ 1 Overview  2 Logs  3 Stats  4 Env  5 Inspect  │
│ ▌● postgres-1    pgvector/pgvector  54320  0.5%│ │ status   up 25h · healthy                      │
│  ● redis-1       redis:8.2-alpine   63790  0.5%│ │ compose  onadssuper / postgres                  │
│  ● mailpit-1     axllent/mailpit    8025   0.0%│ │ VOLUMES · 2                                    │
│  ○ aura-local    redis:7-alpine           exited│ │  󰋊 onadssuper_postgres-data → /var/lib/...     │
╰────────────────────────────────────────────────╯│ NETWORKS · 1                                   │
                                                  │  󰛳 onadssuper_default 172.18.0.4 · with redis-1 │
 containers  s start/stop  r restart  p pause  e shell  l logs  1-6 details  d remove  ? keys

#Sections

Tab / Shift+Tab move between them. Each is a list on the left and the selected item's details on the right; Enter focuses the details, where Enter on a linked volume, network, image or container jumps to it in its own section, and Backspace comes back.

#Safe by default

Anything that deletes asks first and says what goes (a volume's size, the containers a down removes, how much a prune frees). A volume or image a container still uses isn't removed: nauka says which containers to remove first. Secrets in Env are hidden until you ask.

#Keys

KeyDoes
j / k, Home / End, Ctrl+d / Ctrl+uMove
Tab / Shift+TabSwitch section
EnterFocus the details; on a link, jump to it
BackspaceGo back where you jumped from (up a folder in Files)
EscLeave the details, clear the search, or quit
/Search the list
Ctrl+rReload now (it reloads every 2 s)
?Show every key
qQuit

Containers: s start/stop · r restart · p pause/unpause · e shell (bash, else sh) · l follow logs · o open its published port in the browser · d remove · 1–6 details · v show secrets in Env · c copy a file out (Files).

Compose: u up · d down · r restart · b build · p pull · l logs · e edit · y compose file.

Images: r run · p pull · H layers · d remove · P prune dangling.

Volumes: f browse · n new · d remove · P prune unused.

Networks: c connect · x disconnect · n new · d remove · P prune.

System: P prune (pick what).

#Install

Needs Linux and the docker command (with the compose plugin for the Compose section), and access to the daemon (the docker group, or rootless Docker). nauka runs the docker command for everything, so it follows your docker context exactly.

curl -fsSL https://raw.githubusercontent.com/Theyashsawarkar/nauka/main/install.sh | bash

downloads the release binary (or builds it with Go) into ~/.local/share/nauka and links ~/.local/bin/nauka. Or make install (PREFIX, DESTDIR), or go install github.com/Theyashsawarkar/nauka/cmd/nauka@latest.

#As a tmux plugin

set -g @plugin 'Theyashsawarkar/nauka'

prefix D opens nauka in a popup; D inside closes it. Without nauka on your PATH, the plugin builds it with Go the first time.

OptionDefault
@nauka-keyDthe key after the prefix; none binds nothing
@nauka-width / @nauka-height90% / 88%popup size
@nauka-title nauka popup title
@nauka-launcheryour own popup command instead of display-popup; it gets display-popup's arguments (-E -d DIR -T TITLE CMD)

To open it from a status-line click, open a popup that runs ~/.tmux/plugins/nauka/scripts/nauka-run.

#Colours

nauka follows varna's desktop theme (~/.local/state/varna/palette.json, a tools.nauka pick if the theme has one) and changes live with it; without varna it is Catppuccin Mocha. Icons need a Nerd Font; NO_NERD_FONT=1 turns them off.

#License

MIT