Skip to Content

Log viewer

Companion Hub includes a built-in log viewer in the dashboard under Settings → Logs. It shows the Hub’s own log, which is where installs, starts, and other app operations record why they failed. To read what a single app prints, use the CLI or Docker.

There are four places to read logs. Pick the narrowest one that covers what you’re debugging:

You wantWhereHow
Why an install, start, or update failedDashboardSettings → Logs
One app’s outputCLIcihub app logs <container-name>
The Hub stack’s own logsCLIcihub logs
Raw output from one containerDockerdocker logs -f <container-name>

Viewing logs in the dashboard

Go to Settings → Logs to see the Hub’s log stream in real time. The viewer follows new lines as they arrive and keeps the last 1,000 lines. Use the controls above the log:

  • Follow logs keeps the view scrolled to the newest line
  • Wrap lines wraps long lines instead of scrolling sideways
  • Max lines changes how many lines the viewer keeps
  • Download full logs saves the complete Hub log as ci-hub-logs.log — attach it when you ask for help

The viewer has no service filter or search box. To search, download the log and use your editor, or use the CLI with grep.

When an operation fails, the error message in the dashboard includes a see logs link that opens this page.

Viewing logs from the CLI

For a specific app — this is the one you want most of the time. First find the container name:

cihub app list

Then read its last 50 lines with timestamps, or pass --tail for more:

cihub app logs <container-name> --tail 200

cihub app logs takes a Docker container name, which can differ from the app’s name in the App Store when an app runs more than one container.

For the Hub stack itself, stream the logs of all its containers:

cihub logs

Add a service name to follow one container, for example cihub logs ci-hub.

Viewing logs via Docker

If you need raw Docker output, list the containers first:

docker ps --format '{{.Names}}'

Then follow one of them:

docker logs -f <container-name>

The Hub stack’s own containers, and what each one does:

ContainerRole
ci-hubBackend API + frontend (NestJS + React)
ci-hub-dbPostgreSQL database
ci-hub-queueRabbitMQ message queue
traefikReverse proxy and TLS
cloudflaredCloudflare tunnel; runs only on a Hub that is paired with a CI Account
hub-tailscaleTailscale sidecar for the Private VPN; runs only while the Private VPN is on

Hub installs that were upgraded from an earlier release may still use the older names ci-os-hub and ci-os-hub-queue for the first and third containers.

Log files on disk

Hub also writes its log to files under your data root, in <ROOT_FOLDER_HOST>/logs/:

FileContents
app.logEverything the Hub backend logs
error.logErrors only
hub-stack-update.logOne block per Hub stack update attempt, ending in result=ok or result=failed
desktop.logWhat the desktop app did to start the Hub stack: the Docker versions it found, port choices, and failed desktop updates. View logs on the startup screen shows it

Docker keeps each container’s own output separately, capped at five 10 MB files per container.

Since 0.3.0, Hub replaces passwords, secrets, API keys, tokens, and similar values in its own log with [REDACTED] before it writes them. That covers app.log, error.log, the container’s console output, and the download from Settings → Logs. It doesn’t rewrite lines an earlier release wrote, and it doesn’t filter your apps’ own logs (cihub app logs, docker logs). A log from an earlier release can still hold secrets, because at debug level it recorded Hub’s startup configuration. Read a log before you share it.

Getting more detail

The log level defaults to info. To capture more detail while you reproduce a problem, set Log level to debug in the dashboard settings, or, on a Hub you start with cihub up, set LOG_LEVEL=debug in the Hub env file and restart the Hub. The desktop app rewrites that file on every launch. Set it back afterward — debug logs grow quickly.

See Docker and Companion Hub for what each container in the Hub stack does.

Last updated on