When your laptop becomes the group's printer
In a lab it's Monday, 9:40. The group meeting starts in twenty minutes, and for three months it has opened with a one-page digest of the week's new papers. Mehmet, a technician, built it: an n8n workflow, a chain of automated steps, on his laptop runs the group's saved PubMed search, has a local model write three lines per abstract, and emails the page to everyone. This Monday nothing arrived. Mehmet is on holiday, his laptop installed an update over the weekend, and nobody else knows how the workflow runs. When he's back, he finds that the copy of n8n he started from a tutorial has gone, and with it every workflow he built.
In a company it happens on a Thursday. Petra runs the office of a fourteen-person engineering firm. She set up Open WebUI, a chat app that runs in the browser, with a local model and a small library of saved prompts for quote letters and supplier replies. Two colleagues now use the same setup on their own laptops. One of them "cleaned up" Podman, the program that runs these apps on his laptop, to free disk space, and his prompts and chats vanished.
Neither of them did anything unusual. They built something colleagues came to depend on, on a setup only they understood. This book gives you a way to run local AI apps that survives your holiday, an update and a colleague's clean-up.
You are at Level 3 Builder: colleagues depend on what you run. When it breaks, the group loses a result it counts on, and possibly the data behind it.
After this you can
- Install Heidelberg AI Desk, let it set up Podman, and get one built-in app running on your own computer.
- Say what an app will download, where its data will live and what it needs from you, before you install it.
- Find an app's named volume, back it up to a file, and restore it on a second computer.
- Update an app without losing its data, and know the way back if the update goes wrong.
- Tell when a laptop setup has outgrown its place and the service belongs on a server.
Before you start
- Books: T11-L02 · A Local Model Your Tools Can Call. Your apps will use the LM Studio server you set up there. This book applies the four quadrants from T01-L01 · From Idea to Working Result: The Four-Quadrant Method.
- A computer you may install software on: Windows 11 or Linux on an Intel or AMD processor, or a Mac with an Apple chip. Desk itself needs no administrator rights; setting up Podman asks Windows for permission once. Desk is an early test version and its installer isn't signed, so on a managed device ask IT first and show them this book.
- A second computer for the restore test, usually a colleague's. It needs Desk too.
- Memory and disk: on the Desk team's test laptop, with three small apps running, Podman used 1.8 GB of memory; with Open WebUI and a 2 GB model on top, 7.8 GB. Open WebUI is also a 10 GB download, because Desk starts a program that runs models with it. Plan on 16 GB in total and 20 GB of free disk.
- About 2 hours: 21 minutes to read, 90 to do, plus downloads.
Last verified 12 October 2026, against the help pages of Heidelberg AI Desk 0.2.0-alpha.8: its steps, button names and app versions. Desk is a free, unsigned early test version. Nobody has tried this book's volume restore with it yet. Details for experts at the end of this book.
The idea in one page
Heidelberg AI Desk is a small program that installs and runs server apps on your own computer. You pick an app in its App Store, Desk asks Podman to run it, and you open it in your browser at a local address. Desk has no model of its own. It runs apps, and the apps do the work.
Where the app lives, and where your data lives. You don't need to know how Podman works inside. You need a few words, because they decide what survives.
The app itself comes as an image: its program, frozen at one version, the way Desk downloads it. When you start the app, Podman makes a container from that image, one running copy of the program. Think of the image as the installer and the container as the installed program. You can throw a container away and make a fresh one from the same image at any time, and updating an app simply means a newer image.
So your data must not live in the container. It lives in a named volume, a storage space that Podman keeps for the app, under its own name, outside the container. That's where the workflows, chats, accounts and settings go, and it survives when the container is replaced. Mehmet's tutorial copy had no named volume. His workflows were written inside the container, so they went with it.
One more word, for later: each app opens in your browser at its local address, one that exists only on your own computer. It starts with 127.0.0.1. Colleagues on other machines can't reach it.
The lifecycle, from gentle to destructive. Each app has a card with a few buttons, and it's worth learning by heart what each one leaves behind:
| You want to | Use | What stays |
|---|---|---|
| Use the app | Install and open the first time; after that Open or Start and open, whichever its card shows | Container and named volumes |
| Pause it | Stop | Container and named volumes |
| Replace the container | Remove, on a stopped app | Named volumes, settings and downloaded images |
| Erase the data | No Desk button or command | Only a deliberate Podman command |
Closing the browser tab or the Desk window doesn't stop anything. The app keeps running until you press Stop. And the cleanup commands that free disk space can delete named volumes: resetting the Podman machine (the small Linux system Podman runs in on Windows and Mac), or pruning volumes, which deletes every volume no container is using. That is what happened to Petra's colleague.
Ready means one check answered. When Desk shows an app as ready, its health check, a small built-in test that the app answers at all, responded. That doesn't mean a model is connected, an account is set up or a workflow produced a correct result. You check those yourself, every time.
A volume that survives is not yet a backup. A named volume survives a restart and a replaced container. It doesn't survive a deleted Podman machine, a dead disk or a stolen laptop. A backup is a separate copy, stored somewhere else. And until you've restored it once, you don't know that it works.
What a recipe is, and what "reviewed" means. Each app in Desk comes as a recipe: a short text file that names the app as its own makers publish it, pinned to one fixed version, the local address it answers at, and the named volume that holds its data. Four apps are built in and reviewed before a Desk is published, among them n8n and Open WebUI. A recipe can't hand an app folders of your computer, open a port to the network or give it extra rights; Desk refuses such a file.
Further apps come from a shelf, a list of recipes a group shares at a web address, or from a file a colleague sends you. Each card says where its recipe came from, and one that nobody has checked is marked Not reviewed.
What a review doesn't do: it doesn't lock the app in so it can do no harm, it doesn't stop the app from reaching the internet, and it doesn't replace your organisation's approval. The app still has its own login, its own model settings and its own behaviour. Pinning also cuts both ways. The version doesn't move under you, and it doesn't pick up its makers' fixes until a later Desk brings a newer one.
Set up Desk and Podman
Desk is a small download, about 3 MB. The apps are the large part, and each one is downloaded the first time you start it.
Windows 11
- Download the Windows installer from ai.32dots.de and run it. It isn't signed, so Windows warns about an unknown publisher first: More info, then Run anyway.
- On the installer's last page, leave Set up Podman now ticked. A window shows Podman being installed and started, and Windows may ask for permission once. Press a key when it has finished.
- Desk opens its window. Later you find it in the Start menu, or with a click on its icon next to the clock. On the left, the window says Local apps can run when Podman works. If it doesn't, press Set up Podman there.
macOS (Apple chip)
- Install Podman yourself, with the installer from podman.io.
- Download the Desk archive from ai.32dots.de and unpack it. Open the Terminal in the unpacked folder and run
./desk setup, which prepares and starts Podman. macOS may refuse to open a downloaded program at first; the README in the archive says what to do then. ./desk open n8nstarts n8n and opens it in your browser. Desk's window has opened on a Mac in a test, but nobody has worked with it there yet, so plan on using these commands.
Linux
- Install Podman with your system's usual installer, for example apt on Ubuntu.
- Download the Desk archive, unpack it, and move the program
deskinto~/.local/bin, a folder your terminal looks for programs in. desk doctorshows whether Podman was found. Linux has no Desk window:desk open n8n,desk stop n8nanddesk remove n8ndo what the buttons do.
On Windows, setting up Podman installs it with Windows' own package manager and accepts that package manager's terms for you; the window says so. Podman Desktop, a separate program that shows the containers and volumes behind your apps, is optional. Desk works without it.
Worked example: a digest that survives a holiday
Here is Mehmet's case after his holiday, through the four quadrants, then Petra's in brief.
Lab: the Monday paper digest
Structure it. "The group reads a one-page digest of the week's new papers every Monday at 9:30. It must arrive when I'm away, and when it fails, people must see that it's missing instead of reading last week's page."
Understand it. He looks at how the digest ran before. A docker run line, a one-line command that starts a container, copied from a tutorial, had started n8n with no named volume. The workflows, the saved email login and the run history all lived inside the container, and the laptop update replaced it. He still has an exported copy of the main workflow from May, because he once emailed it to himself.
He also asks the group what they actually use. Two people read the summaries. Everyone else scans the titles and clicks the links. Nobody has ever checked a summary against its abstract.
That changes his problem. Back to Structure it: "The digest must survive an update, my absence and a lost laptop. The workflow lives in a named volume, with a weekly backup on the group share that has been restored at least once. Anna can start it and knows what to do when it fails. Titles and links come straight from PubMed; the summaries are marked as model-written."
Choose tools. Down the ladder first. PubMed's own saved-search email already sends titles and links every week, and for most of the group that would be enough. The summaries are the part that saves the two readers time, so the automation stays, but the plain PubMed email becomes the fallback in the run note.
For running it, he compares his own container command with Desk's reviewed n8n recipe. Desk's recipe pins a version, keeps data in a named volume and gives him Open and Stop buttons that Anna can use without a terminal. The model stays LM Studio's local server from T11-L02 · A Local Model Your Tools Can Call, which n8n reaches at the address that book taught. Desk's help page says what the app needs before anything changes, and he reads it first: a download of 1.2 GB, a local address, and an owner account he'll create in n8n itself.
Build it. In Desk's App Store he presses Install and open on n8n. The first start downloads the app and takes a few minutes; then n8n opens in his browser. He sets up the owner account, skips the offers that follow, imports the May workflow file, and re-enters the email login, because saved logins (n8n calls them credentials) never travel in an exported workflow. He runs it once by hand and compares three summaries with their abstracts. One summary says a mouse study "shows efficacy in patients". He tightens the prompt ("Summarise only what the abstract states. Name the organism or cell type.") and adds the line "Summaries written by a local model; read the abstract before citing" to the top of the page. Last, he clicks Publish at the top of the editor: in the n8n version Desk installs, the Monday schedule runs only while the workflow is published.
Then he finds the data. In Desk's window he opens Advanced, then Open a Podman terminal. There he lists Podman's volumes and spots the one with n8n in its name, ai-lab-n8n-data:
podman volume ls
He stops n8n in Desk, exports the volume to a file on the group share with the steps in the next section, copies n8n's settings folder next to it, and opens n8n again. On Friday afternoon, Anna installs Desk on her laptop, and before she installs n8n there, they restore Mehmet's backup (the steps are below). She presses Install and open, logs in with Mehmet's n8n account, and the workflow is there. The test run fails at the summary step: her laptop has LM Studio, but not the model the workflow asks for. The backup holds the workflow, not the model. The run note gets a new line, "Before running: LM Studio's server is on and this exact model is loaded", with the model's name.
What it taught him: the workflow took an hour to rebuild; the restore test found the one thing that would have stopped Anna on a Monday morning. When he's away now, Anna runs the digest from her laptop.
Company: a prompt library three people share
Structure it. Petra: "Three of us use the same saved prompts for quote letters and supplier replies. If any laptop is wiped, we lose nothing we can't get back in ten minutes."
Understand it. She checks where things live. Each laptop runs its own Open WebUI from Desk, so each has its own volume with its own chats and its own copy of the prompts. Her colleague's clean-up deleted his Podman machine, and his volume with it. The chats don't matter much to anyone. The prompts matter a lot, and she is the only one who edits them. Back to Structure it: "The prompts need one master copy outside any app. Chats are personal and may be lost."
Choose tools. A text file of prompts on the shared drive would already cover the worst case. She keeps that as the master and adds a monthly volume backup of her own Open WebUI, so a wiped laptop comes back with its settings too. A shared Open WebUI on a server would remove the three copies, but it would also make her the operator of a team service. She notes that as the next step if a fourth person joins (T02-L04 · A Self-Hosted Assistant Your Team Can Use Safely).
Build it. She puts the prompts in a document on the shared drive, dated, with one editor: her. She writes the lifecycle table from this book on a sticky note for both colleagues: Stop is fine, Remove is fine, resetting Podman is not. Then she restores her own backup onto the colleague's rebuilt laptop and checks that the prompts and the model connection come back.
What it taught her: most of the protection came from a document, not from containers.
In both cases, the app was the easy part. The work was in knowing where the data lives, what the result depends on, and who can start it when you're not there.
Back up a volume, and restore it
Desk has no backup button yet, so this part uses Podman's own commands. On Windows, open the terminal from Desk's window: Advanced, then Open a Podman terminal. On macOS and Linux, use your usual terminal. On Windows and macOS, your volumes live inside the Podman machine, and these commands copy them out to a normal file for you.
Back up
-
In Desk, press Stop on the app. A copy taken while the app writes can be broken.
-
Find the volume's name. The command lists every volume. A Desk app's volumes start with
ai-lab-and the app's name, for exampleai-lab-n8n-data. Some apps have two volumes, and you need both:podman volume ls -
Export it to a dated file. Put the name from step 2 in place of
<volume-name>, without the angle brackets. The result is a.tarfile, a single archive that holds the whole volume:podman volume export <volume-name> --output n8n-2026-10-12.tar -
Press Open on the app's card again (it may read Start and open), and check that the app opens.
-
Copy the file somewhere that won't be lost with the laptop: the group share, or your organisation's backup location. Treat it like the data inside it. A backup of an app that holds unpublished results is itself unpublished results.
Desk keeps a little outside the volume: one settings folder per app, with the secrets Desk made for it, such as the key n8n locks saved logins with. Press Open the data folder in Desk, open apps, and copy the app's folder next to your backup file. Guard it like a password. You find out whether you have everything in the only way that counts: by restoring.
Restore on a second computer
-
Install Desk on the second computer. Don't install the app there yet.
-
Press Open the data folder in Desk and copy the app's settings folder from your backup into
apps. If there is no folderappsyet, make one. -
In the Podman terminal, create an empty volume with exactly the same name, and import the backup into it:
podman volume create <volume-name> podman volume import <volume-name> n8n-2026-10-12.tar -
In Desk's App Store, press Install and open on the app. Log in with the account from the original computer.
-
Check the things that matter: your workflows, prompts or chats are there, a credential works, and one real run produces the result.
If the app is already installed on that computer, press Stop first, replace its settings folder, then import into its volume. Restoring into a volume the app has never used is cleaner, because nothing from a fresh start gets mixed into your data.
Never practise a restore on the original volume. If the backup turns out to be broken, you want the original untouched.
Update an app without losing it
Nothing updates on its own, but one click can change more than it seems to.
- Updating Desk takes one click. From version 0.2.0-alpha.8 on, the window says when a newer Desk is out and offers Update now. Your apps keep running, and their data and settings aren't touched.
- Updating an app comes with a Desk update. Each Desk pins its built-in apps, so a newer n8n or Open WebUI arrives with a later Desk. The app's container is then replaced the next time the app starts, and its volume is kept.
A new app version can change the data in its volume the first time it starts, for example by upgrading its database. After that, the old version may not be able to read it. So swapping back to the old image won't get you back. A backup will.
Before you click Update now:
- Write down Desk's version; the first line of the menu next to the clock shows it.
- Stop the app and export its volume, as above.
- Update Desk, open the app, and do one real run.
If the update goes wrong:
- Stop making changes and leave the original volume alone.
- Look at the app's error message and its state in Desk.
- Check that your backup file is readable.
- Repair or restore on a second computer first.
- Reset or overwrite the original only once the restored copy works.
When you've outgrown a laptop
A laptop is a good home for an app that one person runs and a few people depend on for a result. It stops being one when:
- People need the app itself, not just its result, from their own computers. A Desk app's local address works only on your machine, and opening it to the network means accounts, encryption and a firewall.
- It must run when your laptop is closed, travelling or in for repair.
- The data needs server rules: nightly backups kept somewhere else, access limited to named people, logs someone reviews.
- More than one person must be able to fix it, at any time, without borrowing your laptop.
That's a server, and it's the next book: T11-L04 · Put Your Team's Assistant on a Server Colleagues Can Reach. Securing it before anyone else can reach it is T12-L04 · Lock Down a Self-Hosted AI Service Before Real Data Goes In. Owning an app that others depend on for years is T06-L05 · Run the App Others Depend On, and Hand It Over. Until then, don't make a laptop app reachable from the office network "just for a week". That week is how most exposed services start.
What goes wrong
Closing the window instead of stopping. Symptom: the battery drains and the fan runs, though you "closed" the app hours ago. Fix: the browser tab and the Desk window are only views. Press Stop on each app you're done with.
Taking ready for working. Symptom: Desk shows the app as ready, but it can't answer, or the Monday digest is empty. Fix: ready only means the app answered its built-in check. Open the app and check the model connection, the account and one real run, in that order.
The empty screen after a restart. Symptom: you open the app and your workflows or chats are gone. Fix: don't reset or prune anything. Open the Podman terminal from Desk and check that the volume is still listed. If Desk says Podman's machine is gone, the data went with it, and a new machine starts every app empty: that's the day your backup is for. Until you understand what happened, restore only onto a second computer.
Cleaning up the wrong thing. Symptom: a colleague frees disk space by resetting the Podman machine or pruning volumes, and every app loses its data. Fix: put one line in the run note: "Never reset Podman or prune volumes on this computer. Ask first." And keep a backup that lives off the laptop.
A backup that was never restored. Symptom: the file exists, but on the day you need it the app won't start from it, or a password is missing. Fix: restore every new kind of backup once on a second computer, and again after each app update.
Updating on a Monday morning. Symptom: you accept a Desk update just before the result is due, and the newer app version it brings needs a setting changed. Fix: update right after a run, never right before one, and export the volume first.
Two Desks side by side. Symptom: the earlier, larger beta Desk is still installed next to this one, and you can't tell which of them started an app. Fix: the two share one data folder. Use one Desk at a time, and stay with the small one.
Do it yourself (90 minutes)
Use one app from your own work. If you don't have one yet, install Open WebUI (a 10 GB download, because Desk starts a program that runs models with it) and connect it to your LM Studio server from T11-L02 · A Local Model Your Tools Can Call.
- Structure it (10 min). Write one sentence: what result the app produces, who depends on it, by when, and what should happen when it fails. Name the person who can start it when you're away.
- Understand it (20 min). Find where the result and its data live today. If you already run the app another way, find out whether it uses a named volume, and export what you can (for example, workflows as files). Ask the people who use the result which part they actually use. Rewrite your sentence if the answers changed it.
- Choose tools (10 min). Go down the ladder: is there a simpler way to give people most of the result (a saved-search email, a shared document)? Keep it as the fallback. Then look for the app in Desk's App Store, and read on Desk's help page what it downloads and where its data lives before you install.
- Build it (50 min). Install Desk and let it set up Podman. Press Install and open on the app, set it up, and do one real run you check by hand. Stop it, export the volume, copy its settings folder, and open it again. Restore the backup on a second computer and check your data and one credential. Write the run note, and let the colleague you named follow it while you watch without helping.
Exit check
What you hand in: a one-page run note, plus a restore on a second computer.
The run note says, in plain words:
- What the app produces, for whom, and by when.
- How to start and stop it in Desk, and how to open it.
- Where its data lives (the volume name and the settings folder) and where the backups go, how often, and who makes them.
- How to restore it, including anything that doesn't travel in the backup, such as a password.
- When it fails: what people see, what the fallback is, and one line on what never to do (reset Podman, prune volumes).
The restore is your latest backup, brought back on a second computer, showing your real workflows, prompts or chats.
It passes when a colleague who didn't build it follows the note without your help, and the restored app shows your data and completes one real run.
Rule to remember
If you haven't restored it, you don't have a backup.
Details for experts
Checked on 12 October 2026. You don't need this to follow the book; it's for setting things up or answering a colleague.
| What | Details | What it means for you |
|---|---|---|
| Desk downloads | Version 0.2.0-alpha.8, published 12 October 2026. Windows x64: an installer of 2.7 MB, unsigned, so Windows warns about an unknown publisher. Apple-chip Macs: an archive that is not notarized, meaning Apple hasn't checked it. Linux x64: an archive with the command-line program only. Nothing for Windows on ARM or for Intel Macs. | On a managed computer, show IT this row before you install. |
| Built-in apps | n8n 2.40.7, Gitea 1.27.3 (a place to keep files with their history), Open WebUI 0.11.4 and Ollama 0.40.2, which runs the models for Open WebUI. | Opening Open WebUI starts Ollama first; together they are a 10 GB download. |
| Local addresses | n8n http://127.0.0.1:35678/, Gitea http://127.0.0.1:33009/, Open WebUI http://127.0.0.1:33000/, Ollama http://127.0.0.1:31434/. | They work on your computer and nowhere else. |
| Volumes and settings | ai-lab-n8n-data; ai-lab-gitea-data and ai-lab-gitea-config; ai-lab-open-webui-data; ai-lab-ollama-data. Settings and secrets: the folder .ai-lab/apps in your home folder. | A backup needs the app's volumes and its settings folder. The names carry the product's earlier name, AI Lab. |
| Podman | On Windows, Desk's setup installs it. It needs WSL, the part of Windows that runs Linux programs. Podman Desktop is optional. Docker in place of Podman hasn't been tried. | If IT has switched WSL off, Podman can't start. Ask before you begin. |
| Backup commands | podman volume export and podman volume import work from a Windows or Mac terminal with Podman 5.6 or newer; that was checked on 23 September 2026. Desk has no backup command, and its team hasn't tried a volume restore yet. | Your restore test is the proof. podman version shows which Podman you have. |
| What was checked | Desk's steps, button names and versions, against Desk's own help pages. They record a trial on one Windows 11 computer on 12 October 2026. Nobody has worked through this whole book with the small Desk, or used its window on a Mac. | Expect small differences, and tell whoever runs your course. |
| n8n licence | Source-available (you can read the code, but the licence limits reuse) under its Sustainable Use License, which allows internal business use. | Running the digest for your own group or company is covered. |
| If these details change | The lifecycle rules in this book stay the same. | Open, Stop, Remove and the backup habit don't depend on version numbers. |
Further reading and tools
Next books
- T11-L04 · Put Your Team's Assistant on a Server Colleagues Can Reach: when colleagues need the app itself, not only its result.
- T12-L04 · Lock Down a Self-Hosted AI Service Before Real Data Goes In: securing a self-hosted stack before anyone else can reach it.
- T06-L05 · Run the App Others Depend On, and Hand It Over: keeping something others depend on running for years.
- T02-L04 · A Self-Hosted Assistant Your Team Can Use Safely: Open WebUI for a whole team.
- T12-L03 · Give an Unattended Workflow Limits and a Stop a Colleague Can Use: what an automation may do on its own.
Tools
- Heidelberg AI Desk: Taught. Installs and runs the apps in this book.
- Podman: Taught. The container engine under Desk; Desk's setup installs it.
- n8n: Taught. The workflow app in the lab example.
- Open WebUI: Taught. The chat app in the company example.
- LM Studio: Taught. The local model server the apps call.
- PubMed: Catalogued. The saved-search email is the digest's fallback.
- Docker: Catalogued. The engine many tutorials assume; Desk uses Podman instead.
Latest news
Harbor + Docker Sandboxes: Run Safe, Reproducible Agent Evals
Docker's Harbor can now run every eval task in Docker Sandboxes, which are MicroVM environments for running agents like Claude Code, Codex, and Cursor safely. With Sandboxes you can define custom network policies for fair, reproducible evals, and you can run evals locally or in the cloud, starting free on Docker Sandboxes on local surfaces and scaling up.
Trust Docker for the agents you don't
At the WeAreDevelopers event, Docker introduced Cloud Sandboxes, an open Sandbox Kit specification, and a commitment to bring Kits to the CNCF for neutral governance. The offering is framed around running agents that users do not fully trust.
YOLO Mode: Agent Autonomy Without the Guardrails
Docker explains that unrestricted coding-agent autonomy can put files, credentials and networks at risk, and says isolated disposable sandboxes reduce the blast radius.