A cloud realm, for aerial sailors. (https://en.wikipedia.org/wiki/Magonia)
Find a file
Aclius 0d9ad1921e
Some checks failed
ci.yaml / docs(global): :memo: update README.md (push) Failing after 0s
docs(global): 📝 update README.md
add section to describe build process and mise command
2026-04-28 18:23:45 +00:00
.devcontainer chore(global): 🔧 switch devcontainer image 2026-03-18 12:12:42 +00:00
.forgejo/workflows ci(global): 👷 add ci.yaml 2026-03-23 08:39:23 +00:00
.vscode refactor(access_stemcell): 🚚 rename project to access stemcell and move it into the stemcells folder 2026-03-20 13:12:18 +00:00
assets docs(global): 📝 update project readme 2026-04-12 22:18:59 +00:00
mgn_devcontainers chore(ubuntu_act_mgn): 📝 update changelog.md 2026-03-18 11:09:00 +00:00
stemcells build(stemcells): 👷 add mise task to automate scan from image SBOMs 2026-04-28 14:55:27 +00:00
tools chore(mgn_cli): 🎉 begin mgn_cli project 2026-03-25 08:43:58 +00:00
.committed.conf refactor(access_stemcell): 🚚 rename project to access stemcell and move it into the stemcells folder 2026-03-20 13:12:18 +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
.prettierrc.yaml chore(global): 🔧 add various global configuration files 2026-03-15 13:58:03 +01:00
lefthook.yaml chore(global): 🔧 add various global configuration files 2026-03-15 13:58:03 +01:00
mise.toml build(stemcells): 👷 update build system for stemcells 2026-04-19 16:20:18 +00:00
pants.toml build(stemcells): 👷 update build system for stemcells 2026-04-19 16:20:18 +00:00
README.md docs(global): 📝 update README.md 2026-04-28 18:23:45 +00:00
trivy.yaml build(stemcells): 👷 update build system for stemcells 2026-04-19 16:20:18 +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 //stemcells:fmt -- format the code
  • mise //stemcells:lint -- lint the code
  • mise //stemcells:build -- build OCI images
  • mise //stemcells:test -- run CST test on builded artifact
  • mise //stemcells:scan -- generate SBOMs and produce CVE report
  • mise //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