A cloud realm, for aerial sailors. (https://en.wikipedia.org/wiki/Magonia)
Find a file
Aclius 44616c8260
All checks were successful
/ fmt_lint (stemcells) (push) Successful in 54s
feat(dev_container): add go, git-cliff and apko in mise tools
2026-06-24 14:17:49 +00:00
.devcontainer chore(global): 🔧 update devcontainer.json wwith new container 2026-05-21 11:14:27 +00:00
.forgejo ci(global): fix CI 2026-06-02 10:45:22 +00:00
.vscode chore(global): 🔧 add new scope for convetional commit 2026-05-22 14:33:26 +00:00
assets docs(global): 📝 update project readme 2026-04-12 22:18:59 +00:00
mgn_ci feat(dev_container): add go, git-cliff and apko in mise tools 2026-06-24 14:17:49 +00:00
stemcells chore: 🎨 automatic formatting 2026-06-22 17:29:15 +00:00
.editorconfig chore(global): 🔧 add various global configuration files 2026-03-15 13:58:03 +01:00
.gitignore build(edge_stemcell): 👷 switch to pants 2026-03-15 21:11:29 +00:00
.hadolint.yaml build(stemcells): 👷 update build system for stemcells 2026-04-19 16:20:18 +00:00
.yamlfmt build(global): add .yamlfmt 2026-06-01 15:18:37 +00:00
mise.toml build(global): remove git-cliff from mise tools 2026-06-20 16:17:19 +00:00
pants.toml build(global): remove yamllint from pants.toml 2026-06-02 08:15:42 +00:00
README.md docs(global): 📝 correct mistake in readme 2026-05-21 13:27:59 +00:00

Magonia

This is the main repo of the magonia project. The end goal is to propose 2 things

  1. A immutable lightweight and customisable private cloud plateform.
  2. a cli tool to bootstrap and interact with the plateform

This project is still a work in progress, and not ready for production

Plateform architecture

Magonia is architectured arround 3 node :

  • access nodes : running panglin, its the entrypoint for customers. It need to be on a public net, in the cloud or on premise.
  • Compute node: running incus, it run all workload, in vm or in LXC/OCI containers. its configured by default with a and a ssh bastion VM and a OIDC vm, with a web UI. It can be located on any private networt that can reach internet
  • a storage node. It can be located on any private networt that can reach internet

Here is a simple diagram

Stemcells

Node and vm in magonia deployed using preconfigured system image derivated from fedora-bootc, called "stemcells". For more information, check the stemcells directory readme

Mgn-cli

This plateform will have a CLI tool toautomat vaious operation such as

  • Initial deployment of core the plateform components
  • Deployment of addon services ( forge, monitoring, vaut , etc)
  • deployment of a CaaS offering with virtual k8s clusters
  • and a lot of cool stuff !

Th cli will be written in go. More info on the 'tools' readme !

Production workflow

To product artifact, i use mise-en-place and pantsbuild. The global logic is the following

  1. pantsbuild is the main build engine. Its the only one buidling and publishing main artifact, its also used for formatting,lint and test wherever its posible.
  2. Mise-en-place handle thing around pantsbuild, such has env variable and dev tools. Mise tasks are used to run pants command, and do what i cant do with pants ( automatic versioning and changelog generation, for example).

mise task list

see below to see available task for subproject

stemcells

  • mise run //stemcells:fmt -- format the code
  • mise run //stemcells:lint -- lint the code
  • mise run //stemcells:build -- build OCI images
  • mise run //stemcells:test -- run CST test on builded artifact
  • mise run //stemcells:scan -- generate SBOMs and produce CVE report
  • mise run //stemcells:bump -- bump version tag

Roadmap

Here is the roadmap with my progress so far

Stemcell

  • stemcell for access node without pangolin compatible with hetzner provider
  • confirm compatibility between pangolin and stemcell setup
  • stemcell for compute node with incus deploed on prem, conected to pangolin
  • stemcell for compute node VM
  • core stemcell with base config
  • create a storage stemcell
  • integrate CI process

Mgn-cli

  • add a templating fonction to generate conf files
  • Find how to integrate IaC tools in the cli ( terraform or Pulumi)
  • add fuction to interact with incus API
  • integrate CI process

miscellaneous

  • Find the best way to povision pangolin default automatically
  • Find the best way to povision incus default config and bootsrap core service automatically
  • define what technologies will be used for the storage stemcell and for what objectives
  • find a way to have persistent storage for data and ephermeral storage for config
  • find a way to handle disk encryption for node