1 unstable release

new 0.1.0 Nov 1, 2024

#204 in HTTP server

Download history 117/week @ 2024-10-28

117 downloads per month
Used in 2 crates

Apache-2.0

1MB
4K SLoC

Rust 3K SLoC // 0.0% comments TypeScript 772 SLoC // 0.0% comments Vue 138 SLoC Shell 64 SLoC // 0.1% comments JavaScript 58 SLoC // 0.0% comments

Konarr

GitHub Crates.io Version Crates.io Downloads (recent) Docs.rs GitHub Stars GitHub Issues Licence

⚠️ Work in progress and early stages of development ⚠️

Overview

Konarr is a simple, easy-to-use web interface for monitoring your servers, clusters, and containers supply chain for dependencies and vulnerabilities. It is designed to be lightweight and fast, with minimal resource usage.

It is written in Rust, uses Rocker for the web server, and Vue.js for the front-end.

Origin Story

This project came out of the need to monitor my homelab for insecure dependencies / components. All the products that offer this are proprietary and cost money to use.

In December 2021, Log4Shell (CVE-2021-44228) came dropped and like most of the world I was running around trying to find if I had a service using it. Turned out I was but it was a painful process in finding if I was even using it.

Name Origin:

Konarr is from the name Konar quo Maten (translated as Konar the Hunter) from the game Old School Runescape.

🖼️ Screenshots

project-view

project-view-dark

More screenshots

Single Project Summary server-view

Container Summary container-view

Dependencies View dependencies-view

✨ Features

  • Simple, easy-to-use web interface
  • Blazing fast performance with minimal resource usage (written in Rust 🦀)
  • Real-time monitoring of your containers
    • Uses Syft for image scanning (with more scanners to come)
  • Orchestration support
    • Docker / Podman
    • Docker Compose / Docker Swarm
    • 🚧 Kubernetes support is planned
  • Software Bill of Materials (SBOM) for your containers
  • 🚧 Supply chain attack monitoring

🚀 Quick Start

This small script will install the Konarr server and agent on your machine using containers.

curl https://raw.githubusercontent.com/42ByteLabs/konarr/refs/heads/main/install.sh | bash -s

📚 Documentation

🚧 Work in progress 🚧

🛠️ Installation

Konarr can be installed using Docker, Podman, or Cargo (native).

Konarr using Compose

When using Docker/Podman Compose, the Konarr server and agent will be installed on your machine using containers.

Cloning the repository
# Clone the Konarr repository from GitHub
git clone https://github.com/42ByteLabs/konarr.git && cd konarr
# Update submodules
git submodule update --init --recursive

Starting the server and agent:

docker-compose up -d

💻 Konarr Server

The Konarr Server is the API and web interface that is used to monitor your containers. It can be installed using Docker/Podman or Cargo (native).

Konarr Server using Docker

docker run -it --rm \
    -p 9000:9000 \
    -v ./data:/data \
    -v ./config:/config \
    ghcr.io/42bytelabs/konarr:v0.1.0
Description

This command does the following:

  • -it --rm - This is a common set of flags to pass to docker run. The -it flag is short for --interactive and --tty, which tells Docker to open an interactive terminal inside the container. The --rm flag tells Docker to automatically remove the container when it stops running.
  • -p 9000:9000 - This tells Docker to map port 9000 on the host machine to port 9000 on the container. This is the port that the Konarr server listens on by default.
  • -v ./data:/data - This tells Docker to mount the ./data directory on the host machine to the /data directory on the container. This is where Konarr stores its data by default.
  • -v ./config:/config - This tells Docker to mount the ./config directory on the host machine to the /config directory on the container. This is where Konarr looks for its configuration file by default.
  • ghcr.io/42bytelabs/konarr:v0.1.0 - This is the name of the Docker image that we want to run. The ghcr.io/42bytelabs/konarr part is the name of the repository on GitHub Container Registry, and the v0.1.0 part is the tag of the image that we want to run.

Install Server via Cargo

The konarr-server can be installed using Cargo but it is not recommended for production use.

cargo install konarr-server

🕵️ Konarr Agent

The Konarr Agent is the Konarr CLI that is used to monitor your containers. It is written in Rust and is available as a binary or as a Docker image.

Running Agent in Docker

docker run -it --rm \
    -e KONARR_INSTANCE \
    -e KONARR_AGENT_TOKEN \
    -e KONARR_PROJECT_ID \
    ghcr.io/42bytelabs/konarr-agent:v0.1.0

Install Agent via Cargo

The konarr-cli is a Rust binary that can be installed via Cargo.

cargo install konarr-cli

From Source

# Clone the Konarr repository from GitHub
git clone https://github.com/42ByteLabs/konarr.git && cd konarr
# Update submodules (client/frontend is a submodule)
git submodule update --init --recursive

# Build frontend
cd client && npm install && npm run build && cd ..
# Build and run server
cargo run -p konarr-server --release -- -c ./konarr.yml

❤️ Maintainers / Contributors

Mathew Payne
Mathew Payne

💻 👀

🦸 Support

Please create GitHub Issues if there are bugs or feature requests.

This project uses Semantic Versioning (v2) and with major releases, breaking changes will occur.

📓 License

This project is licensed under the terms of the Apache2 open source license. Please refer to Apache2 for the full terms.

Dependencies

~10–25MB
~381K SLoC