ROMMEL DUAREZ SAENZ
me parece curioso que hacia el final de la clase dice que ambos VS code al final llegan al mismo repositorio, sin embargo nunca creó el repositorio inicial
Trabajar con plantillas de GitHub Codespaces te permite levantar entornos preconfigurados para Django, Node, PHP, .NET o Jupyter sin tocar tu máquina local. Aquí verás cómo crear uno desde cero, editar el archivo devcontainer.json y conectarlo a Visual Studio Code Desktop para sacarle más provecho al ciclo de vida del entorno.
¿Cómo creo un Codespace desde una plantilla en lugar de un repositorio?
Entra a github.com/codespaces y verás a la izquierda la lista de tus entornos creados. A la derecha aparece la sección de plantillas con la opción See all para desplegarlas todas [01:00].
Al elegir una plantilla, por ejemplo Django con Python, el Codespace se crea sin pedirte el cuestionario habitual. Solo esperas a que termine de configurarse y ya tienes el entorno corriendo.
¿Qué ventaja tiene una plantilla sobre crear un Codespace desde un repositorio? Te ahorra el cuestionario inicial y te entrega un proyecto base ya funcional, ideal para experimentar con tecnologías nuevas sin instalar nada local.
¿La URL del Codespace es pública?
Sí. Al copiar la URL del proyecto y abrirla en otra pestaña, verás que es accesible desde Internet [01:45]. Como cada Codespace corre sobre una máquina virtual expuesta, puedes compartir esa dirección con alguien para mostrar avances en vivo.
¿Cómo edito código en tiempo real dentro de un Codespace de Django?
Python no necesita compilarse, así que los cambios se reflejan casi al instante. En la línea 24 del archivo de la plantilla aparece el texto GitHub Codespaces con Django, y al modificarlo el navegador refresca el resultado de inmediato [02:30].
Si necesitas reiniciar el servidor, dentro de la terminal presionas Ctrl C para terminar la sesión, limpias con clear y vuelves a ejecutar el comando con la flecha arriba dos veces. En la línea 27, al editar Hello World y agregar una letra, basta un pequeño refresco de pantalla para ver el cambio aplicado.
¿Qué hace el archivo devcontainer.json en un Codespace?
Dentro del proyecto encontrarás una carpeta llamada .devcontainer con un archivo JSON que define toda la configuración del entorno [04:15]. Este archivo mete los archivos y dependencias dentro de un contenedor, una especie de minimáquina virtual donde corre tu Visual Studio en el navegador junto con el lenguaje y las herramientas necesarias.
¿Cómo agrego una extensión de forma permanente al Codespace?
Buscas la extensión deseada, por ejemplo Live Share, y la instalas dentro del Codespace. Pero instalarla así no la deja fija: si reinicias el entorno, podrías perderla.
La solución está en el pequeño engrane de la extensión, donde eliges Add to devcontainer.json [05:30]. Al hacerlo, el archivo de configuración registra que esa plantilla de Django necesita Python y también Live Share, y la extensión queda lista cada vez que levantes el Codespace.
¿Para qué sirve add to devcontainer.json? Sirve para que una extensión instalada manualmente quede registrada en la configuración del contenedor y se reinstale automáticamente la próxima vez que se cree el entorno.
¿Cómo abro un Codespace en Visual Studio Code Desktop?
Desde el menú de tres líneas horizontales en la parte superior izquierda eliges Open in Visual Studio Code Desktop. Se abre un pop up de confirmación, aceptas y, si es tu primera vez, VS Code te pedirá instalar la extensión GitHub Codespaces [07:00].
Una vez instalado, abajo aparece una leyenda amarilla indicando que se está abriendo un entorno remoto. La conexión es rápida y la URL del proyecto pasa a ser local.
¿Por qué me marca error de puerto en uso al ejecutar Python?
Porque la aplicación sigue corriendo en tu navegador y en VS Code Desktop, y ambas apuntan a la misma máquina virtual. Dos procesos no pueden ocupar el mismo puerto al mismo tiempo.
Para solucionarlo:
Ctrl C para detener la aplicación que sigue ejecutándose.clear y levanta de nuevo el servidor.Con eso liberas el puerto y puedes seguir trabajando desde el escritorio sin perder los cambios. El control de versiones también funciona, así que tus commits llegan al mismo repositorio sin importar si editas en el navegador o en VS Code.
¿Qué plantillas de Codespaces existen además de Django?
La galería incluye opciones para distintos stacks que puedes usar para aprender o prototipar:
La imagen de Jupyter es especialmente útil si estás explorando ciencia de datos: te permite jugar con datasets, aprender Python orientado a esa especialización y, cuando termines, eliminar el Codespace sin haber instalado nada en tu computadora.
La idea de fondo es que abras estas plantillas para revisar cómo están armadas por dentro, leas el devcontainer.json de cada una y aprendas a trabajar con tecnologías nuevas sin depender de tu entorno local. ¿Qué plantilla vas a probar primero?
ROMMEL DUAREZ SAENZ
me parece curioso que hacia el final de la clase dice que ambos VS code al final llegan al mismo repositorio, sin embargo nunca creó el repositorio inicial
Mario Alexander Vargas Celis
🚀 Configuración de Entornos de Desarrollo Avanzados en GitHub Codespaces
GitHub Codespaces permite personalizar el entorno de desarrollo utilizando containers de desarrollo (Dev Containers). Esto es útil para proyectos complejos que requieren herramientas específicas, dependencias o configuraciones avanzadas.
1️⃣ Habilitar GitHub Codespaces en un Proyecto
Antes de personalizar el entorno, asegúrate de que GitHub Codespaces está habilitado en tu repositorio:
main).2️⃣ Personalizar el Entorno con un Dev Container
Para configurar un entorno avanzado, debes agregar un devcontainer a tu repositorio.
📌 Paso 1: Crear la Carpeta de Configuración
En la raíz del repositorio, crea una carpeta llamada .devcontainer/ y dentro de ella, un archivo llamado devcontainer.json.
📌 Paso 2: Definir la Configuración del Contenedor
Aquí tienes un ejemplo de devcontainer.json para un entorno de desarrollo con Python 3.9 y Node.js:
{ "name": "Mi Entorno de Desarrollo", "image": "mcr.microsoft.com/devcontainers/python:3.9", "features": { "ghcr.io/devcontainers/features/node:1": {} }, "extensions": [ "ms-python.python", "ms-vscode.vscode-typescript-tslint-plugin" ], "postCreateCommand": "pip install -r requirements.txt" }
🔹 Explicación:
✅ Usa una imagen de contenedor con Python 3.9.
✅ Agrega soporte para Node.js.
✅ Instala extensiones de VS Code.
✅ Ejecuta pip install -r requirements.txt después de crear el Codespace.
3️⃣ Configurar Variables de Entorno
Si tu proyecto necesita credenciales o claves API, puedes agregarlas en devcontainer.json:
"remoteEnv": { "API_KEY": "tu_clave_aqui" }
También puedes definirlas en GitHub Secrets para mayor seguridad.
4️⃣ Instalar Dependencias Automáticamente
Puedes agregar un script de configuración en .devcontainer/postCreateCommand.sh para instalar dependencias automáticamente:
#!/bin/bash echo "Instalando dependencias..." pip install -r requirements.txt npm install
Luego, agrégalo en devcontainer.json:
"postCreateCommand": "./.devcontainer/postCreateCommand.sh"
5️⃣ Trabajar con Bases de Datos y Servicios
Si tu proyecto necesita MySQL, PostgreSQL o Redis, puedes definirlos en .devcontainer/docker-compose.yml:
version: '3' services: db: image: postgres:13 restart: always environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: mydatabase
Y en devcontainer.json:
"dockerComposeFile": ".devcontainer/docker-compose.yml", "service": "app"
🎯 Conclusión
✅ GitHub Codespaces permite configurar entornos avanzados sin necesidad de instalar nada localmente. ✅ Puedes personalizar el entorno con Dev Containers, instalar dependencias automáticamente y conectar servicios externos. ✅ Esto es ideal para proyectos complejos, colaborativos y con necesidades específicas de configuración.
SANTIAGO ALBERTO BOLIVAR CARDENAS.
Que buen video, Gracias Profesor, Gracias Platzi.
Albert Jose Salas Yustiz
Muy buena esta clase... 10 de 10...
Erick Leonel Mariano Malagón
es como un IV de google pero en git, o como un docker virtual ligado a git!! super practico!
Dussan Freire
Muy interesante cómo se aprovechan las plantillas de Codespaces para levantar entornos listos con Django y otros stacks sin tocar la máquina local, y además controlar todo desde el archivo devcontainer.json. Me gustó también la combinación entre trabajo en el navegador y VS Code Desktop, junto con las buenas prácticas para evitar errores de puertos y optimizar los recursos del entorno
José Lancheros Ayora
Clase 27
Claudia Iliana Padilla Magaña
increible, simplemente muy interesante para aprovechar y hacer tus pininos
Claudia Iliana Padilla Magaña
en el caso de una nueva tecnología que la llevas a tu VS local que pasa con las dependencias que necesitas?
Jhon Alexander Mosquera Vanegas
El archivo devcontainer.json es lo que vuelve reproducible un Codespace. Según la clase, es el archivo de configuración que pone Python dentro de un contenedor, algo así como una minimáquina virtual, y lista las extensiones de VS Code que se quieren instalar. Instalar una extensión en el Codespace no basta para que quede de forma permanente, pero la opción add to devcontainer.json la deja registrada para que el entorno la recuerde. Esa es la diferencia entre configurar a mano cada vez y dejar el entorno descrito en un archivo del propio proyecto. En equipo, eso debería reducir diferencias entre entornos.
Jonathan
para los que no pudieron ejecutar desde vs siguiendo los pasos que enseño el profe de terminar el proceso desde el navegador con ctrl c, usen: (lsof -i :8000) <- esto muestra que procesos están ocupando el puerto 8000 y luego lo ejecutan ( kilo {el proceso que lo ocupa) y ya ahí ya los dejara ejecutar desde el vs
Andrés Soret Chacin
Beneficios de usar GitHub Codespaces con plantillas
Diego Mauricio Zuluaga Rodríguez
¿Por qué es mejor usar plantillas preconfiguradas?
Porque te ahorran horas de configuración inicial y evitan el clásico problema de "en mi máquina sí funciona". Al iniciar con una plantilla, obtienes un entorno en blanco pero con todas las herramientas, lenguajes y dependencias ya instaladas. Por ejemplo, si eliges una plantilla de Django, el sistema ya sabe qué versión de Python usar y cómo estructurar el proyecto base. Todo esto se define en un archivo mágico llamado devcontainer.json, el cual actúa como la receta exacta de tu entorno. Esto te permite saltar directamente a escribir código en lugar de pelear con instalaciones locales, variables de entorno o conflictos de versiones en tu sistema operativo.
Diego Mauricio Zuluaga Rodríguez
Qué es Django y para qué sirve?
¡Hola, Diego Mauricio! Qué buena pregunta para arrancar.
Imagina que quieres construir una casa, pero en lugar de poner cada ladrillo y tubería manualmente, alguien te entrega un kit que ya trae los cimientos, las paredes listas y hasta la plomería instalada. Solo tienes que enfocarte en el diseño y la decoración.
Django es ese kit, pero para sitios web. Es un framework de alto nivel escrito en Python. Su trabajo es encargarse de todo lo aburrido y complejo —como conectar con bases de datos, manejar usuarios o asegurar formularios— para que tú solo escribas la lógica que hace único a tu proyecto.
Sirve para crear aplicaciones web robustas y seguras a una velocidad impresionante. Por eso es tan popular: te permite pasar de la idea al código funcional sin reinventar la rueda.
¿Te imaginas qué parte de una web te daría más trabajo si tuvieras que construirla desde cero sin ayuda?
Gabriel Obregón
🎯 Codespaces de GitHub — Desarrollo sin límites
🌍 ¿QUÉ SON LOS CODESPACES?
💡 Entornos de desarrollo en la nube, creados directamente desde GitHub.
✨ No necesitas configurar nada localmente: todo se ejecuta online.
🧠 Son personalizables, gracias a plantillas que ya incluyen lenguajes, frameworks y extensiones.
➡️ Perfectos para proyectos colaborativos o para probar nuevas tecnologías.
🧩 USO DE PLANTILLAS EN CODESPACES
🔍 1️⃣ ACCESO
➡️ Entra a
👀 Verás todos tus entornos activos o previos.
🧱 2️⃣ ELECCIÓN DE PLANTILLA
🧰 Incluyen:
⚙️ 3️⃣ TIPOS DE PLANTILLAS
⚡ EDICIÓN Y TRABAJO EN TIEMPO REAL
🖋️ Edita directamente tu código desde el navegador.
🔄 Los cambios se actualizan al instante, sin compilar.
🌐 Comparte tu progreso con la URL pública del Codespace.
💬 Ideal para mostrar avances o trabajar en grupo en tiempo real.
🧾 ARCHIVO CLAVE → devcontainer.json
📁 Se encuentra dentro de la carpeta .devcontainer Este archivo define cómo se configura tu entorno.
Contiene:
🔧 Lenguajes, versiones y herramientas necesarias.
💻 Extensiones automáticas de VS Code (por ejemplo, Live Share).
♻️ Cada vez que abras el Codespace, el entorno se reconstruye igual.
🧠 Piénsalo como el “manual de instalación automática” de tu proyecto.
💻 OPTIMIZACIÓN EN VISUAL STUDIO CODE DESKTOP
🧭 Para una experiencia completa:
1️⃣ Abre tu Codespace con “Open in VS Code Desktop”
2️⃣ Instala la extensión GitHub Codespaces si es tu primera vez.
3️⃣ Mantén solo un entorno activo (navegador o escritorio).
4️⃣ Desde la terminal:
🚀 BENEFICIOS DE LAS PLANTILLAS PRECONFIGURADAS
✔️ No instalas nada localmente.
✔️ Pruebas frameworks sin alterar tu equipo.
✔️ Te concentras en programar, no en configurar.
✔️ Aprendes y trabajas más rápido.
🧰 Ejemplos populares:
Jean Grober
Increíble lo bueno que explica el profe Admin, Genial.
Jose Jhonatan Choque Araujo
Una consulta, en caso de estar usando una plantilla de django y moverlo de manera local este seguiria usando la version free de codespaces, entonces tendriamos que eliminarlo de cualquier forma?
Amin Espinoza
ProfesorEl entorno local es diferente a Codespaces, la mejor manera de hacerlos funcionar exactamente igual podría ser usando Docker, así no importaría de qué manera lo hagas. Es lo primero que se me ocurre!
David López Sandoval
A mi si me marca el error donde indica que aun el servidor esta en uso, por favor ayuda.
Juan Diego Sastre Moreno
Cerrar un Codespace cuando no se utiliza es crucial por varias razones. Primero, evita consumir recursos innecesarios en la nube, lo que puede impactar en el rendimiento y costos. Segundo, garantiza la seguridad de tu proyecto, reduciendo el riesgo de accesos no autorizados. Además, liberar el entorno permite a otros colaboradores trabajar en sus propios Codespaces sin interferencias. Por último, cerrar el entorno ayuda a mantener tu flujo de trabajo organizado y eficiente, priorizando los recursos que realmente necesitas.