Skip to content

Commit 4bf0f0f

Browse files
Add OpenCode Desktop to all KasmVNC OpenCode templates
1 parent 34290c5 commit 4bf0f0f

12 files changed

Lines changed: 33 additions & 20 deletions

File tree

Docker-Images/Designer/Dockerfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ RUN dpkg --add-architecture i386 && \
8484
RUN <<'EOSH'
8585
set -e
8686
ORCA_VERSION="2.3.1"
87+
OPENCODE_DESKTOP_URL="https://opencode.ai/es/download/stable/linux-x64-deb"
8788
# Prefer the Ubuntu 22.04 build to avoid newer WebKit (libwebkit2gtk-4.1) requirement,
8889
# but keep fallbacks so future tags still resolve.
8990
ORCA_URLS=" \
@@ -109,9 +110,11 @@ LASERGRBL_VERSION="7.14.1"
109110
LASERGRBL_URL="https://github.com/arkypita/LaserGRBL/releases/download/v${LASERGRBL_VERSION}/install.exe"
110111
curl -fL "${LASERGRBL_URL}" -o /opt/lasergrbl/LaserGRBL-install.exe
111112
curl -fL "https://github.com/t-oster/VisiCut/releases/download/2.1/visicut_2.1%2Bdevel-1_all.deb" -o /tmp/visicut.deb
113+
curl -fL "${OPENCODE_DESKTOP_URL}" -o /tmp/opencode-desktop.deb
112114
apt-get update
113-
apt-get install -y --no-install-recommends /tmp/visicut.deb
115+
apt-get install -y --no-install-recommends /tmp/visicut.deb /tmp/opencode-desktop.deb
114116
rm /tmp/visicut.deb
117+
rm /tmp/opencode-desktop.deb
115118
rm -rf /var/lib/apt/lists/*
116119
EOSH
117120

@@ -206,7 +209,7 @@ RUN update-desktop-database /usr/share/applications || true && \
206209

207210
# Crear accesos directos en Desktop para todas las aplicaciones
208211
RUN mkdir -p /etc/skel/Desktop && \
209-
for f in firefox.desktop org.freecadweb.FreeCAD.desktop org.inkscape.Inkscape.desktop gimp.desktop org.kde.krita.desktop org.kicad.kicad.desktop openscad.desktop PrusaSlicer.desktop librecad.desktop meshlab.desktop org.fritzing.Fritzing.desktop net.launchpad.code.simulide.desktop geany.desktop VisiCut.desktop orcaslicer.desktop appimagepool.desktop; do \
212+
for f in firefox.desktop org.freecadweb.FreeCAD.desktop org.inkscape.Inkscape.desktop gimp.desktop org.kde.krita.desktop org.kicad.kicad.desktop openscad.desktop PrusaSlicer.desktop librecad.desktop meshlab.desktop org.fritzing.Fritzing.desktop net.launchpad.code.simulide.desktop geany.desktop VisiCut.desktop orcaslicer.desktop appimagepool.desktop OpenCode.desktop; do \
210213
src="/usr/share/applications/$f"; \
211214
if [ -f "$src" ]; then ln -sf "$src" "/etc/skel/Desktop/$f"; fi; \
212215
done && \

Docker-Images/Developer/Dockerfile

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,23 +163,25 @@ RUN set -e; \
163163
fi; \
164164
rm -rf /var/lib/apt/lists/*
165165

166-
# GitHub Desktop (shiftkey build) y Claude Desktop (unofficial build)
166+
# GitHub Desktop (shiftkey build), Claude Desktop (unofficial build) y OpenCode Desktop
167167
ARG GITHUB_DESKTOP_REPO=shiftkey/desktop
168168
ARG CLAUDE_DESKTOP_REPO=aaddrick/claude-desktop-debian
169+
ARG OPENCODE_DESKTOP_URL=https://opencode.ai/es/download/stable/linux-x64-deb
169170
RUN set -e; \
170171
GH_DESKTOP_URL="$(curl -fsSL "https://api.github.com/repos/${GITHUB_DESKTOP_REPO}/releases/latest" | \
171172
jq -r '.assets[] | select(.name | test("GitHubDesktop-linux-amd64-.*\\.deb$")) | .browser_download_url' | head -n1)"; \
172173
CLAUDE_URL="$(curl -fsSL "https://api.github.com/repos/${CLAUDE_DESKTOP_REPO}/releases/latest" | \
173174
jq -r '.assets[] | select(.name | test("claude-desktop_.*_amd64\\.deb$")) | .browser_download_url' | head -n1)"; \
174-
if [ -z "$GH_DESKTOP_URL" ] || [ -z "$CLAUDE_URL" ]; then \
175-
echo "No se encontraron assets .deb en GitHub releases" >&2; \
175+
if [ -z "$GH_DESKTOP_URL" ] || [ -z "$CLAUDE_URL" ] || [ -z "$OPENCODE_DESKTOP_URL" ]; then \
176+
echo "No se encontraron URLs .deb válidas para las apps desktop" >&2; \
176177
exit 1; \
177178
fi; \
178179
curl -fsSL "$GH_DESKTOP_URL" -o /tmp/github-desktop.deb; \
179180
curl -fsSL "$CLAUDE_URL" -o /tmp/claude-desktop.deb; \
181+
curl -fsSL "$OPENCODE_DESKTOP_URL" -o /tmp/opencode-desktop.deb; \
180182
apt-get update; \
181-
apt-get install -y --no-install-recommends /tmp/github-desktop.deb /tmp/claude-desktop.deb; \
182-
rm -rf /var/lib/apt/lists/* /tmp/github-desktop.deb /tmp/claude-desktop.deb
183+
apt-get install -y --no-install-recommends /tmp/github-desktop.deb /tmp/claude-desktop.deb /tmp/opencode-desktop.deb; \
184+
rm -rf /var/lib/apt/lists/* /tmp/github-desktop.deb /tmp/claude-desktop.deb /tmp/opencode-desktop.deb
183185

184186
# Electron apps dentro de contenedores Docker necesitan desactivar el sandbox
185187
# (no hay user namespaces). Los wrappers añaden --no-sandbox y pistas de Ozone.
@@ -265,7 +267,7 @@ RUN update-desktop-database /usr/share/applications || true && \
265267
# Accesos directos en el escritorio por defecto
266268
RUN set -e; \
267269
mkdir -p /etc/skel/Desktop && \
268-
for f in code.desktop github-desktop.desktop claude-desktop.desktop firefox.desktop geany.desktop appimagepool.desktop; do \
270+
for f in code.desktop github-desktop.desktop claude-desktop.desktop OpenCode.desktop firefox.desktop geany.desktop appimagepool.desktop; do \
269271
src="/usr/share/applications/$f"; \
270272
if [ -f "$src" ]; then ln -sf "$src" "/etc/skel/Desktop/$f"; fi; \
271273
done; \

Docker-Images/DeveloperAndroid/Dockerfile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,14 @@ RUN install -m 0755 -d /etc/apt/keyrings && \
128128
apt-get install -y --no-install-recommends code && \
129129
rm -rf /var/lib/apt/lists/*
130130

131+
# OpenCode Desktop
132+
ARG OPENCODE_DESKTOP_URL=https://opencode.ai/es/download/stable/linux-x64-deb
133+
RUN set -e; \
134+
curl -fsSL "$OPENCODE_DESKTOP_URL" -o /tmp/opencode-desktop.deb; \
135+
apt-get update; \
136+
apt-get install -y --no-install-recommends /tmp/opencode-desktop.deb; \
137+
rm -rf /var/lib/apt/lists/* /tmp/opencode-desktop.deb
138+
131139
# Android SDK commandline tools + componentes principales
132140
ENV ANDROID_HOME=/opt/android-sdk \
133141
ANDROID_SDK_ROOT=/opt/android-sdk \
@@ -179,7 +187,7 @@ Type=Application
179187
Categories=Development;IDE;
180188
EOF
181189
RUN chmod +x /usr/share/applications/android-studio.desktop && \
182-
for app in android-studio.desktop code.desktop firefox.desktop google-chrome.desktop; do \
190+
for app in android-studio.desktop code.desktop OpenCode.desktop firefox.desktop google-chrome.desktop; do \
183191
if [ -f "/usr/share/applications/${app}" ]; then \
184192
ln -sf "/usr/share/applications/${app}" "/etc/skel/Desktop/${app}"; \
185193
fi; \

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
Imágenes Docker y templates de Coder para workspaces de desarrollo y diseño en MakeSpace Madrid.
44

55
## Imágenes
6-
- `ghcr.io/makespacemadrid/coder-mks-developer:latest` (Docker-Images/Developer): escritorio XFCE/KasmVNC, Docker, Node.js 22, CLIs de IA (Codex, Claude, Gemini, Continue, Qwen), VS Code, GitHub Desktop, Claude Desktop, AppImage Pool, Geany y audio (PulseAudio/ALSA).
7-
- `ghcr.io/makespacemadrid/coder-mks-developer-android:latest` (Docker-Images/DeveloperAndroid): escritorio KDE/KasmVNC, toolchain Android (SDK/CLI), Node.js 22, VS Code, JetBrains Toolbox y utilidades Android (adb/scrcpy).
8-
- `ghcr.io/makespacemadrid/coder-mks-design:latest` (Docker-Images/Designer): suite de diseño 2D/3D y electrónica (Inkscape, GIMP, Krita, Blender, FreeCAD, OpenSCAD, PrusaSlicer, MeshLab, LibreCAD, KiCad, Fritzing, SimulIDE, LaserGRBL via Wine), ImageMagick, FFmpeg, ExifTool, Pandoc, FontForge, AppImage Pool y Geany.
6+
- `ghcr.io/makespacemadrid/coder-mks-developer:latest` (Docker-Images/Developer): escritorio XFCE/KasmVNC, Docker, Node.js 22, CLIs de IA (Codex, Claude, Gemini, Continue, Qwen), VS Code, GitHub Desktop, Claude Desktop, OpenCode Desktop, AppImage Pool, Geany y audio (PulseAudio/ALSA).
7+
- `ghcr.io/makespacemadrid/coder-mks-developer-android:latest` (Docker-Images/DeveloperAndroid): escritorio KDE/KasmVNC, toolchain Android (SDK/CLI), Node.js 22, VS Code, OpenCode Desktop, JetBrains Toolbox y utilidades Android (adb/scrcpy).
8+
- `ghcr.io/makespacemadrid/coder-mks-design:latest` (Docker-Images/Designer): suite de diseño 2D/3D y electrónica (Inkscape, GIMP, Krita, Blender, FreeCAD, OpenSCAD, PrusaSlicer, MeshLab, LibreCAD, KiCad, Fritzing, SimulIDE, LaserGRBL via Wine), OpenCode Desktop, ImageMagick, FFmpeg, ExifTool, Pandoc, FontForge, AppImage Pool y Geany.
99

1010
Build local:
1111
```bash

workspaces/AdvancedHostDANGER/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ tags: [docker, workspace, host, danger, makespace]
1313
## Qué incluye
1414
- Escritorio XFCE vía KasmVNC, code-server opcional y shell con tooling dev.
1515
- Docker del host (`/var/run/docker.sock`), `network_mode = host`, GPUs del host.
16-
- Apps desktop: VS Code, GitHub Desktop, Claude Desktop, Google Chrome, Firefox, Geany, AppImage Pool.
16+
- Apps desktop: VS Code, GitHub Desktop, Claude Desktop, OpenCode Desktop, Google Chrome, Firefox, Geany, AppImage Pool.
1717
- Stack dev: Docker Engine/Compose, Node.js 22, CLIs de IA (Codex, Claude, Gemini, Continue, Qwen), git/gh, pulseaudio/ALSA.
1818
- Python listo para venvs (`python3-venv`) + venv base en `~/.venvs/base`.
1919
- Accesos directos precreados en el escritorio y módulos KasmVNC, Filebrowser, OpenCode. RDP es solo para workspaces Windows según [la guía de Coder](https://coder.com/docs/user-guides/workspace-access/remote-desktops); esta imagen Linux usa KasmVNC.

workspaces/AdvancedHostDANGER/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ JSONCFG
337337
338338
# Refrescar accesos directos en el escritorio (si faltan)
339339
mkdir -p ~/Desktop
340-
for f in code.desktop github-desktop.desktop claude-desktop.desktop firefox.desktop google-chrome.desktop geany.desktop appimagepool.desktop; do
340+
for f in code.desktop github-desktop.desktop claude-desktop.desktop OpenCode.desktop firefox.desktop google-chrome.desktop geany.desktop appimagepool.desktop; do
341341
src="/usr/share/applications/$f"
342342
if [ -f "$src" ] && [ ! -e "$HOME/Desktop/$f" ]; then
343343
ln -sf "$src" "$HOME/Desktop/$f"

workspaces/Developer/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Workspace de desarrollo general, con **Docker in Docker (DinD)**, escritorio XFC
1818
## Qué incluye
1919
- Docker Engine y docker-compose-plugin internos (DinD, no se usa el socket del host).
2020
- Escritorio XFCE/KasmVNC, code-server y Filebrowser. RDP solo aplica a workspaces Windows según [la guía de Coder](https://coder.com/docs/user-guides/workspace-access/remote-desktops).
21-
- Apps desktop: VS Code, GitHub Desktop, Claude Desktop, Google Chrome, Firefox, Geany, AppImage Pool.
21+
- Apps desktop: VS Code, GitHub Desktop, Claude Desktop, OpenCode Desktop, Google Chrome, Firefox, Geany, AppImage Pool.
2222
- Node.js 22, CLIs de IA (OpenAI/Codex, Claude, Gemini, Continue, Qwen), git/gh y audio (PulseAudio/ALSA).
2323
- Utilidades CLI extra: `yq`, `sqlite3`.
2424
- Python con `python3-venv` y venv base en `~/.venvs/base`.

workspaces/Developer/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ JSONCFG
380380
381381
# Refrescar accesos directos en el escritorio (si faltan)
382382
mkdir -p ~/Desktop
383-
for f in code.desktop github-desktop.desktop claude-desktop.desktop firefox.desktop google-chrome.desktop geany.desktop appimagepool.desktop; do
383+
for f in code.desktop github-desktop.desktop claude-desktop.desktop OpenCode.desktop firefox.desktop google-chrome.desktop geany.desktop appimagepool.desktop; do
384384
src="/usr/share/applications/$f"
385385
if [ -f "$src" ] && [ ! -e "$HOME/Desktop/$f" ]; then
386386
ln -sf "$src" "$HOME/Desktop/$f"

workspaces/DeveloperAndroid/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Workspace gráfico KDE/KasmVNC con toolchain Android preinstalado. Usa la imagen
1616
- Java 17, Node.js 22 (npm/pnpm/yarn), git/git-lfs y utilidades de desarrollo.
1717
- VS Code listo para personalizar tus extensiones (sin bundle preinstalado) y soporte C/C++ vía paquetes base.
1818
- JetBrains Toolbox + módulo JetBrains de Coder para lanzar IntelliJ IDEA remoto (instala el plugin Android) vía JetBrains Gateway/Coder Desktop.
19-
- Google Chrome y Firefox preinstalados.
19+
- Google Chrome, Firefox y OpenCode Desktop preinstalados.
2020
- Módulos Coder: KasmVNC (KDE), code-server, Filebrowser, OpenCode, git-config, tmux.
2121
- Autoprovisiona una key de IA MakeSpace (30 días) si dejas activa la casilla `[AI/OpenCode] Provisionar API key MakeSpace automáticamente` y el endpoint está configurado por entorno.
2222
- Antigravity auto-updater (`antigravity`) preinstalado.

workspaces/DeveloperAndroid/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ JSONCFG
363363
364364
# Refrescar accesos directos en el escritorio (si faltan)
365365
mkdir -p ~/Desktop
366-
for f in android-studio.desktop code.desktop firefox.desktop google-chrome.desktop; do
366+
for f in android-studio.desktop code.desktop OpenCode.desktop firefox.desktop google-chrome.desktop; do
367367
src="/usr/share/applications/$f"
368368
if [ -f "$src" ] && [ ! -e "$HOME/Desktop/$f" ]; then
369369
ln -sf "$src" "$HOME/Desktop/$f"

0 commit comments

Comments
 (0)