{"id":3857,"date":"2026-05-27T15:00:54","date_gmt":"2026-05-27T15:00:54","guid":{"rendered":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/"},"modified":"2026-05-27T15:00:54","modified_gmt":"2026-05-27T15:00:54","slug":"creating-sandbox-canonicals-workshop-for-reproducible-development-environments","status":"publish","type":"post","link":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/","title":{"rendered":"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments"},"content":{"rendered":"<p>Canonical has introduced <em>Workshop<\/em>, an open-source tool designed for creating reproducible development environments with a single command. This innovative tool leverages YAML files, allowing developers to replicate their setups on various hardware and devices while minimizing the challenges of dependency management and configuration drift.<\/p>\n<p>In <em>Workshop<\/em>, development environments are constructed using Software Development Kits (SDKs) that are accessed through the SDK Store. This store supports versioned channels akin to the Snap Store, enabling projects to specify exact SDK versions they require. At its launch, Canonical has provided SDKs for notable platforms such as Ollama, OpenCode, NVIDIA CUDA, and AMD ROCm. Additionally, users can design and add project-specific SDKs to the SDK Store or include them in a project&#8217;s <code>.workshop\/<\/code> directory.<\/p>\n<p>The tool&#8217;s configuration leverages a plain-text YAML definition file, which can be version-controlled alongside the application code and any custom SDKs. According to the GitHub description, <em>Workshop<\/em> allows developers to set up environments that previously took hours to configure in just a few commands while ensuring their stability.<\/p>\n<p>While it shares similarities with existing Linux development tools like <a target=\"_blank\" rel=\"nofollow\" href=\"https:\/\/containers.dev\">Dev Containers<\/a>, Nix shells, and <a target=\"_blank\" rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/compose\/\">Docker Compose<\/a>, <em>Workshop<\/em> emphasizes strict environment isolation. It utilizes unprivileged <a target=\"_blank\" rel=\"nofollow\" href=\"https:\/\/canonical.com\/lxd\">LXD<\/a> containers, each operating its own kernel that does not share resources with the host. This controlled access model, reminiscent of how <code>snapd<\/code> operates, is particularly beneficial for running AI agents. Dmitry Lyfar, Engineering Manager at Canonical, highlighted the importance of non-privileged defaults, emphasizing that they effectively limit the capabilities of workloads.<\/p>\n<p><em>Workshop<\/em> requires LXD version 6.8 or later and can be installed directly from the Snap store. For detailed information about its functionalities and usage, you can refer to the <a target=\"_blank\" rel=\"nofollow\" href=\"https:\/\/documentation.ubuntu.com\/canonical-workshop\/latest\">official documentation<\/a> or access the <a target=\"_blank\" rel=\"nofollow\" href=\"https:\/\/github.com\/canonical\/workshop\">source code on GitHub<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Canonical has introduced Workshop, an open-source tool designed for creating reproducible development environments with a single command. This innovative tool leverages YAML files, allowing developers to replicate their setups on various hardware and devices while minimizing the challenges of dependency management and configuration drift. In Workshop, development environments are constructed using Software Development Kits (SDKs) [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":3858,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[294,270,1422,4,1423],"tags":[],"class_list":["post-3857","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-canonical","category-dev-tools","category-lxd","category-news","category-workshop"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments - ServerHost Hosting Solutions Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments - ServerHost Hosting Solutions Blog\" \/>\n<meta property=\"og:description\" content=\"Canonical has introduced Workshop, an open-source tool designed for creating reproducible development environments with a single command. This innovative tool leverages YAML files, allowing developers to replicate their setups on various hardware and devices while minimizing the challenges of dependency management and configuration drift. In Workshop, development environments are constructed using Software Development Kits (SDKs) [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/\" \/>\n<meta property=\"og:site_name\" content=\"ServerHost Hosting Solutions Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-27T15:00:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments\",\"datePublished\":\"2026-05-27T15:00:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/\"},\"wordCount\":291,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/2381b717-23d2-47c2-929b-42d0ffc80fc4.webp\",\"articleSection\":[\"Canonical\",\"Dev Tools\",\"Lxd\",\"News\",\"Workshop\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/\",\"url\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/\",\"name\":\"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments - ServerHost Hosting Solutions Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/2381b717-23d2-47c2-929b-42d0ffc80fc4.webp\",\"datePublished\":\"2026-05-27T15:00:54+00:00\",\"author\":{\"@id\":\"\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/#primaryimage\",\"url\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/2381b717-23d2-47c2-929b-42d0ffc80fc4.webp\",\"contentUrl\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/2381b717-23d2-47c2-929b-42d0ffc80fc4.webp\",\"width\":1920,\"height\":1008},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/\",\"name\":\"ServerHost Hosting Solutions Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/serverhost.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments - ServerHost Hosting Solutions Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/","og_locale":"en_US","og_type":"article","og_title":"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments - ServerHost Hosting Solutions Blog","og_description":"Canonical has introduced Workshop, an open-source tool designed for creating reproducible development environments with a single command. This innovative tool leverages YAML files, allowing developers to replicate their setups on various hardware and devices while minimizing the challenges of dependency management and configuration drift. In Workshop, development environments are constructed using Software Development Kits (SDKs) [&hellip;]","og_url":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/","og_site_name":"ServerHost Hosting Solutions Blog","article_published_time":"2026-05-27T15:00:54+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/#article","isPartOf":{"@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/"},"author":{"name":"","@id":""},"headline":"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments","datePublished":"2026-05-27T15:00:54+00:00","mainEntityOfPage":{"@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/"},"wordCount":291,"commentCount":0,"image":{"@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/#primaryimage"},"thumbnailUrl":"https:\/\/serverhost.com\/blog\/wp-content\/uploads\/2026\/05\/2381b717-23d2-47c2-929b-42d0ffc80fc4.webp","articleSection":["Canonical","Dev Tools","Lxd","News","Workshop"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/","url":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/","name":"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments - ServerHost Hosting Solutions Blog","isPartOf":{"@id":"https:\/\/serverhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/#primaryimage"},"image":{"@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/#primaryimage"},"thumbnailUrl":"https:\/\/serverhost.com\/blog\/wp-content\/uploads\/2026\/05\/2381b717-23d2-47c2-929b-42d0ffc80fc4.webp","datePublished":"2026-05-27T15:00:54+00:00","author":{"@id":""},"breadcrumb":{"@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/#primaryimage","url":"https:\/\/serverhost.com\/blog\/wp-content\/uploads\/2026\/05\/2381b717-23d2-47c2-929b-42d0ffc80fc4.webp","contentUrl":"https:\/\/serverhost.com\/blog\/wp-content\/uploads\/2026\/05\/2381b717-23d2-47c2-929b-42d0ffc80fc4.webp","width":1920,"height":1008},{"@type":"BreadcrumbList","@id":"https:\/\/serverhost.com\/blog\/creating-sandbox-canonicals-workshop-for-reproducible-development-environments\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/serverhost.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Creating Sandbox: Canonical\u2019s Workshop for Reproducible Development Environments"}]},{"@type":"WebSite","@id":"https:\/\/serverhost.com\/blog\/#website","url":"https:\/\/serverhost.com\/blog\/","name":"ServerHost Hosting Solutions Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/serverhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/serverhost.com\/blog\/wp-json\/wp\/v2\/posts\/3857","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/serverhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serverhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/serverhost.com\/blog\/wp-json\/wp\/v2\/comments?post=3857"}],"version-history":[{"count":0,"href":"https:\/\/serverhost.com\/blog\/wp-json\/wp\/v2\/posts\/3857\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/serverhost.com\/blog\/wp-json\/wp\/v2\/media\/3858"}],"wp:attachment":[{"href":"https:\/\/serverhost.com\/blog\/wp-json\/wp\/v2\/media?parent=3857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serverhost.com\/blog\/wp-json\/wp\/v2\/categories?post=3857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serverhost.com\/blog\/wp-json\/wp\/v2\/tags?post=3857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}