Docs · DoCatz

Containers and compose projects

The DoCatz container list — favorites, groups, filters — a container's Info, Logs, Terminal, Files and Stats, a compose project's page, what each compose button runs, the compose editor, Monitoring and Commands.

Containers (mod+1) is where you spend most of your time. On the left, every container on DoCatz’s engine, grouped by compose project; on the right, the page of the project or container you picked.

When the engine is not running, the page says so — The engine is stopped or The engine is not set up yet — with Start engine (or Set up and start) and Engine settings. See The engine.

The list

The header shows Containers, a pill with how many run, a button to fold or unfold every project, the ⇅ menu and + (Open a compose file, mod+O). Below it, Find (mod+F) matches a container’s name, image, project and service.

The ⇅ menu:

Item Does
Running only Hides stopped containers. The pill then reads Running only ✕; click it to show everything again.
Sort by default (drag & drop order) / Sort by name Your own order, or A to Z.
Group by default (your groups) / No grouping Your groups and Favorites, or one flat list of projects.

The list is split into sections, in this order:

  1. Favorites
  2. your own groups
  3. Other projects (or All projects with No grouping)
  4. Other containers — the ones that do not belong to a compose project
  5. DevCatz Services — on Windows onlysee below

A project row

A compose project shows its name (click it for the project page), a fold chevron, how many of its containers run (2/3) and a star (Add to Favorites / Remove from Favorites). When you hover it:

  • a key icon, .env in DoCatz — the project’s own .env in DoCatz,
  • ▶ — docker compose up,
  • ■ — docker compose stop.

While a compose command runs for the project, a spinner shows; hover it and it turns into ✕ to cancel.

A container row

Each container shows its mark (the framework it is built from, or the image’s logo), a status dot, its name, an unhealthy badge when its health check fails, image · ports (or built from source · laravel, say), and its CPU and memory. Hover it to open its URL, Stop or Start it, or Restart it.

Favorites and groups

Drag a project to reorder it, or drop it onto a group or Favorites. Right-click a project for Add to Favorites, the list of your groups, New group… and Remove from <group>. Right-click a group’s heading for Rename group… and Delete group (projects stay). Your arrangement is saved in DoCatz’s settings; the ⇅ choices are remembered by the window.

Nothing there yet

With no containers at all, the list says No containers yet. Open a compose file, or run one from a terminal with docker --context docatz run …. Anything you start from a terminal on DoCatz’s engine shows up here on its own.

A container

Click a container to open its page. The header has its name, its state and health, image · status, and its URL — click to open it in your browser. A database, cache or mail server shows its inner address instead (such as postgres:5432): Not a web page: the other services of its project reach it at this address. A database also shows its address on this computer (127.0.0.1:15432 …). Which containers get a URL is explained in Domains and environments; the database addresses in Databases on this computer.

The buttons: Stop or Start, Restart, Pause (while it runs) or Resume (while paused), and the trash icon, Remove the container. Removing asks Remove <name>? — The container and its own files go. Images stay; named volumes stay unless you tick the box — with Also remove its anonymous volumes.

The page has five tabs: Info, Logs, Terminal, Files and Stats. At the right end of the tab row, a container can have a button that hands it to a sibling app:

  • Open in DBCatz — on a database container. It opens that database in DBCatz, signed in with the user and password the container was started with — see DBCatz.
  • Open in DialCatz — on an API’s own container, when its project has routes DialCatz can import. DialCatz opens its import for this project with this service picked — see DialCatz for which containers get it.

The buttons keep their label; when the window is narrow, the tabs beside them scroll sideways.

Info

  • Container — the image (and its platform), the compose project and service with its folder, the command, the restart policy (restarted 3×), the exit code, when it started, and its ID (click to copy).
  • Ports and domain — each port as 8000/tcp → localhost:8000, or not published. Domain shows the URL with Copy and Edit (Change the name in front of .docatz); a custom badge marks a name you chose. See Change a name.
  • Mounts — each mount’s type, its source (a bind mount can be shown in FinderFile Explorer) and whether it is read-only.
  • Networks — each network and the container’s IP on it.
  • Environment — the variable names, with values hidden as •••. Show values shows them (Values can be passwords and keys); Hide values hides them again.

Logs

The log follows live, starting with the last 500 lines and keeping up to 5,000. It reads like a code editor: line numbers, coloured times, levels and URLs, and a red or amber mark on errors.

  • Filter lines keeps the lines that match; stderr only keeps the error stream; Times shows each line’s time.
  • Copy copies what is shown; Clear empties the view.
  • Click a line to pick it, shift-click to pick a range (3 picked · clear).
  • ✦ Explain with AI (when AI and that feature are on) explains the picked lines — or, with nothing picked, the last 80 — and suggests a fix. What it sends is on AI in DoCatz.

When the container stops, the log ends with — the container stopped; its log ends here —.

Terminal

A shell inside the container (docker exec with a terminal): bash when the image has it, else sh. You see Opening a shell…, then the prompt. When you leave the shell it says The shell ended. with Reconnect. A stopped container says Start the container to open a terminal in it.

Files

A file browser inside the container, starting at /. ↑ goes up, the breadcrumbs jump back, Refresh reads the folder again. The columns are Name, Size, Modified and Mode. Save (Save to this computer as .tar) saves a file or a whole folder as a .tar archive, to Downloads by default.

A minimal image without ls cannot be browsed: This container has no ls (a minimal image): its files cannot be listed.

Stats

  • CPU — of one core = 100%, so a container busy on two cores shows 200%.
  • Memory — used, of its limit.
  • Network — received and sent since the container started.
  • Disk I/O — read and written, and the number of processes.

CPU and memory also have charts, every 5 s, the last 10 minutes. They fill while DoCatz is open. A stopped container says Stats show while the container runs.

A compose project

Click a project’s name to open its page. The header shows the name, the star, 2/3 running and Compose project · <folder>, with:

  • Build & Up — docker compose up –build: rebuild the images, then recreate what changed (a changed .env included),
  • Up — hidden when every service is up,
  • Restart and Stop — when something runs,
  • Cancel — while a command runs; what it already started or stopped stays so,
  • ✕ — close the page.

Open in DialCatz is not on the project’s page: it sits on the API’s own container (see A container).

The tabs are General, Environment, Domains, Containers and Monitoring.

General

  • Project — the name, the folder and the services.
  • Frameworks — What each service is built from (found in its build folder, the way DevCatz detects a site), or the image it runs. DoCatz reads a service’s build folder — package.json, composer.json, go.mod, Cargo.toml, Python requirements, monorepo workspaces — and recognises Laravel, Symfony, WordPress, Next, Nuxt, Vite, Astro, SvelteKit, NestJS, Django, FastAPI, Flask, Go, Rust and more.
  • Compose files — each file the project was started with, with Open (edit it in the compose editor) and Show. A project started some other way says This project was not started from a compose file DoCatz can find.
  • Deploy — Runs with the project’s .env in DoCatz (Environment tab) when it has one. The buttons: Build & Up, Up, Build, Pull, Restart, Stop, Down… and Cancel.

Down… asks Take <project> down? — docker compose down stops and removes <project>’s containers and networks. Its volumes (your data) stay. — and Down goes ahead.

Live reload on Windows

For a project on a Windows drive, General has a fold-out, Live reload inside the containers needs polling on Windows. Files on a Windows drive send no change events into WSL, so file watchers inside a container do not notice your edits. Either let the watcher poll — CHOKIDAR_USEPOLLING=true or WATCHPACK_POLLING=true for Node tools, nodemon -L, poll = true for Go’s air — or keep the project inside WSL.

Environment

The project’s own .env in DoCatz: the values its containers get when DoCatz runs them, kept apart from the project’s .env file. All of it is in A project’s own .env in DoCatz.

Domains

Each service answers at its own name, no published port needed. Each service shows its URL with Edit; change the part before .docatz and press Save, or Default to go back. A database or cache says not a web page — the other services reach it at postgres:5432; a database adds this computer at 127.0.0.1:15432 with Open in DBCatz. See Domains and environments.

Containers

A table of the project’s services — Service, Image, State, CPU and Memory. Click a row for that container’s page.

Project monitoring

The Monitoring tab: totals for CPU (all services · one core = 100%), Memory and Network, and charts of CPU, memory and network per service, every 5 s, the last 10 minutes. The charts fill while DoCatz is open and start empty after a restart.

What the compose buttons run

Every button runs DoCatz’s own docker compose against DoCatz’s engine, in the compose file’s folder:

Button Runs
Up docker compose up --detach --remove-orphans
Build & Up docker compose up --detach --build --remove-orphans
Build docker compose build
Pull docker compose pull
Restart docker compose restart
Stop docker compose stop
Down docker compose down

When the project has a .env in DoCatz, DoCatz adds it to the run. The output streams into a panel under the page: its first line is the command ($ docker compose …), with Using <project>’s .env in DoCatz when that applies, then every line compose prints. Cancel stops the command; ✕ closes the panel.

The compose editor

File → Open Compose File… (mod+O), the + in the list, or Open on a project’s compose file opens the Compose dialog. Open… picks a .yml or .yaml file; with none open it says Pick a docker-compose.yml or compose.yaml.

  • The file’s name is at the top (click it to show the file); a not saved badge marks unsaved edits.
  • The file opens in a code editor: YAML in colours (the same palette as the container logs), line numbers, folding, undo, and Tab to indent by two spaces.
  • Find & Replace — the button at the top, mod+F, or mod+alt+Fmod+H — opens a panel above the file in two rows: Find with Next, Previous and All, then Replace with Replace and Replace All, and the switches Match Case, Regexp and By Word. esc closes the panel first, then the dialog.
  • Save (mod+S) writes the project’s own file. Beside it: Saved in the project’s folder., or Up, Build and the rest save it first. while there are changes.
  • Pull, Build, Stop, Down (Removes the containers and networks; volumes stay) and Up run on it, with the output below. Running saves the file first. With the engine off: Start the engine to run it.
  • Closing with changes not saved asks Save the changes? — Up and Build use the file as it is saved. — with Keep editing, Discard and Save.
  • With AI on, ✦ Write with AI drafts a change from a sentence, and after a failed run ✦ Fix with AI suggests a fix. The draft shows next to the file, and only Use this puts it in the editor — see AI in DoCatz.

The editor only saves compose files, Dockerfiles, .dockerignore and .env files, up to 2 MB.

A docatz://compose?path=… link (DevCatz’s Open in DoCatz uses it) never runs anything: when the project already runs, DoCatz puts it in the search; when it does not, the compose editor opens with the file, ready for Up.

Monitoring

Monitoring (mod+7) is the whole engine at a glance, every 5 seconds:

  • CPU — of all the VM’s CPUs together (four CPUs = 400%),
  • Memory — of the VM’s memory,
  • Engine — how many containers run of the total, the Docker version and the VM manager,
  • CPU and memory charts per project, 10 minutes,
  • Processes — every running container, grouped by Containers or Projects, sortable by Name, CPU, Memory and Network.

Commands

Commands (mod+8) is a page of ready-made docker commands, each with Copy and Run. Run opens TerminalPowerShell with DoCatz’s docker first on the PATH and the docatz context, so it works whatever your default engine is.

Group For example
Use DoCatz from a terminal docker context use docatz, docker --context docatz ps, a DOCKER_HOST line for one terminal
Compose docker compose up -d --build, following the logs, recreating after a .env change
Inside a container A shell, its logs, docker cp, curl -I its domain — for the running container you pick at the top
The Linux VM A shell in the Lima VM (LIMA_HOME=~/.docatz/vm ~/.docatz/lima/bin/limactl shell docatz)A shell in the distro (wsl -d docatz)
Builds docker build, a build for both Intel and Apple siliconx64 and ARM PCs, running an amd64 image
Clean up docker system df, docker system prune, docker builder prune

DevCatz Services

The DevCatz Services group exists on Windows only.

On Windows, DevCatz runs some of its services on DoCatz’s engine: its message gateways — Postal, ntfy, Gotify, Jasmin, Telegram Bot API and WAHA — and the servers that have no Windows build of their own — Typesense, Sonic and Sockudo. DoCatz shows them in their own group, DevCatz Services, last in the list and folded until you open it. Without DevCatz the group is hidden.

The group is read-only, because DevCatz installs, starts, stops and updates these services. A row says not installed or how many of its containers run; hover it to open the service’s web UI, or Open <name> in DevCatz. A service’s page says DevCatz service <version> · read-only, has a Managed by DevCatz card with Open in DevCatz and Open web UI, and has no Environment tab. Its containers have Open in DevCatz instead of the Start and Stop buttons, and no Open in DialCatz. Open in DevCatz goes to that service’s own page in DevCatz.

When DevCatz is not installed, Open in DevCatz offers to install it — see When a sibling is not installed.

Last updated 2026-11-03