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?
- Copia el YAML anterior en un archivo llamado docker-compose.yml en tu VPS/servidor.
- Lanza todo con:
docker compose up -d
-
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.
-
Configura Gitea:
Sigue el instalador inicial. Selecciona PostgreSQL, rellenando host, usuario y clave tal y como aparecen en el YAML. - ¡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
yPASSWORD
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!