[{"data":1,"prerenderedAt":185},["ShallowReactive",2],{"seo-verification":3,"blog-autoalojar-coder-vps-entornos-de-desarrollo-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-autoalojar-coder-vps-entornos-de-desarrollo-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":120,"ctaBody":121,"ctaButton":122,"ctaUrl":123,"relatedPosts":124},571,"autoalojar-coder-vps-entornos-de-desarrollo",{"fr":12,"en":13,"ar":14,"es":10},"self-host-coder-vps","self-host-coder-vps-cloud-development-environments","استضافة-coder-على-vps-بيئات-تطوير-سحابية","Coder en un VPS: entornos de desarrollo autoalojados","Instala Coder en un VPS: espacios de trabajo Docker para todo el equipo, VS Code en el navegador, acceso SSH y plantillas Terraform, sin Codespaces.",7,0,false,"2026-11-08T00:00:00+00:00","2026-11-08T16:32:54+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[28],{"id":17,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-coder-vps-poster.svg",{"categorySlug":33,"appSlug":34},"desarrollo","coder","Instalar PHP, Node.js, la versión correcta de PostgreSQL y una docena de extensiones en el portátil de cada nuevo desarrollador lleva tiempo, y las configuraciones siempre acaban divergiendo. Los entornos de desarrollo en la nube, como GitHub Codespaces o Gitpod, resuelven el problema, pero cobran por hora y guardan tu código en su lado. Coder es una plataforma de código abierto (licencia AGPL-3.0) que hace el mismo trabajo en tu propio servidor: cada desarrollador obtiene con un clic un espacio de trabajo idéntico, descrito por una plantilla Terraform. Esta guía lo instala en un VPS con Docker Compose, lo coloca detrás de nginx en HTTPS, crea un primer espacio de trabajo Docker y explica cómo conectarse desde VS Code, JetBrains o SSH.",[37,41,51,82,85,98,102,105,108,111,114,117],{"type":38,"title":39,"body":40},"h2","Qué hace Coder","Coder separa dos cosas que a menudo se confunden: el editor y el entorno. El editor sigue siendo el que prefieres — VS Code en el navegador, VS Code en tu equipo, un IDE de JetBrains o un simple terminal. El entorno vive en el servidor: un contenedor con el código, los lenguajes, las bases de datos de prueba y las herramientas del proyecto.\n\nEste entorno se describe en una **plantilla** escrita en Terraform. El administrador la publica una vez; cada desarrollador crea después su **espacio de trabajo** a partir de ella, lo arranca cuando trabaja y lo detiene cuando termina. Un agente instalado en el espacio de trabajo se conecta al servidor Coder y transporta el terminal, los puertos y las sesiones del editor.",{"type":42,"title":43,"items":44},"ul","Lo que aporta Coder",[45,46,47,48,49,50],"**Espacios de trabajo idénticos** — todos trabajan en el mismo entorno, descrito en una plantilla versionada.","**Plantilla Docker incluida** — un contenedor por espacio de trabajo en el VPS, con un volumen `\u002Fhome` persistente.","**Todos los editores** — code-server en el navegador, VS Code Remote-SSH, JetBrains Gateway, `coder ssh`.","**Redirección de puertos** — `coder port-forward` abre en tu equipo la aplicación que estás desarrollando.","**Parada automática** — los espacios inactivos se detienen según la programación de la plantilla.","**Cuentas e inicio de sesión único** — cuentas locales, GitHub u OpenID Connect.",{"type":52,"title":53,"headers":54,"rows":58},"comparison","Coder frente a otras opciones",[5,55,56,57],"Coder en un VPS","code-server solo","GitHub Codespaces",[59,64,69,74,78],[60,61,62,63],"Usuarios","Un equipo, con cuentas y roles","Una persona","Cuentas de GitHub",[65,66,67,68],"Entorno","Plantilla Terraform versionada","El propio servidor","Archivo devcontainer",[70,71,72,73],"Editores","Navegador, VS Code, JetBrains, SSH","Navegador","Navegador, VS Code, JetBrains",[75,76,76,77],"Dónde vive el código","En tu servidor","En GitHub",[79,80,80,81],"Coste","El precio del VPS","Por hora de cómputo y almacenamiento",{"type":38,"title":83,"body":84},"Requisitos","Un VPS Ubuntu 24.04 con 2 GB de RAM y 20 GB de disco para uno o dos desarrolladores — cuenta con 4 a 8 GB de RAM para un equipo pequeño —, Docker y el plugin Compose instalados, y un subdominio que apunte al VPS, por ejemplo `coder.example.com`. El HTTPS es imprescindible: los agentes de los espacios de trabajo vuelven a llamar al servidor en esa dirección, y las sesiones del editor pasan por WebSocket.",{"type":86,"title":87,"steps":88},"steps","Instalar Coder con Docker Compose",[89,92,95],{"title":90,"body":91},"Preparar el directorio y los secretos","El archivo `.env` contiene la contraseña de la base de datos, el identificador del grupo Docker del host — permite al servidor usar el socket de Docker sin ejecutarse como root — y el dominio.\n```bash\nmkdir -p \u002Fopt\u002Fcoder && cd \u002Fopt\u002Fcoder\n{\n  echo \"DB_PASSWORD=$(openssl rand -hex 16)\"\n  echo \"DOCKER_GID=$(stat -c %g \u002Fvar\u002Frun\u002Fdocker.sock)\"\n  echo \"DOMAIN=coder.example.com\"\n} > .env\nchmod 600 .env\n```",{"title":93,"body":94},"Escribir el archivo docker-compose.yml","Dos servicios: el servidor Coder, que incluye Terraform, y PostgreSQL. El puerto solo se publica en la interfaz local; nginx se encargará del HTTPS.\n```yaml\nservices:\n  coder:\n    image: ghcr.io\u002Fcoder\u002Fcoder:v2.39.0\n    restart: unless-stopped\n    group_add:\n      - \"${DOCKER_GID}\"\n    depends_on:\n      database:\n        condition: service_healthy\n    ports:\n      - \"127.0.0.1:7080:7080\"\n    environment:\n      CODER_HTTP_ADDRESS: \"0.0.0.0:7080\"\n      CODER_ACCESS_URL: \"https:\u002F\u002F${DOMAIN}\"\n      CODER_PG_CONNECTION_URL: \"postgresql:\u002F\u002Fcoder:${DB_PASSWORD}@database:5432\u002Fcoder?sslmode=disable\"\n      CODER_TELEMETRY_ENABLE: \"false\"\n    volumes:\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock\n  database:\n    image: postgres:17.11-alpine\n    restart: unless-stopped\n    environment:\n      POSTGRES_USER: coder\n      POSTGRES_PASSWORD: ${DB_PASSWORD}\n      POSTGRES_DB: coder\n    volumes:\n      - coder-db:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n    healthcheck:\n      test: [\"CMD-SHELL\", \"pg_isready -U coder -d coder\"]\n      interval: 5s\n      retries: 12\nvolumes:\n  coder-db: {}\n```",{"title":96,"body":97},"Arrancar y comprobar","El primer arranque crea el esquema de la base de datos en unos segundos.\n```bash\ndocker compose up -d\ndocker compose logs -f coder   # attendre « View the Web UI »\ncurl -fsS http:\u002F\u002F127.0.0.1:7080\u002Fhealthz\n```",{"type":99,"title":100,"body":101},"tip","El socket de Docker entrega las llaves del servidor","Coder crea los espacios de trabajo a través del socket de Docker, y cualquiera que pueda editar una plantilla puede lanzar cualquier contenedor en el VPS — y por tanto actuar como root en el host. Reserva los roles de propietario y de administrador de plantillas a personas de confianza, y no publiques nunca el puerto 7080 en la dirección pública.",{"type":38,"title":103,"body":104},"Colocar Coder detrás de nginx en HTTPS","Obtén un certificado con `certbot certonly --nginx -d coder.example.com` y declara el sitio. Las cabeceras `Upgrade` y `Connection` son imprescindibles: sin ellas, el terminal web y las conexiones de los agentes fallan.\n```nginx\nserver {\n    listen 443 ssl;\n    http2 on;\n    server_name coder.example.com;\n    ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Fcoder.example.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fcoder.example.com\u002Fprivkey.pem;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:7080;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n        proxy_set_header Host $host;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_read_timeout 1h;\n    }\n}\n```\n\nRecarga nginx con `nginx -t && systemctl reload nginx` y abre `https:\u002F\u002Fcoder.example.com`. **Crea la primera cuenta de inmediato**: el primer visitante de la pantalla de bienvenida se convierte en propietario de la instalación.",{"type":38,"title":106,"body":107},"Crear la primera plantilla y el primer espacio de trabajo","En **Templates**, pulsa **Create Template** y elige la plantilla de inicio **Docker Containers**. Coder descarga los proveedores de Terraform necesarios y publica la plantilla. Crea después un espacio de trabajo a partir de ella: un contenedor arranca en el VPS, su agente se conecta y la página muestra el estado **Running** con un botón para abrir code-server.\n\nLa plantilla es un simple archivo `main.tf`. Para adaptarla a tu proyecto, cambia la imagen base, añade herramientas al script de arranque del agente y publica una nueva versión: los espacios existentes la proponen en su siguiente reinicio.",{"type":38,"title":109,"body":110},"Conectarse desde VS Code, JetBrains o SSH","El navegador basta para empezar, pero la mayoría de los desarrolladores prefieren su editor habitual. Instala la CLI en tu equipo y conéctala al servidor:\n```bash\ncurl -L https:\u002F\u002Fcoder.com\u002Finstall.sh | sh\ncoder login https:\u002F\u002Fcoder.example.com\ncoder list\ncoder ssh mon-espace\ncoder port-forward mon-espace --tcp 3000:3000\ncoder config-ssh   # ajoute les hôtes coder.\u003Cespace> à ~\u002F.ssh\u002Fconfig\n```\n\nTras `coder config-ssh`, VS Code Remote-SSH y JetBrains Gateway ven cada espacio de trabajo como un host SSH normal. La conexión pasa por la dirección HTTPS del servidor: no se abre ningún puerto SSH adicional en el VPS.",{"type":38,"title":112,"body":113},"Parada automática y recursos del VPS","En reposo, el servidor Coder y su base de datos ocupan unos 550 MB de RAM, y un espacio de trabajo inactivo basado en la imagen de la plantilla Docker unos 200 MB — mucho más durante una compilación o una batería de pruebas. En los ajustes de la plantilla, apartado **Schedule**, define un plazo de parada automática: un espacio olvidado por la tarde ya no consume nada durante la noche. El volumen `\u002Fhome` se conserva al detenerse; solo el contenedor se recrea al reiniciar.",{"type":38,"title":115,"body":116},"Copia de seguridad y actualización","Las cuentas, plantillas y ajustes están en PostgreSQL; el trabajo de los desarrolladores, en los volúmenes `\u002Fhome` de los espacios de trabajo.\n```bash\ncd \u002Fopt\u002Fcoder\ndocker compose exec -T database pg_dump -U coder coder | gzip > coder-$(date +%F).sql.gz\ndocker volume ls --filter name=coder-   # volumes \u002Fhome des espaces de travail\n```\n\nPara actualizar, cambia la etiqueta de la imagen en `docker-compose.yml` según la [página de versiones](https:\u002F\u002Fgithub.com\u002Fcoder\u002Fcoder\u002Freleases) y ejecuta `docker compose pull && docker compose up -d`: el servidor migra su base de datos al arrancar. Haz una copia de seguridad antes de cada actualización mayor.",{"type":38,"title":118,"body":119},"Instalación con un clic en ServOrbit","En un VPS de ServOrbit, Coder se instala desde el Marketplace. El script despliega el servidor y su base PostgreSQL, genera la contraseña de administrador y crea la cuenta propietaria antes de cualquier exposición — así, la pantalla de registro del primer administrador nunca es accesible desde Internet. También configura el proxy inverso nginx en HTTPS con WebSocket, en un subdominio de tu dominio o en el subdominio gratuito del VPS. Inicia sesión con la dirección `admin@servorbit.local` y la contraseña que aparece en tu área de cliente, y cámbiala después en los ajustes de la cuenta.","Tus entornos de desarrollo en tu VPS","Un VPS de ServOrbit con Ubuntu 24.04 y 2 GB de RAM basta para arrancar Coder; cuenta con 4 GB o más para un equipo. Instalación con un clic desde el Marketplace, HTTPS en tu dominio o en el subdominio gratuito del VPS, cuenta propietaria y contraseña creadas para ti.","Instalar Coder","\u002Fapplications\u002Fdesarrollo\u002Fcoder",[125,148,167],{"id":126,"slug":127,"slugs":128,"title":132,"excerpt":133,"readTime":134,"views":17,"isPinned":19,"noindex":19,"publishedAt":135,"updatedAt":136,"category":137,"categories":143,"featuredImage":29,"bgImage":30,"posterImage":145,"relatedSolution":146},301,"instalar-code-server-vps",{"fr":129,"en":130,"ar":131,"es":127},"installer-code-server-vps","install-code-server-vps","تثبيت-code-server-vps","Code Server: VS Code en su navegador sobre un VPS","Code Server (MIT, 79 k estrellas): despliegue VS Code en el navegador de su VPS, espacio persistente, sin configurar ningún IDE local.",3,"2026-08-24T00:00:00+00:00","2026-11-04T16:30:27+00:00",{"id":138,"name":139,"slug":140,"color":141,"icon":142},4,"Desarrollo","developpement","bg-warning\u002F10 text-warning","dev",[144],{"id":138,"name":139,"slug":140,"color":141,"icon":142},"\u002Fblog\u002Fcovers\u002Finstaller-code-server-vps-poster.svg",{"categorySlug":33,"appSlug":147},"code-server",{"id":149,"slug":150,"slugs":151,"title":155,"excerpt":156,"readTime":157,"views":158,"isPinned":19,"noindex":19,"publishedAt":159,"updatedAt":160,"category":161,"categories":162,"featuredImage":29,"bgImage":30,"posterImage":164,"relatedSolution":165},74,"alojar-gitea-en-un-vps",{"fr":152,"en":153,"ar":154,"es":150},"heberger-gitea","host-gitea-on-your-own-vps","استضافة-gitea-على-خادم-vps-الخاص-بك","Alojar Gitea en su propio VPS en 2026","Despliegue Gitea 1.25 en un VPS con Docker y SSL: Gitea Actions CI\u002FCD, comparativa vs Forgejo v16, administración y errores SSH y HTTPS.",13,1,"2026-04-07T00:00:00+00:00","2026-11-08T16:32:50+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[163],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-gitea-poster.svg",{"categorySlug":33,"appSlug":166},"gitea",{"id":168,"slug":169,"slugs":170,"title":174,"excerpt":175,"readTime":176,"views":158,"isPinned":19,"noindex":19,"publishedAt":177,"updatedAt":178,"category":179,"categories":180,"featuredImage":29,"bgImage":30,"posterImage":182,"relatedSolution":183},139,"stack-dev-docker-en-vps",{"fr":171,"en":172,"ar":173,"es":169},"stack-dev-docker-vps","docker-dev-stack-on-a-vps-an-environment-ready-for-coding","حزمة-تطوير-docker-على-خادم-vps-بيئة-جاهزة-للبرمجة","Stack Dev Docker en VPS: entorno listo para programar","Monte un stack dev Docker completo en un VPS: Nginx, PHP-FPM, PostgreSQL, Redis, Mailpit, Adminer — docker-compose.yml detallado, SSH tunneling, resolución de errores.",10,"2026-02-06T00:00:00+00:00","2026-10-20T23:18:07+00:00",{"id":138,"name":139,"slug":140,"color":141,"icon":142},[181],{"id":138,"name":139,"slug":140,"color":141,"icon":142},"\u002Fblog\u002Fcovers\u002Fstack-dev-docker-vps-poster.svg",{"categorySlug":142,"appSlug":184},"docker-dev-stack",1794156393705]