SkillAgentSearch skills...

Isaiah

Self-hostable clone of lazydocker for the web. Manage your Docker fleet with ease

Install / Use

/learn @will-moss/Isaiah
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <h1 align="center">Isaiah</h1> <p align="center"> Self-hostable clone of lazydocker for the web.<br />Manage your Docker fleet with ease </p> <p align="center"> <a href="#table-of-contents">Table of Contents</a> - <a href="#deployment-and-examples">Install</a> - <a href="#configuration">Configure</a> </p> </p>

| | | | |:-------------------------:|:-------------------------:|:-------------------------:| |<img width="1604" src="/assets/CAPTURE-1.png"/> | <img width="1604" src="/assets/CAPTURE-2.png"/> | <img width="1604" src="/assets/CAPTURE-3.png" /> | |<img width="1604" src="/assets/CAPTURE-4.png"/> | <img width="1604" src="/assets/CAPTURE-5.png"/> | <img width="1604" src="/assets/CAPTURE-6.png" /> | |<img width="1604" src="/assets/CAPTURE-7.png"/> | <img width="1604" src="/assets/CAPTURE-8.png"/> | <img width="1604" src="/assets/CAPTURE-9.png" /> | |<img width="1604" src="/assets/CAPTURE-10.png"/> | <img width="1604" src="/assets/CAPTURE-11.png"/> | <img width="1604" src="/assets/CAPTURE-12.png"/> | |<img width="1604" src="/assets/CAPTURE-13.png"/> | <img width="1604" src="/assets/CAPTURE-14.png"/> | <img width="1604" src="/assets/CAPTURE-15.png"/> |

Table of Contents

Introduction

Isaiah is a self-hostable service that enables you to manage all your Docker resources on a remote server. It is an attempt at recreating the lazydocker command-line application from scratch, while making it available as a web application without compromising on the features.

Features

Isaiah has all these features implemented :

  • For stacks :
    • Bulk update, Bulk pause, Bulk unpause, Bulk restart, Bulk down
    • Up, Down, Pause, Unpause, Stop, Restart, Update
    • Create and Edit stacks using docker-compose.yml files in your browser
    • Inspect (live logs, docker-compose.yml, services)
  • For containers :
    • Bulk stop, Bulk remove, Bulk restart, Bulk update, Prune
    • Remove, Pause, Unpause, Restart, Rename, Update, Edit, Open in browser
    • Open a shell inside the container (from your browser)
    • Inspect (live logs, stats, env, full configuration, top)
  • For images :
    • Prune
    • Remove
    • Run (create and start a container using the image)
    • Open on Docker Hub
    • Pull a new image (from Docker Hub)
    • Bulk pull all latest images (from Docker Hub)
    • Inspect (full configuration, layers)
  • For volumes :
    • Prune
    • Remove
    • Browse volume files (from your browser, via shell)
    • Inspect (full configuration)
  • For networks :
    • Prune
    • Remove
    • Inspect (full configuration)
  • Built-in automatic Docker host discovery
  • Built-in authentication by master password (supplied raw or sha256-hashed)
  • Built-in authentication by forward proxy authentication headers (e.g. Authelia / Trusted SSO)
  • Built-in terminal emulator (with support for opening a shell on the server)
  • Responsive for Desktop, Tablet, and Mobile
  • Support for multiple layouts
  • Support for custom CSS theming (with variables for colors already defined)
  • Support for keyboard navigation
  • Support for mouse navigation
  • Support for search through Docker resources and container logs
  • Support for ascending and descending sort by any supported field
  • Support for customizable user settings (line-wrap, timestamps, prompt, etc.)
  • Support for custom Docker Host / Context.
  • Support for extensive configuration with .env
  • Support for HTTP and HTTPS
  • Support for standalone / proxy / multi-node / multi-host deployment

On top of these, one may appreciate the following characteristics :

  • Written in Go (for the server) and Vanilla JS (for the client)
  • Holds in a ~4 MB single file executable
  • Holds in a ~4 MB Docker image
  • Works exclusively over Websocket, with very little bandwidth usage
  • Uses the official Docker SDK for 100% of the Docker features

For more information, read about Configuration and Deployment.

Deployment and Examples

Please make sure that Docker 23.0.0+ is installed before proceeding, or consider updating beforehand.

If you are using the Stacks feature to manage Docker Compose stacks, please use Docker 26.0.0+.

The default password is : one-very-long-and-mysterious-secret

Deploy with Docker

You can run Isaiah with Docker on the command line very quickly.

You can use the following commands :

# Create a .env file
touch .env

# Edit .env file ...

# Option 1 : Run Isaiah attached to the terminal (useful for debugging)
docker run \
  --env-file .env \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -p <YOUR-PORT-MAPPING> \
  mosswill/isaiah

# Option 2 : Run Isaiah as a daemon
docker run \
  -d \
  --env-file .env \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -p <YOUR-PORT-MAPPING> \
  mosswill/isaiah

# Option 3 : Quick run with default settings
docker run -v /var/run/docker.sock:/var/run/docker.sock:ro -p 3000:3000 mosswill/isaiah

Note : Since version 1.36.2, all the Docker images are also mirrored on Github. You can run from ghcr.io/will-moss/isaiah:latest

Deploy with Docker Compose

To help you get started quickly, multiple example docker-compose files are located in the "examples/" directory.

Here's a description of every example :

  • docker-compose.simple.yml: Run Isaiah as a front-facing service on port 80., with environment variables supplied in the docker-compose file directly.

  • docker-compose.volume.yml: Run Isaiah as a front-facing service on port 80, with environment variables supplied as a .env file mounted as a volume.

  • docker-compose.ssl.yml: Run Isaiah as a front-facing service on port 443, listening for HTTPS requests, with certificate and private key provided as mounted volumes.

  • docker-compose.proxy.yml: A full setup with Isaiah running on port 80, behind a proxy listening on port 443.

  • docker-compose.traefik.yml: A sample setup with Isaiah running on port 80, behind a Traefik proxy listening on port 443.

  • docker-compose.agent.yml: A sample setup with Isaiah operating as an Agent in a multi-node deployment.

  • docker-compose.host.yml: A sample setup with Isaiah expecting to communicate with other hosts in a multi-host deployment.

When your docker-compose file is on point, you can use the following commands :

# Option 1 : Run Isaiah in the current terminal (useful for debugging)
docker-compose up

# Option 2 : Run Isaiah in a detached terminal (most common)
docker-compose up -d

# Show the logs written by Isaiah (useful for debugging)
docker logs <NAME-OF-YOUR-CONTAINER>

Warning : Always make sure that your Docker Unix socket is mounted, else Isaiah won't be able to communicate with the Docker API.

Note : Since version 1.36.2, all the Docker images are also mirrored on Github. You can pull from ghcr.io/will-moss/isaiah:latest

Deploy as a standalone application

You can deploy Isaiah as a standalone application, either by downloading an existing binary that fits your architecture, or by building the binary yourself on your machine.

Using an existing binary

An install script was created to help you install Isaiah in one line, from your terminal :

As always, check the content of every file you pipe in bash

# Multiple options are provided to cater to differences between
# operating systems and versions of curl.

# Option 1:
bash <(curl -s https://raw.githubusercontent.com/will-moss/isaiah/master/scripts/remote-install.sh)

# Option 2:
curl -s https://raw.githubusercontent.com/will-moss/isaiah/master/scripts/remote-install.sh > install.sh
chmod 755 install.sh
./install.sh

This script will try to automatically download a binary that matches your operating system and architecture, and put it in your /usr/[local/]bin/ directory to ease running it. Later on, you can run :

# Create a new .env file
touch .env

# Edit .env file ...

# Run Isaiah
isaiah

# Check current version
isaiah -v

In case you feel uncomfortable running the install script, you can head to the Releases, find the binary that meets your system, and install it yourself.

Building the binary manually

In this case, make sure that your system meets the following requirements :

  • You have Go 1.21 installed
  • You have Node 20+ installed along with npm and npx

When all the prerequisites are met, you can run the following commands in your terminal :

As always, check the content of everything you run inside your terminal

# Retrieve the code
git clone https://github.com/will-moss/isaiah
cd isaiah

# Run the local install script
./scripts/local-install.sh

# Move anywhere else, and create a dedicated directory
cd ~
mkdir isaiah-config
cd isaiah-config

# Create a new .env file
touch .env

# Edit .env file ...

# Option 1 : Run Isaiah in the current terminal
isaiah

# Option 2 : Run Isaiah as a background process
isaiah &

# Option
View on GitHub
GitHub Stars1.1k
CategoryDevelopment
Updated1d ago
Forks22

Languages

Go

Security Score

100/100

Audited on Mar 30, 2026

No findings