Despliega tu propio entorno de desarrollo de código con Code Server, Gitea y PostgreSQL (¡VSCode web colaborativo!)

Entorno de desarrollo colaborativo en servidores: ¡Code Server, Gitea y PostgreSQL con Docker Compose!

¿Te imaginas acceder a un Visual Studio Code (VSCode) completo a través del navegador, conectarlo a tu propio sistema de repositorio Git privado y tener una base de datos lista para tus pruebas de backend? ¡Hoy te enseñaré a desplegar esta potente combinación usando Docker Compose, ideal para equipos pequeños, desarrollo freelance o simplemente para tener tu espacio creativo en la nube!

¿Por qué este combo?

  • Code Server: VSCode en el navegador, ¡sin instalar nada! Ideal para trabajar en cualquier sitio.
  • Gitea: Un clon ligero de GitHub/GitLab que puedes alojar tú mismo para gestionar tu código y tus equipos.
  • PostgreSQL: Base de datos relacional reputada y muy utilizada para desarrollo web (y perfecta para pruebas en local).

¿Para quién está pensado?

Perfecto si eres:

  • Desarrollador/a, que quiere trabajar en varios dispositivos sin preocuparse de su editor o sus claves SSH.
  • Un equipo pequeño que necesita colaboración privada en código y bases de datos sin depender de proveedores externos.
  • Quien quiere experimentar montando su propio stack dev «en la nube» con control total.

Así se ve la arquitectura

  • code-server: Visual Studio Code en el navegador
  • gitea: Git remoto privado (¡web y git clone/push!)
  • postgres: Base de datos persistente, accesible solo dentro del servidor

El docker-compose.yml de la felicidad

version: "3.8"

services:
  code-server:
    image: codercom/code-server:latest
    container_name: code-server
    environment:
      - PASSWORD=SuperClaveSegura
      - TZ=Europe/Madrid
    volumes:
      - code_data:/home/coder/project
    ports:
      - "8443:8443"
    restart: unless-stopped
    depends_on:
      - gitea
      - postgres

  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - DB_TYPE=postgres
      - DB_HOST=postgres:5432
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=segura123
    volumes:
      - gitea_data:/data
    ports:
      - "3000:3000"
      - "2222:22"
    restart: unless-stopped
    depends_on:
      - postgres

  postgres:
    image: postgres:15
    container_name: pg_gitea
    environment:
      - POSTGRES_DB=gitea
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=segura123
    volumes:
      - pg_data:/var/lib/postgresql/data
    restart: unless-stopped

volumes:
  code_data:
  gitea_data:
  pg_data:

¿Cómo levantarlo?

  1. Copia el YAML anterior en un archivo llamado docker-compose.yml en tu VPS/servidor.
  2. Lanza todo con: docker compose up -d
  3. Accede a los servicios:

    • VSCode Web: https://tu-servidor:8443 (usuario: coder, pass: SuperClaveSegura)
    • Gitea: http://tu-servidor:3000 (haz la configuración inicial y crea tu usuario/admin)
    • PostgreSQL: El resto de servicios puede acceder mediante la red interna.
  4. Configura Gitea:
    Sigue el instalador inicial. Selecciona PostgreSQL, rellenando host, usuario y clave tal y como aparecen en el YAML.
  5. ¡A disfrutar! Sube repositorios a Gitea, clónalos en VSCode Web, y conecta tu backend a PostgreSQL.

Consejos extra y troubleshooting

  • Certificados SSL: code-server escucha en HTTPS por defecto, pero puedes montar tus propios certificados o usar un proxy inverso (Traefik, Nginx) para mayor seguridad en producción.
  • Usuarios/db: Cambia DB_PASSWD y PASSWORD por claves fuertes antes de exponer a Internet.
  • Persistencia: Los volúmenes aseguran que no pierdes ni tu código, ni repos, ni bases de datos si un contenedor se cae o actualizas la versión.
  • Redes: Opcionalmente, puedes definir redes para aislar aún más la base de datos si así lo prefieres.
  • Backup: ¡Haz copias regulares de los volúmenes!

¿Quieres tunear más?

Añade extensiones de VSCode, servicios adicionales (como Redis), más lenguajes backend, o tu sistema de CI/CD favorito como Jenkins. ¡Las posibilidades son infinitas cuando Docker Compose es tu base!

Avatar

Por Mid