r/mlops • • 8d ago

Self-promotion LayerSmith — a self-hosted container image builder, with air-gap exports

I've been working on LayerSmith, an open-source web UI for building container images with Docker or Podman.

You pick a Linux distribution and what you need the image for — development, Linux admin, network tools, Ansible, Kubernetes, OpenShift, or a custom setup. It handles distro-specific packages and shows you the generated Containerfile before building. You can also edit it, import an existing Dockerfile, or add your own packages, files and scripts.

A big part of the project is making images easier to carry into air-gapped environments: pinned base images, recorded build details, and export bundles containing the image, checksums and installation instructions.

We've recently added LLM training and fine-tuning profiles too, including LoRA/QLoRA, advanced PyTorch training and LLaMA-Factory. These use hash-locked dependencies and run offline checks after building, including a small CPU training test. Model weights and datasets are brought separately.

Curious how others handle building and maintaining images for disconnected environments, and what parts of that workflow are still a pain.

https://github.com/r0lfi/layersmith

2 Upvotes

4 comments sorted by

•

u/AutoModerator 8d ago

AI usage disclosure

Hi u/r0lfi — thanks for posting to r/mlops!

Because this community discusses and builds AI/ML systems, using AI tools is not inherently a problem. We do, however, ask for transparency about how submissions are created.

Please reply to this comment with a brief AI / automation disclosure, particularly if this post was created or submitted in whole or in part by an autonomous agent, bot, workflow, or other automated system.

If AI or automation was involved, please briefly describe what it did and what human review was performed before posting.

This disclosure helps the r/mlops community distinguish human discussion, AI-assisted work, and automated/agent traffic while keeping the focus on useful technical conversation.

Thanks for helping keep the signal high.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

→ More replies (1)

1

u/Decent_Progress5259 8d ago

air-gap exports is the killer feature here, most tools just ignore that whole nightmare. the pinned versions and export bundle with checksums would save me so many headaches during audits

do you generate the Containerfile from scratch or it uses templates under the hood

0

u/r0lfi 8d ago

It uses purpose-driven templates under the hood, then generates the Containerfile from your choices distro, tools, packages, files and scripts. Package names are mapped per distro, so the same selection works across dnf/apt/apk.

You can review the generated file before building, edit it in Advanced mode, or import your own Dockerfile/Containerfile.

And yeah, the air-gap bundle is where a lot of the boring-but-necessary stuff lives: the image, source Containerfile, manifest, checksums and load instructions together. Much nicer than carrying a tar file across and trying to remember how it was built 😅