@@ -987,6 +987,69 @@ resource "coder_script" "setup_pipx" {
987987 start_blocks_login = false
988988}
989989
990+ # Script para crear venv y kernel por defecto de JupyterLab
991+ resource "coder_script" "setup_jupyter_kernel" {
992+ agent_id = coder_agent. main . id
993+ display_name = " Setup Jupyter kernel"
994+ icon = " /icon/folder.svg"
995+ script = <<- EOT
996+ #!/bin/bash
997+ set -e
998+
999+ VENV_DIR="$HOME/.venvs/jupyter"
1000+ KERNEL_NAME="coder-py"
1001+ DISPLAY_NAME="Python (coder)"
1002+
1003+ if [ ! -d "$VENV_DIR" ]; then
1004+ python3 -m venv "$VENV_DIR"
1005+ fi
1006+
1007+ "$VENV_DIR/bin/python" -m pip install --upgrade pip
1008+ "$VENV_DIR/bin/python" -m pip install --upgrade ipykernel
1009+ "$VENV_DIR/bin/python" -m ipykernel install --user --name "$KERNEL_NAME" --display-name "$DISPLAY_NAME"
1010+
1011+ python3 - <<'PY'
1012+ from pathlib import Path
1013+
1014+ config = Path.home() / ".jupyter" / "jupyter_server_config.py"
1015+ config.parent.mkdir(parents=True, exist_ok=True)
1016+
1017+ block = """# >>> coder-managed-kernel
1018+ try:
1019+ c
1020+ except NameError:
1021+ c = get_config()
1022+
1023+ c.MappingKernelManager.default_kernel_name = "coder-py"
1024+ try:
1025+ c.MultiKernelManager.default_kernel_name = "coder-py"
1026+ except Exception:
1027+ pass
1028+ # <<< coder-managed-kernel
1029+ """
1030+
1031+ text = config.read_text() if config.exists() else ""
1032+ start = text.find("# >>> coder-managed-kernel")
1033+ end = text.find("# <<< coder-managed-kernel")
1034+
1035+ if start != -1 and end != -1 and end > start:
1036+ end += len("# <<< coder-managed-kernel")
1037+ new = text[:start] + block + text[end:]
1038+ else:
1039+ new = text.rstrip()
1040+ if new:
1041+ new += "\n\n"
1042+ new += block + "\n"
1043+
1044+ config.write_text(new)
1045+ PY
1046+
1047+ echo "✓ Jupyter kernel '$KERNEL_NAME' ready"
1048+ EOT
1049+ run_on_start = true
1050+ start_blocks_login = false
1051+ }
1052+
9901053module "code-server" {
9911054 count = data. coder_workspace . me . start_count
9921055 source = " registry.coder.com/coder/code-server/coder"
@@ -1092,7 +1155,7 @@ module "jupyterlab" {
10921155 source = " registry.coder.com/coder/jupyterlab/coder"
10931156 version = " ~> 1.2"
10941157 agent_id = coder_agent. main . id
1095- depends_on = [coder_script . setup_pipx ]
1158+ depends_on = [coder_script . setup_pipx , coder_script . setup_jupyter_kernel ]
10961159}
10971160
10981161resource "coder_ai_task" "opencode_task" {
0 commit comments