<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/introducing-debos-a-versatile-images-generator-c18llpdh6" -->

---
title: Introducing debos, a versatile images generator | daily.dev
description: debos is a tool for building Debian and derivative system images using YAML recipe files. Unlike debootstrap, it doesn't require root privileges — it uses...
canonical: https://daily.dev/posts/introducing-debos-a-versatile-images-generator-c18llpdh6
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Introducing debos, a versatile images generator | daily.dev
og:description: debos is a tool for building Debian and derivative system images using YAML recipe files. Unlike debootstrap, it doesn't require root privileges — it uses...
og:url: https://daily.dev/posts/introducing-debos-a-versatile-images-generator-c18llpdh6
og:image: https://api.daily.dev/og/posts/c18LLpdh6.png
og:image:alt: Introducing debos, a versatile images generator
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducing debos, a versatile images generator

**[Collabora Blog](https://daily.dev/sources/collabora)** · 5 min read · 0 upvotes · 0 comments

## Summary

debos is a tool for building Debian and derivative system images using YAML recipe files. Unlike debootstrap, it doesn't require root privileges — it uses fakemachine (backed by qemu-system) to perform privileged operations safely. Recipes define sequential actions such as debootstrap, apt package installation, running scripts, overlays, and output formats like tarballs or ext4 filesystem images. Parameters can be overridden at runtime, enabling flexible multi-architecture and multi-suite builds from a single recipe file.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.collabora.com/news-and-blog/blog/2018/06/27/introducing-debos-a-versatile-images-generator>

## Questions this post answers

### How does debos build Debian images without requiring root privileges?

debos uses fakemachine, a library that sets up qemu-system, allowing privileged operations inside the image without running debos itself as root. This lets you create images for any architecture supported by qemu user emulation. The only prerequisite is that your user has permission to access /dev/kvm.

_Developers building embedded Debian images track tools like debos on daily.dev._

### How do I override default architecture and suite when running a debos recipe?

Pass template variables with the -t flag when invoking debos. For example, `debos -t suite:"buster" -t architecture:"amd64" simple.yaml` overrides the recipe defaults. Inside the recipe, defaults are declared with Go template syntax like `{{- $architecture := or .architecture "arm64" -}}`, so any unset variable falls back to the defined default.

_Engineers targeting multiple Debian releases and architectures find debos workflow tips on daily.dev._

## Similar posts on daily.dev

- [Armbian Imager 2.0 release supports over 300 boards from 64 SBC vendors, custom user profiles](https://daily.dev/posts/armbian-imager-2-0-release-supports-over-300-boards-from-64-sbc-vendors-custom-user-profiles-t2hmmsbm9) · CNX Software · 3 upvotes · 0 comments
- [Bootc for workstation use](https://daily.dev/posts/bootc-for-workstation-use-qha9dt4ej) · Lobsters · 1 upvotes · 0 comments
- [Bootc and OSTree: Modernizing Linux System Deployment](https://daily.dev/posts/bootc-and-ostree-modernizing-linux-system-deployment-estfugr5k) · Hacker News · 1 upvotes · 0 comments
- [Debian's tag2upload Reaches GA For Improving Packaging Workflow](https://daily.dev/posts/debian-s-tag2upload-reaches-ga-for-improving-packaging-workflow-bowfa8k9y) · Phoronix · 0 upvotes · 0 comments
- [Why is Debian Called the Universal Operating System, Again?](https://daily.dev/posts/why-is-debian-called-the-universal-operating-system-again--efxb5kzmc) · It's Foss · 1 upvotes · 0 comments

---

Tags: [#linux](https://daily.dev/tags/linux), [#golang](https://daily.dev/tags/golang), [#embedded](https://daily.dev/tags/embedded)

[View this post on daily.dev](https://daily.dev/posts/introducing-debos-a-versatile-images-generator-c18llpdh6)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Introducing debos, a versatile images generator","url":"https://daily.dev/posts/introducing-debos-a-versatile-images-generator-c18llpdh6","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/introducing-debos-a-versatile-images-generator-c18llpdh6"},"datePublished":"2026-08-11T08:53:48.112Z","dateModified":"2026-08-11T09:18:17.195Z","description":"debos is a tool for building Debian and derivative system images using YAML recipe files. Unlike debootstrap, it doesn't require root privileges — it uses...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/18dda10225dc320a8fe7bf067d06eeef?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/18dda10225dc320a8fe7bf067d06eeef?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collabora Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collabora Blog","logo":"https://media.daily.dev/image/upload/s--ZGZ0FjqS--/f_auto,q_auto/v1786438306/logos/collabora?_a=BAMAMicg0","url":"https://daily.dev/sources/collabora"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/introducing-debos-a-versatile-images-generator-c18llpdh6","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"linux,golang,embedded","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collabora Blog","item":"https://daily.dev/sources/collabora"},{"@type":"ListItem","position":3,"name":"Introducing debos, a versatile images generator"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/introducing-debos-a-versatile-images-generator-c18llpdh6#faq","mainEntity":[{"@type":"Question","name":"How does debos build Debian images without requiring root privileges?","acceptedAnswer":{"@type":"Answer","text":"debos uses fakemachine, a library that sets up qemu-system, allowing privileged operations inside the image without running debos itself as root. This lets you create images for any architecture supported by qemu user emulation. The only prerequisite is that your user has permission to access /dev/kvm. Developers building embedded Debian images track tools like debos on daily.dev."}},{"@type":"Question","name":"How do I override default architecture and suite when running a debos recipe?","acceptedAnswer":{"@type":"Answer","text":"Pass template variables with the -t flag when invoking debos. For example, `debos -t suite:\"buster\" -t architecture:\"amd64\" simple.yaml` overrides the recipe defaults. Inside the recipe, defaults are declared with Go template syntax like `{{- $architecture := or .architecture \"arm64\" -}}`, so any unset variable falls back to the defined default. Engineers targeting multiple Debian releases and architectures find debos workflow tips on daily.dev."}}]}
```

