From beea47e1f647a6771e4cc5962c91f2132d5805b3 Mon Sep 17 00:00:00 2001 From: ryan Date: Tue, 20 Aug 2024 18:58:04 -0400 Subject: [PATCH] stagex: rewrite a good chunk --- stagex/stagex.md | 129 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 104 insertions(+), 25 deletions(-) diff --git a/stagex/stagex.md b/stagex/stagex.md index c9ea249..6e442dc 100644 --- a/stagex/stagex.md +++ b/stagex/stagex.md @@ -1,72 +1,151 @@ --- -theme: gaia _class: lead paginate: true backgroundColor: #fff --- + + ![bg left:40% 80%](img/stagex-logo.png) -Minimalism and security first repository of reproducible and multi-signed OCI images of common open source software toolchains full-source bootstrapped from Stage 0 all the way up. +# Bootstrapping Reproducibility with StageX + + --- -# **Minimalism and security first repository** +# Minimalism and security first repository -Most Linux distributions are built for **compatibility** rather than **security** +Approach the distribution of a toolchain by ensuring each component uses +exactly what it needs to build - no more, no less. -This results in a dramatic increase of attack surface area of an operating system + -StageX is designed to allow the creation of application specific environments with a minimal footprint to eliminate attack surface area. + --- -# Rust "hello world" +# A Rust Example ```dockerfile -FROM stagex/busybox as build +FROM scratch AS build +COPY --from=stagex/busybox . / COPY --from=stagex/rust . / +COPY --from=stagex/musl . / COPY --from=stagex/gcc . / +COPY --from=stagex/llvm . / COPY --from=stagex/binutils . / COPY --from=stagex/libunwind . / -RUN printf 'fn main(){ println!("Hello World!"); }' > hello.rs +ADD < --- -# **OCI images** +# All packages in StageX are: -StageX uses an open standard for images in order to allow the use of different container runtimes +* Built using hash-locked sources +* Confirmed reproducible by multiple developers +* Signed by multiple release maintainers -OCI images makes StageX portable and easy to reproduce on all AMD based systems + + + + + + + --- -# **Common open source software** +# OCI Images -StageX supports 100+ packages, with a focus on supporting software commonly used by developers + -Some of the currently available packages include: `curl`, `rust`, `git`, `go`, `bash`, `tofu`... + + +--- + +# Common toolchain dependencies + +StageX comes with developer-loved tooling and languages, such as: + +* `rust` +* `go` +* `python` +* `curl` +* `git` + + If you are interested in additionally software being added feel free to open a PR or let us know what you would like to see added. --- +# Pallets + +StageX offers prebuilt containers including all the packages necessary to run +some of our most used software, such as: + +* `kubectl`, `kustomize`, `helm` +* `keyfork` +* `nginx` +* `redis` +* `postgres` + +--- + # **Full source bootstrapped from Stage 0** The StageX compiler and all libraries necessary to build software are themselves fully bootstrapped and deterministic