Skip to Content

Introduction

What Zekno is, how it keeps your keys on your side, and where the project stands today.

Pre-alpha

Nothing here is ready for production use, and the security design has not been independently audited. The desktop app, the server agent and the core library are not written yet. These docs describe the design they will follow.

What Zekno is

Zekno gives a team the convenience of a managed platform (a desktop app, teammates with roles, deploy history) on servers they own, starting with Hetzner and Docker Compose.

It is built so that a full compromise of the Zekno service yields no customer secrets and no ability to run code on customer servers.

PropertyWhat it means
Client-side encryptionSecrets are encrypted on your machine. The hosted service only ever stores ciphertext.
Signed deploysEvery deploy is signed on your machine. Your servers refuse anything your team didn't sign.
Auditable client codeEverything that runs on your side is in the public repository.
No runtime dependencyYour servers don't need Zekno to keep your apps running.

The three parts

PartRuns onKeys it holdsSees plaintext secretsCan authorize a deploy
Desktop appA team member's machineTeam signing keyYesYes
Control planeZekno's infrastructureNoneNoNo
AgentYour serverServer decryption keyYesNo, it only verifies

How a deploy works

  1. Encrypt. The desktop app encrypts each secret for your server's public key before anything leaves your machine.
  2. Sign. The app signs the deploy with your team's key.
  3. Relay. The control plane stores the sealed, signed packet. It has no key to open it. Your server's agent pulls it over an outbound connection.
  4. Verify. The agent checks the signature before doing anything, and refuses a deploy your team did not sign.
  5. Run. The server decrypts with its own key and starts your containers.

What it protects against

ScenarioOutcomeWhy
An attacker copies the Zekno databaseNo secrets exposedIt holds only ciphertext
An attacker controls Zekno and pushes a deployDeploy rejectedServers reject anything not signed by a team key
Zekno goes downApps keep runningServers don't depend on it at runtime

What it does not protect against

ScenarioWhy
A team member's machine is compromisedThat machine holds a signing key
One of your servers is compromisedSecrets are plaintext in memory where the app runs
A Zekno app or agent release is tampered withThe client is the trust anchor. Mitigated by public code and signed releases

Metadata

The control plane still sees metadata: server addresses, app names, deploy times and team membership.

What exists today

PartStatus
Website (apps/web)Landing page and these docs; the signed-in dashboard is planned
Core library (packages/core): encryption, signing, manifest formatPlanned
Server agent (apps/agent)Planned
Desktop app (apps/desktop)Planned
Control planeHosted by Zekno, closed source

Everything that runs on your device or in your browser is open source under the MIT license. The control plane is closed because it is the hosted service Zekno sells; the design means you don't have to trust it.

Where to go next