This recipe provides a complete Ubuntu 24.04 development environment designed specifically for exploring and learning
about the SaladCloud platform. It’s the perfect starting point for newcomers who want to understand how SaladCloud
works, experiment with deployments, and get hands-on experience with the platform’s features.The environment includes:
Ubuntu 24.04 LTS - Latest long-term support release
Development Tools - build-essential, git, curl, wget, and more
Python Environment - Python 3 with pip, venv, and JupyterLab
Node.js - Latest LTS version via nvm
VS Code Server - Optional remote development access
System Utilities - htop, nvtop, jq, zip/unzip tools
This recipe is ideal for:
Learning SaladCloud - Understanding how container deployments work
Platform Exploration - Testing SaladCloud features and capabilities
Getting Started - First-time users who want to experiment safely
Educational Purposes - Learning Linux, Python, and cloud computing concepts
Prototyping Ideas - Testing concepts before building custom applications
If you configure the VS Code tunnel settings during deployment, you can access VS Code at
https://vscode.dev/tunnel/your-container-group-id/workspace for full IDE functionality.
This recipe is designed to be your first step into the SaladCloud platform. Simply deploy it with the default settings
to get a fully functional Ubuntu environment where you can:
This recipe is configured to run on RTX 3090 GPUs with 24GB VRAM by default, providing you with powerful hardware to
explore SaladCloud’s capabilities. You can adjust the hardware requirements based on what you want to learn:
Basic Exploration: 2-4 vCPUs, 8-16GB RAM, no GPU required
GPU Learning: 4-8 vCPUs, 16-32GB RAM, RTX 3090 or better
Performance Testing: 8+ vCPUs, 32GB+ RAM, RTX 4090 or better
SaladCloud instances are ephemeral and can be reallocated at any time, resetting to a fresh Ubuntu image. Make sure to
persist any important data to a remote location, such as S3, Git repositories, or databases, to avoid losing work when
instances are reset.
Recommended practices:
Commit code changes to Git repositories frequently
Use cloud storage for data files (S3, Google Drive, etc.)
Save important configurations and scripts to external locations
Use environment variables for sensitive configuration
When deploying this recipe, we recommend against enabling authentication, as it can complicate accessing JupyterLab.
If you enable authentication, all requests to your development environment will need to include your SaladCloud API key
in the header Salad-Api-Key. See the documentation for
more information about authentication.
When you deploy the recipe, SaladCloud will find a qualified node and begin downloading the container image. The Ubuntu
image is relatively lightweight, so deployment should be faster than recipes that may include large model weights.Eventually, you will see instances enter the running state and show a green checkmark in the “Ready” column. Once at
least 1 instance is running, you can access JupyterLab and the web terminal immediately.You will find helpful links and information in the readme on the container group page once deployed.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SaladCloud","description":"SaladCloud documentation: Salad Container Engine, AI Gateway, Transcription API, S4 storage, and Gateway Service. Agents: start at /general/tutorials/build-with-ai-agents.","colors":{"primary":"#53A626","light":"#53A626","dark":"#53A626"},"logo":{"light":"https://mintcdn.com/salad/EawwuVEIAqrvltQ2/logo/light.svg?fit=max\u0026auto=format\u0026n=EawwuVEIAqrvltQ2\u0026q=85\u0026s=1ad3f967dcd4a77e38b71e493c2bb856","dark":"https://mintcdn.com/salad/EawwuVEIAqrvltQ2/logo/dark.svg?fit=max\u0026auto=format\u0026n=EawwuVEIAqrvltQ2\u0026q=85\u0026s=9912147ab9e28fe6afc254360302b732"},"favicon":"https://mintcdn.com/salad/B_utM-6XUMV1Xhv8/favicon.png?fit=max\u0026auto=format\u0026n=B_utM-6XUMV1Xhv8\u0026q=85\u0026s=4a570954d5b07e93adbe36fa38ea01e4","navbar":{"links":[{"href":"https://blog.salad.com","label":"Blog"},{"href":"https://discord.gg/ApSm4Kn7Aq","label":"Community"}],"primary":{"type":"button","label":"Portal","href":"https://portal.salad.com"}},"footer":{"socials":{"website":"https://salad.com","discord":"https://discord.gg/ApSm4Kn7Aq","github":"https://github.com/SaladTechnologies","youtube":"https://www.youtube.com/channel/UCFqO8W9-bxGCf-PdSrc7wVg","x":"https://x.com/SaladTech","linkedin":"https://www.linkedin.com/company/salad-technologies"}},"search":{"prompt":"Search..."},"integrations":{"ga4":{"measurementId":"G-C9B6SKYZEY"},"mixpanel":{"projectToken":"26a3dcda21415501306f3f077a446ec5"}},"contextual":{"options":["copy","view","claude","chatgpt","cursor","mcp","add-mcp"],"display":"header"},"markdown":{"instructions":"For autonomous tasks, use live SaladCloud API responses for current state, availability, quotas, models, and other dynamic values. Use current OpenAPI specifications where provided for paths, schemas, required fields, and enums. Never invent endpoints, fields, prices, availability, quotas, models, or state. Prefer API workflows over Portal steps. Read before changing and never expose credentials, signed media URLs, prompts, or sensitive outputs. Retry only safe or idempotent operations with bounded backoff, honoring Retry-After. Verify every write with a read. Stop rather than repeat an uncertain non-idempotent or billable request. AI Gateway uses an organization-specific Bearer key and live /v1/models discovery. Do not delete, cancel, stop, or reduce capacity without explicit user intent. Bind shared operation IDs to the selected product path. Treat Container Engine instances as interruptible and local state as ephemeral. Install the SaladCloud skills (npx skills add https://docs.salad.com), start from the salad skill and /agents/overview; docs MCP: https://docs.salad.com/mcp."},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"salad","hasAudioNarration":false,"actualSubdomain":"salad","customDomains":["docs.salad.com"],"gitSource":{"type":"github","owner":"saladtechnologies","repo":"salad-cloud-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea1a0190fba1e9dbe22e3a","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Container Engine","count":177},{"language":"default","tag":"API Reference","count":110},{"language":"default","tag":"How-to Guides","count":97},{"language":"default","tag":"Explanation","count":52},{"language":"default","tag":"Reference","count":46},{"language":"default","tag":"Transcription","count":40},{"language":"default","tag":"SaladCloud API","count":36},{"language":"default","tag":"Recipes","count":33},{"language":"default","tag":"Tutorials","count":33},{"language":"default","tag":"AI Gateway","count":26}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"container-engine/reference/recipes/ubuntu","slug":"/container-engine/reference/recipes/ubuntu","pageMetadata":{"title":"Ubuntu 24.04 Development Environment Recipe","sidebarTitle":"Ubuntu 24.04","description":"Deploy a complete Ubuntu 24.04 environment for exploring and learning about the SaladCloud platform.","href":"/container-engine/reference/recipes/ubuntu"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Deploy a complete Ubuntu 24.04 environment for exploring and learning about the SaladCloud platform.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:_jsx(_components.em,{children:`Last Updated: July 10, 2025`})}),`\n`,_jsxs(Tip,{children:[`Deploy from the `,_jsx(_components.a,{href:`https://portal.salad.com`,children:`SaladCloud Portal`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`This recipe provides a complete Ubuntu 24.04 development environment designed specifically for exploring and learning\nabout the SaladCloud platform. It’s the perfect starting point for newcomers who want to understand how SaladCloud\nworks, experiment with deployments, and get hands-on experience with the platform’s features.`}),`\n`,_jsx(_components.p,{children:`The environment includes:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ubuntu 24.04 LTS`}),` - Latest long-term support release`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Development Tools`}),` - build-essential, git, curl, wget, and more`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Python Environment`}),` - Python 3 with pip, venv, and JupyterLab`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Node.js`}),` - Latest LTS version via nvm`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`VS Code Server`}),` - Optional remote development access`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`System Utilities`}),` - htop, nvtop, jq, zip/unzip tools`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`This recipe is ideal for:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Learning SaladCloud`}),` - Understanding how container deployments work`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Platform Exploration`}),` - Testing SaladCloud features and capabilities`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Getting Started`}),` - First-time users who want to experiment safely`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Educational Purposes`}),` - Learning Linux, Python, and cloud computing concepts`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Prototyping Ideas`}),` - Testing concepts before building custom applications`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`access-options`,children:`Access Options`}),`\n`,_jsx(_components.p,{children:`Once deployed, you can access your Ubuntu environment through multiple interfaces:`}),`\n`,_jsx(Heading,{level:`3`,id:`jupyterlab`,children:`JupyterLab`}),`\n`,_jsxs(_components.p,{children:[`Access JupyterLab at `,_jsx(_components.code,{children:`https://your-deployment-url.salad.cloud/lab`}),` for interactive Python development, data analysis,\nand notebook creation.`]}),`\n`,_jsx(Heading,{level:`3`,id:`vs-code-optional`,children:`VS Code (Optional)`}),`\n`,_jsxs(_components.p,{children:[`If you configure the VS Code tunnel settings during deployment, you can access VS Code at\n`,_jsx(_components.code,{children:`https://vscode.dev/tunnel/your-container-group-id/workspace`}),` for full IDE functionality.`]}),`\n`,_jsx(Heading,{level:`3`,id:`web-terminal`,children:`Web Terminal`}),`\n`,_jsx(_components.p,{children:`Click on any running instance in the SaladCloud Portal to access a browser-based terminal for command-line operations.`}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-use-this-recipe`,children:`How To Use This Recipe`}),`\n`,_jsx(Heading,{level:`3`,id:`getting-started-with-saladcloud`,children:`Getting Started with SaladCloud`}),`\n`,_jsx(_components.p,{children:`This recipe is designed to be your first step into the SaladCloud platform. Simply deploy it with the default settings\nto get a fully functional Ubuntu environment where you can:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Explore the SaladCloud dashboard and interface`}),`\n`,_jsx(_components.li,{children:`Learn how container groups work`}),`\n`,_jsx(_components.li,{children:`Experiment with different features safely`}),`\n`,_jsx(_components.li,{children:`Practice deploying and managing applications`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`vs-code-integration-optional`,children:`VS Code Integration (Optional)`}),`\n`,_jsx(_components.p,{children:`To enable VS Code server integration:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Follow the\n`,_jsx(_components.a,{href:`/container-engine/tutorials/development-tools/vscode-remote-development#create-a-tunnel-and-generate-access-tokens`,children:`VS Code Remote Development guide`}),`\nto create a tunnel and generate access tokens`]}),`\n`,_jsxs(_components.li,{children:[`During deployment, provide your `,_jsx(_components.code,{children:`TUNNEL_ID`}),` and `,_jsx(_components.code,{children:`ACCESS_TOKEN`}),` as environment variables`]}),`\n`,_jsx(_components.li,{children:`If omitted, JupyterLab and web terminal access will still be available`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`resource-configuration`,children:`Resource Configuration`}),`\n`,_jsx(_components.p,{children:`This recipe is configured to run on RTX 3090 GPUs with 24GB VRAM by default, providing you with powerful hardware to\nexplore SaladCloud’s capabilities. You can adjust the hardware requirements based on what you want to learn:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Basic Exploration`}),`: 2-4 vCPUs, 8-16GB RAM, no GPU required`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GPU Learning`}),`: 4-8 vCPUs, 16-32GB RAM, RTX 3090 or better`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Performance Testing`}),`: 8+ vCPUs, 32GB+ RAM, RTX 4090 or better`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`replica-count`,children:`Replica Count`}),`\n`,_jsx(_components.p,{children:`The recipe is configured for 1 replica, because load-balancing requests across unrelated JupyterLab instances leads to a\nbad user experience.`}),`\n`,_jsx(Heading,{level:`3`,id:`persistence-and-data-management`,children:`Persistence and Data Management`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`SaladCloud instances are ephemeral and can be reallocated at any time, resetting to a fresh Ubuntu image. Make sure to\npersist any important data to a remote location, such as S3, Git repositories, or databases, to avoid losing work when\ninstances are reset.`})}),`\n`,_jsx(_components.p,{children:`Recommended practices:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Commit code changes to Git repositories frequently`}),`\n`,_jsx(_components.li,{children:`Use cloud storage for data files (S3, Google Drive, etc.)`}),`\n`,_jsx(_components.li,{children:`Save important configurations and scripts to external locations`}),`\n`,_jsx(_components.li,{children:`Use environment variables for sensitive configuration`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`authentication`,children:`Authentication`}),`\n`,_jsxs(_components.p,{children:[`When deploying this recipe, we recommend `,_jsx(_components.strong,{children:`against`}),` enabling authentication, as it can complicate accessing JupyterLab.\nIf you enable authentication, all requests to your development environment will need to include your SaladCloud API key\nin the header `,_jsx(_components.code,{children:`Salad-Api-Key`}),`. See the `,_jsx(_components.a,{href:`/container-engine/how-to-guides/gateway/sending-requests`,children:`documentation`}),` for\nmore information about authentication.`]}),`\n`,_jsx(Heading,{level:`3`,id:`deploy-it-and-wait`,children:`Deploy It And Wait`}),`\n`,_jsx(_components.p,{children:`When you deploy the recipe, SaladCloud will find a qualified node and begin downloading the container image. The Ubuntu\nimage is relatively lightweight, so deployment should be faster than recipes that may include large model weights.`}),`\n`,_jsx(_components.p,{children:`Eventually, you will see instances enter the running state and show a green checkmark in the “Ready” column. Once at\nleast 1 instance is running, you can access JupyterLab and the web terminal immediately.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/salad/B_utM-6XUMV1Xhv8/container-engine/images/ubuntu-deploy.png?fit=max\u0026auto=format\u0026n=B_utM-6XUMV1Xhv8\u0026q=85\u0026s=d89738857a50b0c27835b8fe3327e165`,alt:``,\"data-og-width\":`714`,width:`714`,\"data-og-height\":`486`,height:`486`,\"data-path\":`container-engine/images/ubuntu-deploy.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/salad/B_utM-6XUMV1Xhv8/container-engine/images/ubuntu-deploy.png?w=280\u0026fit=max\u0026auto=format\u0026n=B_utM-6XUMV1Xhv8\u0026q=85\u0026s=3f6f5927446079318b585b39232ef652 280w, https://mintcdn.com/salad/B_utM-6XUMV1Xhv8/container-engine/images/ubuntu-deploy.png?w=560\u0026fit=max\u0026auto=format\u0026n=B_utM-6XUMV1Xhv8\u0026q=85\u0026s=2884cedca45635077b430650cf2827c0 560w, https://mintcdn.com/salad/B_utM-6XUMV1Xhv8/container-engine/images/ubuntu-deploy.png?w=840\u0026fit=max\u0026auto=format\u0026n=B_utM-6XUMV1Xhv8\u0026q=85\u0026s=9b21525a996d11786e802230168943af 840w, https://mintcdn.com/salad/B_utM-6XUMV1Xhv8/container-engine/images/ubuntu-deploy.png?w=1100\u0026fit=max\u0026auto=format\u0026n=B_utM-6XUMV1Xhv8\u0026q=85\u0026s=cf1f8c022e88bd9c9e9502e364f228a7 1100w, https://mintcdn.com/salad/B_utM-6XUMV1Xhv8/container-engine/images/ubuntu-deploy.png?w=1650\u0026fit=max\u0026auto=format\u0026n=B_utM-6XUMV1Xhv8\u0026q=85\u0026s=95d20bd0af59111c52c86c4642a2a875 1650w, https://mintcdn.com/salad/B_utM-6XUMV1Xhv8/container-engine/images/ubuntu-deploy.png?w=2500\u0026fit=max\u0026auto=format\u0026n=B_utM-6XUMV1Xhv8\u0026q=85\u0026s=55308ea7ec657a5de354e9b67434baf2 2500w`}),`\n`,_jsx(_components.p,{children:`You will find helpful links and information in the readme on the container group page once deployed.`}),`\n`,_jsx(Heading,{level:`2`,id:`source-code`,children:`Source Code`}),`\n`,_jsxs(_components.p,{children:[`The complete source code for this recipe is available in the\n`,_jsx(_components.a,{href:`https://github.com/SaladTechnologies/salad-recipes/tree/master/recipes/ubuntu`,children:`SaladCloud Recipes GitHub repository`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Ubuntu 24.04 Development Environment Recipe","sidebarTitle":"Ubuntu 24.04","description":"Deploy a complete Ubuntu 24.04 environment for exploring and learning about the SaladCloud platform.","href":"/container-engine/reference/recipes/ubuntu"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Access Options","slug":"access-options","depth":2,"children":[{"title":"JupyterLab","slug":"jupyterlab","depth":3,"children":[]},{"title":"VS Code (Optional)","slug":"vs-code-optional","depth":3,"children":[]},{"title":"Web Terminal","slug":"web-terminal","depth":3,"children":[]}]},{"title":"How To Use This Recipe","slug":"how-to-use-this-recipe","depth":2,"children":[{"title":"Getting Started with SaladCloud","slug":"getting-started-with-saladcloud","depth":3,"children":[]},{"title":"VS Code Integration (Optional)","slug":"vs-code-integration-optional","depth":3,"children":[]},{"title":"Resource Configuration","slug":"resource-configuration","depth":3,"children":[]},{"title":"Replica Count","slug":"replica-count","depth":3,"children":[]},{"title":"Persistence and Data Management","slug":"persistence-and-data-management","depth":3,"children":[]},{"title":"Authentication","slug":"authentication","depth":3,"children":[]},{"title":"Deploy It And Wait","slug":"deploy-it-and-wait","depth":3,"children":[]}]},{"title":"Source Code","slug":"source-code","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/salad/4a7f0413c61b75a8/site-scripts/helpscout.js","/_mintlify/custom/salad/969fb03c373fd4ea/site-scripts/hubspot.js","/_mintlify/custom/salad/93b4d0bae5310d7b/site-scripts/mixpanel.js","/_mintlify/custom/salad/762698e4ad15ffc1/site-scripts/vimeo.js","/_mintlify/custom/salad/4a9dce76fa120355/scripts/add-metadata-header.js","/_mintlify/custom/salad/ec690830dcac8b9c/scripts/validate-agent-operations.js"],"subdomain":"salad","siteName":"SaladCloud","title":"Ubuntu 24.04 Development Environment Recipe - SaladCloud","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-10-06T15:06:19.698Z","originalFileLocation":"container-engine/reference/recipes/ubuntu.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Deploy a complete Ubuntu 24.04 environment for exploring and learning about the SaladCloud platform.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SaladCloud\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Ubuntu 24.04 Development Environment Recipe - SaladCloud\">\u003cmeta data-mint-head property=\"og:description\" content=\"Deploy a complete Ubuntu 24.04 environment for exploring and learning about the SaladCloud platform.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SaladCloud\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.salad.com/container-engine/reference/recipes/ubuntu\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://salad.mintlify.site/_mintlify/api/og/v2?division=Recipes\u0026amp;title=Ubuntu+24.04+Development+Environment+Recipe\u0026amp;description=Deploy+a+complete+Ubuntu+24.04+environment+for+exploring+and+learning+about+the+SaladCloud+platform.\u0026amp;theme=507f55157949b51de597e8c7\u0026amp;signature=fb3ebd023075010b9b87b722b4d41a84b0550597620fe677bade16f17f90da7d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Ubuntu 24.04 Development Environment Recipe - SaladCloud\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Deploy a complete Ubuntu 24.04 environment for exploring and learning about the SaladCloud platform.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://salad.mintlify.site/_mintlify/api/og/v2?division=Recipes\u0026amp;title=Ubuntu+24.04+Development+Environment+Recipe\u0026amp;description=Deploy+a+complete+Ubuntu+24.04+environment+for+exploring+and+learning+about+the+SaladCloud+platform.\u0026amp;theme=507f55157949b51de597e8c7\u0026amp;signature=fb3ebd023075010b9b87b722b4d41a84b0550597620fe677bade16f17f90da7d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/salad/fl_n7ouaaj7nQ7SL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SaladCloud\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#53A626\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.salad.com/container-engine/reference/recipes/ubuntu\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/container-engine/reference/recipes/ubuntu.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.salad.com/#organization\",\"name\":\"SaladCloud\",\"url\":\"https://docs.salad.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/salad/EawwuVEIAqrvltQ2/logo/light.svg?fit=max\u0026auto=format\u0026n=EawwuVEIAqrvltQ2\u0026q=85\u0026s=1ad3f967dcd4a77e38b71e493c2bb856\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.salad.com#website\",\"name\":\"SaladCloud\",\"url\":\"https://docs.salad.com\",\"publisher\":{\"@id\":\"https://docs.salad.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.salad.com/container-engine/reference/recipes/ubuntu#webpage\",\"url\":\"https://docs.salad.com/container-engine/reference/recipes/ubuntu\",\"name\":\"Ubuntu 24.04 Development Environment Recipe\",\"description\":\"Deploy a complete Ubuntu 24.04 environment for exploring and learning about the SaladCloud platform.\",\"dateModified\":\"2025-10-06T15:06:19.698Z\",\"isPartOf\":{\"@id\":\"https://docs.salad.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.salad.com/container-engine/reference/recipes/ubuntu#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.salad.com/container-engine/reference/recipes/ubuntu#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reference\",\"item\":\"https://docs.salad.com/container-engine/reference/api\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recipes\",\"item\":\"https://docs.salad.com/container-engine/reference/recipes/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Ubuntu 24.04 Development Environment Recipe\",\"item\":\"https://docs.salad.com/container-engine/reference/recipes/ubuntu\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.salad.com/container-engine/reference/recipes/ubuntu#article\",\"headline\":\"Ubuntu 24.04 Development Environment Recipe\",\"name\":\"Ubuntu 24.04 Development Environment Recipe\",\"description\":\"Deploy a complete Ubuntu 24.04 environment for exploring and learning about the SaladCloud platform.\",\"url\":\"https://docs.salad.com/container-engine/reference/recipes/ubuntu\",\"mainEntityOfPage\":{\"@id\":\"https://docs.salad.com/container-engine/reference/recipes/ubuntu#webpage\"},\"dateModified\":\"2025-10-06T15:06:19.698Z\",\"publisher\":{\"@id\":\"https://docs.salad.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.salad.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SaladCloud\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SaladCloud","nav":{"global":null,"tabs":[{"tab":"General","pages":[{"title":"General","href":""}]},{"tab":"Agent Operations","hidden":true,"searchable":true,"pages":[{"title":"Agent Operations","href":"/agents/overview"}]},{"tab":"Container Engine","groups":[{"group":"Explanation","pages":[{"group":"Core Concepts","pages":[{"title":"Salad Container Engine Overview: How SaladCloud Works","sidebarTitle":"Overview","href":"/container-engine/explanation/core-concepts/overview"},{"title":"SCE Architectural Overview","sidebarTitle":"Distributed Architecture","href":"/container-engine/explanation/core-concepts/architectural-overview"},{"title":"Service Performance and Reliability Overview","sidebarTitle":"Performance and Reliability","href":"/container-engine/explanation/core-concepts/service-performance"},{"title":"Container Engine Recipes","sidebarTitle":"Recipes","href":"/container-engine/explanation/core-concepts/recipes-overview"},{"title":"Containers vs VPS","href":"/container-engine/explanation/core-concepts/container-vs-vps"},{"title":"Salad Container Engine FAQs","sidebarTitle":"FAQs","href":"/container-engine/explanation/core-concepts/faqs"}]},{"group":"Container Groups","pages":[{"title":"Container Groups","sidebarTitle":"Overview","href":"/container-engine/explanation/container-groups/container-groups"},{"title":"The Deployment Lifecycle","sidebarTitle":"Deployment Lifecycle","href":"/container-engine/explanation/container-groups/deployment-lifecycle"},{"title":"Disk Space","href":"/container-engine/explanation/container-groups/disk-space"},{"title":"SSH \u0026 Terminal Access","href":"/container-engine/explanation/container-groups/ssh-and-terminal"},{"title":"Container Logs","href":"/container-engine/explanation/container-groups/container-logs"},{"title":"CPU and RAM Utilization","sidebarTitle":"CPU \u0026 RAM Utilization","href":"/container-engine/explanation/container-groups/resource-utilization"},{"title":"System Events","href":"/container-engine/explanation/container-groups/system-events"}]},{"group":"Infrastructure \u0026 Platform","pages":[{"title":"Availability","sidebarTitle":"Availability","href":"/container-engine/explanation/infrastructure-platform/availability"},{"title":"Container Registries","sidebarTitle":"Registries","href":"/container-engine/explanation/infrastructure-platform/container-registries"},{"title":"Log Explorer","href":"/container-engine/explanation/infrastructure-platform/log-explorer"},{"title":"External Logging","href":"/container-engine/explanation/infrastructure-platform/external-logging"},{"title":"Networking / Container Gateway","sidebarTitle":"Networking","href":"/container-engine/explanation/infrastructure-platform/networking"},{"title":"Health Probes","href":"/container-engine/explanation/infrastructure-platform/health-probes"},{"title":"Startup Probes","href":"/container-engine/explanation/infrastructure-platform/startup-probes"},{"title":"Readiness Probes","href":"/container-engine/explanation/infrastructure-platform/readiness-probes"},{"title":"Liveness Probes","href":"/container-engine/explanation/infrastructure-platform/liveness-probes"},{"title":"Instance Metadata Service (IMDS) Overview","sidebarTitle":"IMDS","href":"/container-engine/explanation/infrastructure-platform/imds"},{"title":"Instance Deletion Cost","href":"/container-engine/explanation/infrastructure-platform/instance-deletion-cost"},{"title":"Job Queue Autoscaling Overview","sidebarTitle":"Job Queue Autoscaling","href":"/container-engine/explanation/infrastructure-platform/autoscaling"}]},{"group":"Billing \u0026 Pricing","pages":[{"title":"Salad Container Engine Billing","sidebarTitle":"SCE Billing","href":"/container-engine/explanation/billing-pricing/billing"},{"title":"Priority Pricing","href":"/container-engine/explanation/billing-pricing/priority-pricing"}]},{"group":"Networking \u0026 Gateway","pages":[{"title":"Load Balancing Options","href":"/container-engine/explanation/gateway/load-balancer-options"},{"title":"WebSockets","href":"/container-engine/explanation/gateway/websockets"},{"title":"Error Pages","href":"/container-engine/explanation/gateway/error-pages"}]},{"group":"Job Processing","pages":[{"title":"Long-Running Tasks Solution Overview","sidebarTitle":"Long-Running Tasks","href":"/container-engine/explanation/job-processing/long-running-tasks"},{"title":"Salad Job Queues","href":"/container-engine/explanation/job-processing/job-queues"}]},{"group":"Platform Integrations","pages":[{"title":"Virtual Kubelet Solution Overview","sidebarTitle":"Virtual Kubelet","href":"/container-engine/explanation/platform-integrations/kubernetes-integration"},{"title":"Tailscale Solution Overview","sidebarTitle":"Tailscale","href":"/container-engine/explanation/platform-integrations/tailscale-integration"}]},{"group":"AI \u0026 Machine Learning","pages":[{"title":"LLM Inference on SaladCloud","sidebarTitle":"LLM Inference","href":"/container-engine/explanation/ai-machine-learning/llm-overview"},{"title":"Image Generation On SaladCloud","sidebarTitle":"Image Generation","href":"/container-engine/explanation/ai-machine-learning/image-generation-overview"},{"title":"YOLOv8","sidebarTitle":"Computer Vision","href":"/container-engine/explanation/ai-machine-learning/computer-vision-overview"}]}]},{"group":"Tutorials","pages":[{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/container-engine/tutorials/quickstart"},{"title":"Quickstart - API","sidebarTitle":"Quickstart - API","href":"/container-engine/tutorials/quickstart-api"},{"group":"Getting Started","pages":[{"title":"Using our preset Ubuntu image","sidebarTitle":"Ubuntu Image","href":"/container-engine/tutorials/getting-started/ubuntu-image"},{"title":"Using our preset example image","sidebarTitle":"Example Image","href":"/container-engine/tutorials/getting-started/example-image"}]},{"group":"Deployment","pages":[{"title":"Docker Run on SaladCloud","sidebarTitle":"Docker Run","href":"/container-engine/tutorials/deployment/docker-run"},{"title":"Run a Python App","sidebarTitle":"Python App","hidden":false,"href":"/container-engine/tutorials/deployment/run-a-python-app"}]},{"group":"Node.js","pages":[{"title":"Create a container","sidebarTitle":"Create Container","href":"/container-engine/tutorials/nodejs/create-a-container"},{"title":"How to deploy a Node App on SaladCloud","sidebarTitle":"Deploy Node App","href":"/container-engine/tutorials/nodejs/how-to-deploy-a-node-app-on-salad"},{"title":"Create Your first \"hello world\"","sidebarTitle":"Create Hello World","href":"/container-engine/tutorials/nodejs/create-your-first-hello-world"},{"title":"Save to docker hub","sidebarTitle":"Save to Docker Hub","href":"/container-engine/tutorials/nodejs/save-to-docker-hub"},{"title":"Deploy via portal","sidebarTitle":"Deploy via Portal","href":"/container-engine/tutorials/nodejs/deploy-via-portal"},{"title":"Deploy via API","sidebarTitle":"Deploy via API","href":"/container-engine/tutorials/nodejs/deploy-via-api"}]},{"group":"Machine Learning","pages":[{"title":"Running PyTorch on RTX 5090 and 5080 GPUs","sidebarTitle":"PyTorch RTX 5090/5080","href":"/container-engine/tutorials/machine-learning/pytorch-rtx5090"},{"title":"Run PyTorch on AMD GPUs with ROCm","sidebarTitle":"PyTorch on AMD GPUs","href":"/container-engine/tutorials/machine-learning/pytorch-amd-rocm"},{"title":"Run NVIDIA Triton Server on SaladCloud","sidebarTitle":"NVIDIA Triton Server","href":"/container-engine/tutorials/machine-learning/run-triton-server"},{"title":"Run Cog Applications on SaladCloud","sidebarTitle":"Cog Applications","href":"/container-engine/tutorials/machine-learning/run-cog"},{"title":"Run JupyterLab","sidebarTitle":"JupyterLab","hidden":false,"href":"/container-engine/tutorials/machine-learning/jupyterlab"},{"title":"Truss Deployment Guide to SaladCloud Portal and API","sidebarTitle":"Truss Deployment","href":"/container-engine/tutorials/machine-learning/how-to-deploy-a-truss-container-to-salad-portal-and-api"},{"title":"LLM Fine-tuning on SaladCloud","sidebarTitle":"LLM Fine-tuning","href":"/container-engine/tutorials/machine-learning/llm-fine-tuning"}]},{"group":"Computer Vision","pages":[{"title":"YOLOv8 QuickStart Guide","sidebarTitle":"YOLOv8 QuickStart","href":"/container-engine/tutorials/computer-vision/yolov8-quickstart"},{"title":"Deployment Guide","sidebarTitle":"YOLOv8 Deployment","href":"/container-engine/tutorials/computer-vision/yolov8-deployment-tutorial"},{"title":"Training a custom YOLOv8 model","sidebarTitle":"YOLOv8 Model Training","href":"/container-engine/tutorials/computer-vision/yolov8-model-training"}]},{"group":"Development Tools","pages":[{"title":"VS Code Remote Development on SaladCloud","sidebarTitle":"VS Code Remote Dev","href":"/container-engine/tutorials/development-tools/vscode-remote-development"},{"title":"How to Use the SaladCloud Terminal","sidebarTitle":"Interactive Terminal","href":"/container-engine/tutorials/development-tools/interactive-terminal"}]},{"group":"Security","pages":[{"title":"Enable JWT Authentication","sidebarTitle":"JWT Authentication","href":"/container-engine/tutorials/security/jwt-authentication"}]},{"group":"Performance","pages":[{"title":"Implementing Performance Monitoring","sidebarTitle":"Performance Monitoring","href":"/container-engine/tutorials/performance/performance-monitoring"},{"title":"Checking Network Bandwidth Before Startup","sidebarTitle":"Network Bandwidth Checks","href":"/container-engine/tutorials/performance/network-bandwidth-checks"},{"title":"Build High-Performance Applications","sidebarTitle":"High-Performance Apps","href":"/container-engine/tutorials/performance/high-performance-apps"},{"title":"Build High-Performance Storage Solutions","sidebarTitle":"High-Performance Storage","href":"/container-engine/tutorials/performance/high-performance-storage-solutions"}]}]},{"group":"How-to Guides","pages":[{"title":"Managing Deployments","href":"/container-engine/how-to-guides/managing-deployments"},{"title":"Deployment Strategies","href":"/container-engine/how-to-guides/deployment-strategies"},{"title":"Using Environment Variables","href":"/container-engine/how-to-guides/environment-variables"},{"title":"Specifying a command","href":"/container-engine/how-to-guides/specifying-a-command"},{"title":"Cold Starts and Iterating Quickly","sidebarTitle":"Cold Starts and Iterating","href":"/container-engine/how-to-guides/cold-starts-and-iterating-quickly"},{"title":"Troubleshooting Salad Container Engine Workloads","sidebarTitle":"Troubleshooting","href":"/container-engine/how-to-guides/troubleshooting"},{"group":"Container Registries","pages":[{"title":"Dockerhub","href":"/container-engine/how-to-guides/registries/dockerhub"},{"title":"Amazon Elastic Container Registry (ECR)","sidebarTitle":"AWS ECR","href":"/container-engine/how-to-guides/registries/aws-ecr"},{"title":"Azure Container Registry","sidebarTitle":"Azure ACR","href":"/container-engine/how-to-guides/registries/azure-acr"},{"title":"Google Artifact Registry","sidebarTitle":"Google GAR","href":"/container-engine/how-to-guides/registries/gcp-gar"},{"title":"GitHub Container Registry","sidebarTitle":"GitHub GHCR","href":"/container-engine/how-to-guides/registries/github-ghcr"},{"title":"Quay Container Registry","sidebarTitle":"Quay","href":"/container-engine/how-to-guides/registries/quay"}]},{"group":"Autoscaling \u0026 Resource Management","pages":[{"title":"Autoscaling On SaladCloud","sidebarTitle":"Autoscaling Overview","href":"/container-engine/how-to-guides/autoscaling/overview"},{"title":"Set Up Container Group Autoscaling with Job Queues","sidebarTitle":"Job Queue Autoscaling","href":"/container-engine/how-to-guides/autoscaling/enable-autoscaling"},{"title":"Scheduled Scaling (Time of Day)","sidebarTitle":"Scheduled Scaling","href":"/container-engine/how-to-guides/autoscaling/time-of-day-scaling"},{"title":"Hardware Utilization-Based Autoscaling for Container Groups","sidebarTitle":"Hardware Utilization Autoscaling","href":"/container-engine/how-to-guides/autoscaling/hardware-metrics-scaling"}]},{"group":"Gateway \u0026 Networking","pages":[{"title":"Enabling IPv6","href":"/container-engine/how-to-guides/gateway/enabling-ipv6"},{"title":"Authenticated Requests","href":"/container-engine/how-to-guides/gateway/sending-requests"}]},{"group":"AI \u0026 Machine Learning","pages":[{"title":"Run Hugging Face Models with Ollama (45,000 models)","sidebarTitle":"HF Models with Ollama","href":"/container-engine/how-to-guides/ai-machine-learning/run-hugging-face-models-with-ollama"},{"title":"Run Ollama","href":"/container-engine/how-to-guides/ai-machine-learning/run-ollama"},{"title":"Run TGI (Text Generation Interface) by Hugging Face","sidebarTitle":"Run TGI","hidden":false,"href":"/container-engine/how-to-guides/ai-machine-learning/run-tgi-text-generation-interface"},{"title":"Deploy Image and Video Generation with ComfyUI","sidebarTitle":"ComfyUI Deployment","href":"/container-engine/how-to-guides/ai-machine-learning/deploy-stable-diffusion-comfy"},{"title":"Create and Deploy A Video Generation API on SaladCloud","sidebarTitle":"Video Generation API","href":"/container-engine/how-to-guides/ai-machine-learning/deploy-video-generation-comfy"},{"title":"How to Manage A Large Number of Stable Diffusion Models","sidebarTitle":"Manage SD Models","href":"/container-engine/how-to-guides/ai-machine-learning/manage-stable-diffusion-models"},{"title":"Image Captioning with Vision Language Models","sidebarTitle":"Image Captioning (VLM)","href":"/container-engine/how-to-guides/ai-machine-learning/image-captioning-vlm"},{"title":"Deploy BLIP with Cog HTTP Prediction Server","sidebarTitle":"Deploy BLIP with Cog","href":"/container-engine/how-to-guides/ai-machine-learning/deploy-blip-cog"},{"title":"Batch Processing","href":"/container-engine/how-to-guides/ai-machine-learning/yolov8-batch-processing"},{"title":"MetaVoice TTS with Voice Cloning Guide","sidebarTitle":"MetaVoice TTS","href":"/container-engine/how-to-guides/ai-machine-learning/metavoice-tts-voice-cloning"},{"title":"OpenVoice Text-to-Speech and Voice Cloning Guide","sidebarTitle":"OpenVoice TTS","href":"/container-engine/how-to-guides/ai-machine-learning/openvoice-tts-voice-cloning"},{"title":"Transcribe YouTube Videos","sidebarTitle":"YouTube Transcription","hidden":false,"href":"/container-engine/how-to-guides/ai-machine-learning/youtube-transcription-pipeline"}]},{"group":"OpenClaw","pages":[{"title":"OpenClaw on SaladCloud Overview","sidebarTitle":"Overview","href":"/container-engine/how-to-guides/openclaw/overview"},{"title":"OpenClaw + Ollama (Salad Hosted) + Telegram","sidebarTitle":"OpenClaw + Ollama + Telegram","href":"/container-engine/how-to-guides/openclaw/openclaw-ollama-salad-hosted-telegram"}]},{"group":"Job Processing \u0026 Queues","pages":[{"title":"Creating a Job Queue","href":"/container-engine/how-to-guides/job-processing/creating-a-job-queue"},{"title":"Using Queues","href":"/container-engine/how-to-guides/job-processing/using-queues"},{"title":"Job Queue Worker","href":"/container-engine/how-to-guides/job-processing/queue-worker"},{"title":"Validating Webhook Signatures","sidebarTitle":"Webhook Signatures","href":"/container-engine/how-to-guides/job-processing/webhook-signature"},{"title":"Use SaladCloud's Container Gateway","sidebarTitle":"Container Gateway","href":"/container-engine/how-to-guides/job-processing/use-container-gateway"},{"title":"Build Your Own Redis-Based Queue","sidebarTitle":"Redis Queue","href":"/container-engine/how-to-guides/job-processing/build-redis-queue"},{"title":"🐕 Salad Kelpie","href":"/container-engine/how-to-guides/job-processing/kelpie"},{"title":"GCP Pub/Sub and SaladCloud","sidebarTitle":"GCP Pub/Sub","href":"/container-engine/how-to-guides/job-processing/gcp-pub-sub"},{"title":"RabbitMQ and SaladCloud","sidebarTitle":"RabbitMQ","href":"/container-engine/how-to-guides/job-processing/rabbitmq"},{"title":"SQS and SaladCloud","sidebarTitle":"AWS SQS","href":"/container-engine/how-to-guides/job-processing/sqs"}]},{"group":"Monitoring \u0026 Logging","pages":[{"title":"Logging Best Practices","href":"/container-engine/how-to-guides/external-logging/best-practices"},{"title":"Axiom","href":"/container-engine/how-to-guides/external-logging/axiom"},{"title":"Datadog","href":"/container-engine/how-to-guides/external-logging/datadog"},{"title":"HTTP","href":"/container-engine/how-to-guides/external-logging/http"},{"title":"New Relic","href":"/container-engine/how-to-guides/external-logging/new-relic"},{"title":"Splunk","href":"/container-engine/how-to-guides/external-logging/splunk-logging"},{"title":"TCP","href":"/container-engine/how-to-guides/external-logging/tcp-logging"}]},{"group":"Advanced Features","pages":[{"title":"Obtaining an IMDS JWT","sidebarTitle":"Get IMDS JWT","href":"/container-engine/how-to-guides/imds/obtaining-an-imds-jwt"},{"title":"Using IMDS to get the status of a replica","sidebarTitle":"Get Replica Status","href":"/container-engine/how-to-guides/imds/container-status-endpoint"},{"title":"Using IMDS to reallocate a replica","sidebarTitle":"Reallocate Replica","href":"/container-engine/how-to-guides/imds/imds-reallocate"}]},{"group":"Migration","pages":[{"title":"AWS Batch to SaladCloud Migration Guide","sidebarTitle":"From AWS Batch","href":"/container-engine/how-to-guides/migration/migrate-from-aws-batch"},{"title":"Lambda (lambda.ai) to SaladCloud Migration Guide","sidebarTitle":"From Lambda (lambda.ai)","href":"/container-engine/how-to-guides/migration/migrate-from-lambda-cloud"},{"title":"Vast.ai to SaladCloud Migration Guide","sidebarTitle":"From Vast.ai","href":"/container-engine/how-to-guides/migration/migrate-from-vast"},{"title":"RunPod to SaladCloud Migration Guide","sidebarTitle":"From RunPod","href":"/container-engine/how-to-guides/migration/migrate-from-runpod"}]},{"group":"Platform Integrations","pages":[{"title":"Installation Using the Helm Chart","sidebarTitle":"Helm Chart Installation","href":"/container-engine/how-to-guides/platform-integrations/installation-helm-chart"},{"title":"Application Deployment","href":"/container-engine/how-to-guides/platform-integrations/application-deployment"},{"title":"Service Access","href":"/container-engine/how-to-guides/platform-integrations/service-access"},{"title":"Add Tailscale Support into SaladCloud Workloads","sidebarTitle":"Tailscale Integration","href":"/container-engine/how-to-guides/platform-integrations/tailscale-basic"}]},{"group":"Specialized Workloads","pages":[{"title":"Run GROMACS on SaladCloud","sidebarTitle":"GROMACS","href":"/container-engine/how-to-guides/molecular-dynamics-simulation/gromacs-srcg"},{"title":"Run GROMACS on SaladCloud","sidebarTitle":"GROMACS with Job Queue","href":"/container-engine/how-to-guides/molecular-dynamics-simulation/gromacs-job-queue"},{"title":"Run OpenMM on SaladCloud","sidebarTitle":"OpenMM","href":"/container-engine/how-to-guides/molecular-dynamics-simulation/openmm-srcg"},{"title":"Run Blender on SaladCloud – Input Data Organization and Migration","sidebarTitle":"Rendering - Blender","href":"/container-engine/how-to-guides/rendering/blender-input"},{"title":"Run Custom ZK Proofs on SaladCloud","sidebarTitle":"Zero-Knowledge Proofs","href":"/container-engine/how-to-guides/zero-knowledge-proofs/custom-zk-proofs"},{"title":"Run Miners on SaladCloud","sidebarTitle":"Miners","href":"/container-engine/how-to-guides/miners/run-miners-on-saladcloud"}]}]},{"group":"Storage","pages":[{"title":"Salad Simple Storage Service","href":"/storage/explanation/overview"},{"title":"API Reference","url":"/reference/s4","href":"/storage/reference/api"}]},{"group":"Reference","pages":[{"title":"API Reference","url":"/reference/saladcloud-api/container-groups","href":"/container-engine/reference/api"},{"title":"AMD GPUs and ROCm","sidebarTitle":"AMD GPUs","href":"/container-engine/reference/amd-gpus"},{"group":"Recipes","pages":[{"title":"Recipe API Reference","sidebarTitle":"Recipes","href":"/container-engine/reference/recipes/overview"},{"title":"AI Toolkit: Flux 1 Dev","href":"/container-engine/reference/recipes/ai-toolkit"},{"title":"ComfyUI API Recipes","sidebarTitle":"ComfyUI API","href":"/container-engine/reference/recipes/comfyui"},{"title":"GROMACS Kelpie Recipe","sidebarTitle":"GROMACS Kelpie","href":"/container-engine/reference/recipes/gromacs-kelpie"},{"title":"GROMACS Playground Environment Recipe","sidebarTitle":"GROMACS","href":"/container-engine/reference/recipes/gromacs-srcg"},{"title":"Kokoro TTS API","sidebarTitle":"Kokoro TTS API","href":"/container-engine/reference/recipes/kokoro-tts-api"},{"title":"Kuzco Worker on SaladCloud","sidebarTitle":"Kuzco Worker","href":"/container-engine/reference/recipes/kuzco"},{"title":"llama.cpp Recipe","sidebarTitle":"llama.cpp","href":"/container-engine/reference/recipes/llama-cpp"},{"title":"Gemma 4 31B with llama.cpp","sidebarTitle":"Gemma 4 31B (llama.cpp)","href":"/container-engine/reference/recipes/gemma-4-31b-it-llama-cpp"},{"title":"lolMiner GPU Miner","sidebarTitle":"lolMiner GPU Miner","href":"/container-engine/reference/recipes/lolminer"},{"title":"MCProxy Browser Server","sidebarTitle":"MCProxy","href":"/container-engine/reference/recipes/mcproxy"},{"title":"Ollama Recipes","sidebarTitle":"Ollama","href":"/container-engine/reference/recipes/ollama"},{"title":"OpenMM Playground Environment Recipe","sidebarTitle":"OpenMM","href":"/container-engine/reference/recipes/openmm-srcg"},{"title":"Quai Miner","href":"/container-engine/reference/recipes/quai"},{"title":"Qwen3.5-35B-A3B with llama.cpp Recipe","sidebarTitle":"Qwen3.5-35B-A3B","href":"/container-engine/reference/recipes/qwen3.5-35b-a3b-llama-cpp"},{"title":"Qwen3.6-35B-A3B with llama.cpp Recipe","sidebarTitle":"Qwen3.6-35B-A3B","href":"/container-engine/reference/recipes/qwen3.6-35b-a3b-llama-cpp"},{"title":"Qwen3.6-27B-unsloth with llama.cpp recipe","sidebarTitle":"Qwen3.6-27B","href":"/container-engine/reference/recipes/qwen3.6-27b-llama-cpp"},{"title":"Qwen3.5-9B with llama.cpp","sidebarTitle":"Qwen3.5-9B","href":"/container-engine/reference/recipes/qwen3.5-9b-llama-cpp"},{"title":"Qwen3.5-9B with SGLang","sidebarTitle":"Qwen3.5-9B (SGLang)","href":"/container-engine/reference/recipes/qwen3.5-9b-sglang"},{"title":"SGLang Recipe","sidebarTitle":"SGLang","href":"/container-engine/reference/recipes/sglang"},{"title":"RISC Zero (Kelpie) Recipe","sidebarTitle":"RISC Zero (Kelpie)","href":"/container-engine/reference/recipes/risc0"},{"title":"SAM3 Segmentation API Recipe","sidebarTitle":"SAM3 Segmentation API","href":"/container-engine/reference/recipes/sam3"},{"title":"Sogni Fast Worker Recipe","sidebarTitle":"Sogni Fast Worker","href":"/container-engine/reference/recipes/sogni-fast-worker"},{"title":"SpotWarp Checkpoint Backup and Restore Recipe","sidebarTitle":"SpotWarp","href":"/container-engine/reference/recipes/spotwarp"},{"title":"BGE-M3 Embeddings with Text Embeddings Inference","sidebarTitle":"BGE-M3 Embeddings","href":"/container-engine/reference/recipes/tei-bge-m3"},{"title":"BGE Reranker with Text Embeddings Inference","sidebarTitle":"BGE Reranker","href":"/container-engine/reference/recipes/tei-bge-reranker-v2-m3"},{"title":"Text Generation Inference (TGI) API Recipes","sidebarTitle":"Text Generation Inference (TGI)","description":"Deploy large language models with Text Generation Inference (TGI) API on Salad Container Engine.","href":"/container-engine/reference/recipes/tgi"},{"title":"Ubuntu 24.04 Development Environment Recipe","sidebarTitle":"Ubuntu 24.04","href":"/container-engine/reference/recipes/ubuntu"},{"title":"Unsloth Fine-Tuning (Kelpie) Recipe","sidebarTitle":"Unsloth Fine-Tuning (Kelpie)","description":"Fine-tune large language models with Unsloth on SaladCloud using Kelpie for queued training and S3 sync.","href":"/container-engine/reference/recipes/unsloth-finetune"},{"title":"Unsloth Inference Recipe","sidebarTitle":"Unsloth Inference","href":"/container-engine/reference/recipes/unsloth-inference"},{"title":"vLLM on SaladCloud Community","sidebarTitle":"vLLM","href":"/container-engine/reference/recipes/vllm"},{"title":"Wan 2.2 TI2V-5B (Kelpie) Recipe","sidebarTitle":"Wan 2.2 TI2V-5B (Kelpie)","href":"/container-engine/reference/recipes/wan-5b"},{"title":"YOLO Inference API Recipes","sidebarTitle":"YOLO Inference API","href":"/container-engine/reference/recipes/yolo"}]},{"group":"Autoscaling","pages":[{"title":"Job Queue Autoscaling Settings","href":"/container-engine/reference/autoscaling/settings"}]},{"title":"Log Queries","href":"/container-engine/reference/log-queries"},{"title":"Quotas","href":"/container-engine/reference/quotas"}]}]},{"tab":"Transcription","pages":[{"title":"Transcription","href":"/transcription/explanation/overview"}]},{"tab":"AI Gateway","pages":[{"title":"AI Gateway","href":"/ai-gateway/explanation/overview"}]},{"tab":"Gateway Service (SGS)","pages":[{"title":"Gateway Service (SGS)","href":"/gateway-service/explanation/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/api-usage"}]},{"tab":"Support","pages":[{"title":"Support","href":"/support"}]}]},"basePath":"","title":"Ubuntu 24.04 Development Environment Recipe - SaladCloud","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js"]}