Skip to content

Commit bb69ac6

Browse files
Add desktop apps and host networking
1 parent f0f9144 commit bb69ac6

File tree

3 files changed

+14
-48
lines changed

3 files changed

+14
-48
lines changed

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
- `ghcr.io/makespacemadrid/coder-mks-design:latest` (build desde `Docker-Images/Designer/Dockerfile`). Enfoque en diseño 2D/3D y electrónica: Inkscape, GIMP, Krita, Blender, FreeCAD, OpenSCAD, PrusaSlicer, OrcaSlicer, MeshLab, LibreCAD, KiCad, Fritzing, SimulIDE, LaserGRBL (Wine).
88

99
## Templates
10-
- `DeveloperAdvanced`: acceso directo al Docker del host (monta `/var/run/docker.sock`), GPUs habilitadas por defecto, puertos opcionales, home persistente.
10+
- `DeveloperAdvanced`: acceso directo al Docker del host (monta `/var/run/docker.sock`), GPUs habilitadas por defecto, red en modo host, home persistente.
1111
- `DeveloperDIND`: Docker-in-Docker con daemon propio y volumen persistente para `/var/lib/docker`; GPUs opcionales al crear el workspace; misma imagen base que `DeveloperAdvanced`.
1212
- `Designer`: escritorio XFCE/KasmVNC con herramientas de diseño; GPUs opcionales; home persistente.
1313

Docker-Images/Developer/Dockerfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,17 @@ RUN install -m 0755 -d /etc/apt/keyrings && \
9898
apt-get install -y --no-install-recommends code && \
9999
rm -rf /var/lib/apt/lists/*
100100

101+
# GitHub Desktop (shiftkey build) y Claude Desktop (unofficial build)
102+
ARG GITHUB_DESKTOP_VERSION=3.4.13-linux1
103+
ARG GITHUB_DESKTOP_DEB_URL=https://github.com/shiftkey/desktop/releases/download/release-${GITHUB_DESKTOP_VERSION}/GitHubDesktop-linux-amd64-${GITHUB_DESKTOP_VERSION}.deb
104+
ARG CLAUDE_DESKTOP_VERSION=0.14.10
105+
ARG CLAUDE_DESKTOP_DEB_URL=https://github.com/aaddrick/claude-desktop-debian/releases/download/v1.1.10%2Bclaude${CLAUDE_DESKTOP_VERSION}/claude-desktop_${CLAUDE_DESKTOP_VERSION}_amd64.deb
106+
RUN curl -fsSL "${GITHUB_DESKTOP_DEB_URL}" -o /tmp/github-desktop.deb && \
107+
curl -fsSL "${CLAUDE_DESKTOP_DEB_URL}" -o /tmp/claude-desktop.deb && \
108+
apt-get update && \
109+
apt-get install -y --no-install-recommends /tmp/github-desktop.deb /tmp/claude-desktop.deb && \
110+
rm -rf /var/lib/apt/lists/* /tmp/github-desktop.deb /tmp/claude-desktop.deb
111+
101112
ENV PIPX_HOME=/opt/pipx \
102113
PIPX_BIN_DIR=/usr/local/bin \
103114
PATH="/usr/local/bin:${PATH}"

workspaces/DeveloperAdvanced/main.tf

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -15,41 +15,9 @@ variable "docker_socket" {
1515
type = string
1616
}
1717

18-
# ================================
19-
# Parameters visibles en Coder
20-
# ================================
21-
22-
data "coder_parameter" "expose_ports" {
23-
name = "expose_ports"
24-
display_name = "Expose ports to host"
25-
description = "Activa o desactiva el mapeo de puertos hacia el host"
26-
type = "bool"
27-
default = false
28-
mutable = true
29-
}
30-
31-
data "coder_parameter" "port_range_start" {
32-
name = "port_range_start"
33-
display_name = "Port range start"
34-
description = "Puerto inicial del rango a exponer en el host"
35-
type = "number"
36-
default = 15000
37-
mutable = true
38-
}
39-
40-
data "coder_parameter" "port_range_end" {
41-
name = "port_range_end"
42-
display_name = "Port range end"
43-
description = "Puerto final del rango a exponer en el host (incluido)"
44-
type = "number"
45-
default = 15050
46-
mutable = true
47-
}
48-
4918
locals {
5019
username = data.coder_workspace_owner.me.name
5120
workspace_image = "ghcr.io/makespacemadrid/coder-mks-developer:latest"
52-
port_range = data.coder_parameter.expose_ports.value ? range(data.coder_parameter.port_range_start.value, data.coder_parameter.port_range_end.value + 1) : []
5321
}
5422

5523
provider "docker" {
@@ -299,6 +267,8 @@ resource "docker_container" "workspace" {
299267
hostname = data.coder_workspace.me.name
300268

301269
user = "coder"
270+
# Acceso directo a la red del host (sin mapeo de puertos)
271+
network_mode = "host"
302272

303273
entrypoint = [
304274
"sh",
@@ -321,24 +291,9 @@ resource "docker_container" "workspace" {
321291
container_path = "/var/run/docker.sock"
322292
}
323293

324-
host {
325-
host = "host.docker.internal"
326-
ip = "host-gateway"
327-
}
328-
329294
# Para mejorar KasmVNC y navegadores
330295
shm_size = 2 * 1024 * 1024 * 1024
331296

332-
# Solo mapea puertos si expose_ports = true
333-
dynamic "ports" {
334-
for_each = local.port_range
335-
content {
336-
internal = ports.value
337-
external = ports.value
338-
ip = "0.0.0.0"
339-
}
340-
}
341-
342297
volumes {
343298
container_path = "/home/coder"
344299
volume_name = docker_volume.home_volume.name

0 commit comments

Comments
 (0)