Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

193 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

morzer

CI codecov Docs Go Licence

A CLI that manages the lifecycle of a self-hosted product on a single Linux machine running Docker Compose: install, configure, update, roll back, back up, restore, diagnose.

The unit of delivery is a release bundle — an immutable archive containing a manifest, Compose files, configuration templates and lifecycle hooks. The unit of management is an installation — the state of one deployment on one machine.

What it is not

Not a container orchestrator, an infrastructure provisioner, a secret manager, a backup engine, a workflow engine, or a CI system. It coordinates Docker Compose, SOPS, age, systemd and the release's own hooks; it owns ordering, atomicity, verification and reporting.

That boundary is the point. Everything it does is a sequence of steps against tools that already exist, and every step can be planned with --dry-run, journaled, verified afterwards, and undone.

Try it

just demo            # a throwaway installation under ./tmp, touching nothing real
just demo-plan       # what `apply` would do, as a step list with a config diff
just demo-recovery   # delete an installation and rebuild it from an offline key

Building needs Go 1.25+. At runtime a machine needs docker, docker compose and sops; the versions a release requires are declared in its manifest, checked in preflight and reported by doctor.

Documentation

https://morzecrew.github.io/morzer/

Your first deployment Empty machine to running product, on a throwaway directory
Operating Updating, rolling back, secrets, backups, offline installs, recovery
Authoring a bundle Shipping your own product through this
Reference Commands, exit codes, the manifest schema, the hook ABI
Explanation Architecture, the step engine, the secrets model

Status

init, apply, update, rollback, status, doctor, backup, restore, secret, release and installation all work against a real bundle, delivered as a directory, a tar.zst, an HTTPS URL or an OCI artifact, and optionally signed. An acceptance run installs, updates and rolls back a real deployment against real Docker on every push.

Work that has not shipped is designed in rfcs/ before it is built, one numbered document per piece with its decisions recorded and its exclusions reasoned. rfcs/INDEX.md is the table of contents.

Contributing

CONTRIBUTING.md — the just ci loop, the commit convention, the architecture rules and how they are enforced. SECURITY.md states the threat model and the known gaps.

Changelog

CHANGELOG.md, in Keep a Changelog format.

Licence

MIT — see LICENSE.

Releases

Used by

Contributors

Languages