From 397972c01a7789c9f2e2923a94d77665423bbd7f Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 25 Jun 2025 09:37:43 +0000 Subject: [PATCH 1/6] feat: add code-server app customization --- src/code-server/devcontainer-feature.json | 16 ++++++++++++++++ src/code-server/install.sh | 7 +++++++ 2 files changed, 23 insertions(+) diff --git a/src/code-server/devcontainer-feature.json b/src/code-server/devcontainer-feature.json index f8b0835..0fe8ec8 100644 --- a/src/code-server/devcontainer-feature.json +++ b/src/code-server/devcontainer-feature.json @@ -156,6 +156,22 @@ "description": "Path to the workspace or folder to open on startup. Can be a directory or a .code-workspace file." } }, + "customizations": { + "coder": { + "apps": [ + { + "slug": "code-server", + "displayName": "code-server", + "url": "http://${containerEnv:CODE_SERVER_HOST}:${containerEnv:CODE_SERVER_PORT}/${containerEnv:CODE_SERVER_WORKSPACE}", + "openIn": "tab", + "share": "owner", + "icon": "/icons/web.svg", + "order": 1, + "group": "Web Editors" + } + ] + } + }, "entrypoint": "/usr/local/bin/code-server-entrypoint", "dependsOn": { "ghcr.io/devcontainers/features/common-utils:2": {} diff --git a/src/code-server/install.sh b/src/code-server/install.sh index 1895879..9599366 100644 --- a/src/code-server/install.sh +++ b/src/code-server/install.sh @@ -22,6 +22,13 @@ if [[ -n $WORKSPACE ]]; then CODE_SERVER_WORKSPACE="$WORKSPACE" fi +# Serialize these options in the container environment for reference in JSON. +cat << /etc/environment +CODE_SERVER_HOST=$HOST +CODE_SERVER_PORT=$PORT +CODE_SERVER_WORKSPACE=$CODE_SERVER_WORKSPACE +EOF + FLAGS=() FLAGS+=(--auth "$AUTH") FLAGS+=(--bind-addr "$HOST:$PORT") From 354681a80acc547eac5adc46a6936e42c36b5818 Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 25 Jun 2025 09:40:00 +0000 Subject: [PATCH 2/6] folder --- src/code-server/devcontainer-feature.json | 2 +- src/code-server/install.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/code-server/devcontainer-feature.json b/src/code-server/devcontainer-feature.json index 0fe8ec8..c45ea2e 100644 --- a/src/code-server/devcontainer-feature.json +++ b/src/code-server/devcontainer-feature.json @@ -162,7 +162,7 @@ { "slug": "code-server", "displayName": "code-server", - "url": "http://${containerEnv:CODE_SERVER_HOST}:${containerEnv:CODE_SERVER_PORT}/${containerEnv:CODE_SERVER_WORKSPACE}", + "url": "http://${containerEnv:CODE_SERVER_HOST}:${containerEnv:CODE_SERVER_PORT}/${containerEnv:CODE_SERVER_FOLDER}", "openIn": "tab", "share": "owner", "icon": "/icons/web.svg", diff --git a/src/code-server/install.sh b/src/code-server/install.sh index 9599366..9e24f53 100644 --- a/src/code-server/install.sh +++ b/src/code-server/install.sh @@ -26,7 +26,7 @@ fi cat << /etc/environment CODE_SERVER_HOST=$HOST CODE_SERVER_PORT=$PORT -CODE_SERVER_WORKSPACE=$CODE_SERVER_WORKSPACE +CODE_SERVER_FOLDER=?folder=$CODE_SERVER_WORKSPACE EOF FLAGS=() From d99cfa7626199199d0548a0e11e24067a2ce23ae Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 25 Jun 2025 09:41:55 +0000 Subject: [PATCH 3/6] eof my eof --- src/code-server/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/code-server/install.sh b/src/code-server/install.sh index 9e24f53..c47519e 100644 --- a/src/code-server/install.sh +++ b/src/code-server/install.sh @@ -23,7 +23,7 @@ if [[ -n $WORKSPACE ]]; then fi # Serialize these options in the container environment for reference in JSON. -cat << /etc/environment +cat <> /etc/environment CODE_SERVER_HOST=$HOST CODE_SERVER_PORT=$PORT CODE_SERVER_FOLDER=?folder=$CODE_SERVER_WORKSPACE From feb15d4466a41e1500234790ddeef3988970322e Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 25 Jun 2025 13:06:05 +0000 Subject: [PATCH 4/6] rely on envs to fix app changes --- src/code-server/devcontainer-feature.json | 7 +++---- src/code-server/install.sh | 7 ------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/code-server/devcontainer-feature.json b/src/code-server/devcontainer-feature.json index c45ea2e..040d0bc 100644 --- a/src/code-server/devcontainer-feature.json +++ b/src/code-server/devcontainer-feature.json @@ -162,12 +162,11 @@ { "slug": "code-server", "displayName": "code-server", - "url": "http://${containerEnv:CODE_SERVER_HOST}:${containerEnv:CODE_SERVER_PORT}/${containerEnv:CODE_SERVER_FOLDER}", + "url": "http://${localEnv:FEATURE_CODE_SERVER_HOST:127.0.0.1}:${localEnv:FEATURE_CODE_SERVER_PORT:8080}/", "openIn": "tab", "share": "owner", - "icon": "/icons/web.svg", - "order": 1, - "group": "Web Editors" + "icon": "/icon/code.svg", + "group": "${localEnv:FEATURE_CODE_SERVER_APP_GROUP:Web Editors}" } ] } diff --git a/src/code-server/install.sh b/src/code-server/install.sh index c47519e..1895879 100644 --- a/src/code-server/install.sh +++ b/src/code-server/install.sh @@ -22,13 +22,6 @@ if [[ -n $WORKSPACE ]]; then CODE_SERVER_WORKSPACE="$WORKSPACE" fi -# Serialize these options in the container environment for reference in JSON. -cat <> /etc/environment -CODE_SERVER_HOST=$HOST -CODE_SERVER_PORT=$PORT -CODE_SERVER_FOLDER=?folder=$CODE_SERVER_WORKSPACE -EOF - FLAGS=() FLAGS+=(--auth "$AUTH") FLAGS+=(--bind-addr "$HOST:$PORT") From c1aaca1e038551f45b653e07a2ae0b530e28b4f3 Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 25 Jun 2025 14:38:53 +0000 Subject: [PATCH 5/6] add app options --- src/code-server/README.md | 3 +++ src/code-server/devcontainer-feature.json | 23 +++++++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/code-server/README.md b/src/code-server/README.md index 8bb6d4c..b9c544b 100644 --- a/src/code-server/README.md +++ b/src/code-server/README.md @@ -45,6 +45,9 @@ VS Code in the browser ([code-server](https://github.com/coder/code-server)) | version | The version of code-server to install. If empty, installs the latest version. | string | - | | welcomeText | Text to show on login page. | string | - | | workspace | Path to the workspace or folder to open on startup. Can be a directory or a .code-workspace file. | string | - | +| appOpenIn | The way to open the app in Coder. Defaults to 'slim-window'. | string | slim-window | +| appShare | The group to use for the app in Coder. Defaults to 'owner'. | string | owner | +| appGroup | The group to use for the app in Coder. Defaults to 'Web Editors'. | string | Web Editors | diff --git a/src/code-server/devcontainer-feature.json b/src/code-server/devcontainer-feature.json index 040d0bc..ddf090b 100644 --- a/src/code-server/devcontainer-feature.json +++ b/src/code-server/devcontainer-feature.json @@ -154,6 +154,21 @@ "type": "string", "default": "", "description": "Path to the workspace or folder to open on startup. Can be a directory or a .code-workspace file." + }, + "appOpenIn": { + "type": "string", + "default": "slim-window", + "description": "The way to open the app in Coder. Defaults to 'slim-window'." + }, + "appShare": { + "type": "string", + "default": "owner", + "description": "The group to use for the app in Coder. Defaults to 'owner'." + }, + "appGroup": { + "type": "string", + "default": "Web Editors", + "description": "The group to use for the app in Coder. Defaults to 'Web Editors'." } }, "customizations": { @@ -162,11 +177,11 @@ { "slug": "code-server", "displayName": "code-server", - "url": "http://${localEnv:FEATURE_CODE_SERVER_HOST:127.0.0.1}:${localEnv:FEATURE_CODE_SERVER_PORT:8080}/", - "openIn": "tab", - "share": "owner", + "url": "http://${localEnv:FEATURE_CODE_SERVER_OPTION_HOST:127.0.0.1}:${localEnv:FEATURE_CODE_SERVER_OPTION_PORT:8080}/", + "openIn": "${localEnv:FEATURE_CODE_SERVER_OPTION_APP_OPEN_IN:slim-window}", + "share": "${localEnv:FEATURE_CODE_SERVER_OPTION_APP_SHARE:owner}", "icon": "/icon/code.svg", - "group": "${localEnv:FEATURE_CODE_SERVER_APP_GROUP:Web Editors}" + "group": "${localEnv:FEATURE_CODE_SERVER_OPTION_APP_GROUP:Web Editors}" } ] } From 87ec42a4e9d2bc0c89e1e951733de72c475e4d3d Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 25 Jun 2025 14:43:46 +0000 Subject: [PATCH 6/6] fix envs --- src/code-server/devcontainer-feature.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/code-server/devcontainer-feature.json b/src/code-server/devcontainer-feature.json index ddf090b..56cfc39 100644 --- a/src/code-server/devcontainer-feature.json +++ b/src/code-server/devcontainer-feature.json @@ -178,10 +178,10 @@ "slug": "code-server", "displayName": "code-server", "url": "http://${localEnv:FEATURE_CODE_SERVER_OPTION_HOST:127.0.0.1}:${localEnv:FEATURE_CODE_SERVER_OPTION_PORT:8080}/", - "openIn": "${localEnv:FEATURE_CODE_SERVER_OPTION_APP_OPEN_IN:slim-window}", - "share": "${localEnv:FEATURE_CODE_SERVER_OPTION_APP_SHARE:owner}", + "openIn": "${localEnv:FEATURE_CODE_SERVER_OPTION_APPOPENIN:slim-window}", + "share": "${localEnv:FEATURE_CODE_SERVER_OPTION_APPSHARE:owner}", "icon": "/icon/code.svg", - "group": "${localEnv:FEATURE_CODE_SERVER_OPTION_APP_GROUP:Web Editors}" + "group": "${localEnv:FEATURE_CODE_SERVER_OPTION_APPGROUP:Web Editors}" } ] }