From 27ae1be8f727f5b80918d72a00d68c78d3b4966e Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 1 Apr 2026 10:44:25 +0200 Subject: [PATCH 1/3] Adapt devcontainer.json for systemd-based devcontainer image Update devcontainer.json settings to work with the new systemd-based devcontainer image (v4). - Update name to mention apps instead of add-ons - Use same order of elements as in devcontainer template - Bump image tag to 4-supervisor to get the systemd-enabled image - Set overrideCommand to false so the image's CMD (/sbin/init) runs as PID 1 instead of being replaced by VS Code's default sleep command - Set remoteUser to vscode to preserve the non-root shell experience (required when overrideCommand is false, since VS Code no longer injects its own user-switching wrapper) - Add /var/lib/containerd volume mount because modern Docker uses the containerd snapshotter, which stores layer data outside /var/lib/docker - Add tmpfs on /tmp to match typical systemd expectations and avoid leftover state across container restarts --- .devcontainer.json | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.devcontainer.json b/.devcontainer.json index 8aaa6965..9142d0c9 100644 --- a/.devcontainer.json +++ b/.devcontainer.json @@ -1,14 +1,16 @@ { - "name": "Example devcontainer for add-on repositories", - "image": "ghcr.io/home-assistant/devcontainer:2-addons", + "name": "Example devcontainer for apps repositories", + "image": "ghcr.io/home-assistant/devcontainer:4-apps", + "overrideCommand": false, + "remoteUser": "vscode", "appPort": ["7123:8123", "7357:4357"], "postStartCommand": "bash devcontainer_bootstrap", "runArgs": ["-e", "GIT_EDITOR=code --wait", "--privileged"], + "workspaceFolder": "/mnt/supervisor/addons/local/${localWorkspaceFolderBasename}", + "workspaceMount": "source=${localWorkspaceFolder},target=${containerWorkspaceFolder},type=bind,consistency=cached", "containerEnv": { "WORKSPACE_DIRECTORY": "${containerWorkspaceFolder}" }, - "workspaceFolder": "/mnt/supervisor/addons/local/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=${containerWorkspaceFolder},type=bind,consistency=cached", "customizations": { "vscode": { "extensions": ["timonwong.shellcheck", "esbenp.prettier-vscode"], @@ -28,6 +30,8 @@ }, "mounts": [ "type=volume,target=/var/lib/docker", - "type=volume,target=/mnt/supervisor" + "type=volume,target=/var/lib/containerd", + "type=volume,target=/mnt/supervisor", + "type=tmpfs,target=/tmp" ] } From b7baad18652948eb04684b33e4f2a9dcf5927efa Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 1 Apr 2026 08:58:00 +0000 Subject: [PATCH 2/3] Use apps command instead of deprecated addons command in tasks.json --- .vscode/tasks.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index a0528bff..d8b18847 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -16,9 +16,9 @@ "problemMatcher": [] }, { - "label": "Start Addon", + "label": "Start App", "type": "shell", - "command": "ha addons stop \"local_${input:addonName}\"; ha addons start \"local_${input:addonName}\"; docker logs --follow \"addon_local_${input:addonName}\"", + "command": "ha apps stop \"local_${input:appName}\"; ha apps start \"local_${input:appName}\"; docker logs --follow \"addon_local_${input:appName}\"", "group": { "kind": "test", "isDefault": false @@ -33,9 +33,9 @@ } }, { - "label": "Rebuild and Start Addon", + "label": "Rebuild and Start App", "type": "shell", - "command": "ha addons rebuild --force \"local_${input:addonName}\"; ha addons start \"local_${input:addonName}\"; docker logs --follow \"addon_local_${input:addonName}\"", + "command": "ha apps rebuild --force \"local_${input:appName}\"; ha apps start \"local_${input:appName}\"; docker logs --follow \"addon_local_${input:appName}\"", "group": { "kind": "test", "isDefault": false @@ -49,9 +49,9 @@ ], "inputs": [ { - "id": "addonName", + "id": "appName", "type": "pickString", - "description": "Name of addon (to add your addon to this list, please edit .vscode/tasks.json)", + "description": "Name of app (to add your app to this list, please edit .vscode/tasks.json)", "options": [ "example", ] From d310965165a5657ddd65752e60e158512b8ac4fa Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 1 Apr 2026 08:58:11 +0000 Subject: [PATCH 3/3] Add install app command to tasks.json --- .vscode/tasks.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index d8b18847..4daf6abd 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -15,6 +15,20 @@ }, "problemMatcher": [] }, + { + "label": "Install App", + "type": "shell", + "command": "ha apps install \"local_${input:appName}\"", + "group": { + "kind": "test", + "isDefault": false + }, + "presentation": { + "reveal": "always", + "panel": "new" + }, + "problemMatcher": [] + }, { "label": "Start App", "type": "shell",