Introducing Korta: Configuration Management in Markdown

Managing servers should not require a complicated stack just to install packages, create users, or keep services running.

Those tasks are familiar to anyone who operates infrastructure. Yet the knowledge behind them often ends up scattered across shell scripts, internal wikis, configuration files, and someone’s memory. Over time, it becomes harder to answer a simple question: What is supposed to be running on this server?

Korta is our attempt to make that answer easier to write, review, and apply.

Korta is a command-line tool for configuration management in Markdown. You describe the desired state of your servers in a role, preview what would change, and apply it over SSH.

# Packages - nginx, curl # Users - deploy added to apps group, shell /bin/bash # Directories - /opt/app owned by deploy:apps, mode 0750 # Services - nginx started, enabled 

Then run:

korta plan role.md -i hosts.md korta apply role.md -i hosts.md 

The plan checks your hosts and shows the changes Korta would make. The apply command plans first, asks for confirmation, and then carries out the changes.

There is no agent to install on each server. Korta connects over SSH and uses root or passwordless sudo.

Configuration you can read

A role is a Markdown document organized around the things you want to manage. You can describe users, groups, packages, directories, files, services, kernel settings, firewall rules, updates, and custom commands.

Your hosts live in a Markdown inventory:

# Production identity: ~/.ssh/prod_ed25519 - web1 deploy@web1.internal env=prod # Staging identity: ~/.ssh/staging_ed25519 - web2 deploy@web2.internal env=staging 

You can use labels to select a subset:

korta apply role.md -i hosts.md --limit env=staging 

Markdown gives teams a familiar place to keep configuration alongside the context that explains it. A role can live in Git, be reviewed in a pull request, and be read by the next person responsible for the system.

Who Korta is for

Korta is for people who manage Linux servers and want a straightforward way to describe and maintain their configuration.

That includes developers running a few virtual machines, small teams maintaining their own infrastructure, platform engineers who want reviewable roles, and consultants managing servers across multiple environments.

It is especially useful when you want to keep control of your servers and use the SSH access you already have. The core CLI can run directly from your machine without a central manager.

Korta supports Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux, and CentOS Stream. Hosts need SSH and appropriate privileges; they do not need a Korta agent.

Why now

More teams are reexamining how they run software. Some want more control over infrastructure costs. Others want to run applications and databases on their own servers, or simply make existing systems easier to understand and maintain.

At the same time, teams are increasingly using AI to help write operational code. That makes review more important: generated configuration still needs to be understandable, validated, and approved by the people responsible for the machines.

Korta starts with a workflow built around those needs:

  1. Write the desired state.
  2. See what would change.
  3. Review and approve it.
  4. Apply it to the selected hosts.

The goal is to make routine server work easier to share and repeat, while keeping the operator in control.

Why open source

Server configuration is foundational. The tool that interprets it should be something people can inspect, understand, and improve.

We want Korta’s core to be open source so developers and operators can see how roles are parsed, how plans are produced, and what runs over SSH. We also want teams to be able to use the CLI in their own environments and contribute fixes, ideas, and support for real-world use cases.

Open source is also a practical way to build a better infrastructure tool. Servers, operating systems, and operational requirements vary widely. The people using Korta will encounter cases we have not, and the project will be stronger with their feedback and contributions.

The open-source core includes the korta CLI, Markdown role engine, inventory parser, SSH client, and operating-system detection.

Korta Enterprise builds on that core for teams that need a shared manager. It adds a web console and API, approval and audit workflows, an encrypted vault, an AI role assistant, and deployment features for databases and applications. The same CLI and role files work with the Enterprise manager.

Where to start

Write a small role for a staging server, add the host to an inventory, and run korta plan. Review the output, then apply it when you are ready.

The core project is at github.com/nexusrun/korta (https://github.com/nexusrun/korta). We’re looking forward to sharing it and hearing what you build with it.