Un VPS de desarrollo te da un entorno consistente, accesible desde cualquier lugar, y separado de tu máquina local. Ideal para equipos o desarrollo remoto.
Por qué usar VPS para desarrollo
| Ventaja | Descripción |
|---|---|
| Consistencia | Mismo entorno para todo el equipo |
| Acceso remoto | Desarrolla desde cualquier lugar |
| Recursos | Más potencia que tu laptop |
| Aislamiento | No ensuciar tu máquina local |
| Producción-like | Entorno similar a producción |
Setup inicial
Herramientas esenciales
# Actualizar sistema
sudo apt update && sudo apt upgrade -y
# Git
sudo apt install git -y
# Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Build essentials
sudo apt install build-essential -y
# Editores
sudo apt install vim nano -y
Múltiples versiones de lenguajes
# Node.js con NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 22
nvm install 20
nvm use 22
# Python con pyenv
curl https://pyenv.run | bash
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
pyenv install 3.12
pyenv install 3.11
pyenv global 3.12
# PHP múltiples versiones
sudo add-apt-repository ppa:ondrej/php -y
sudo apt install php8.2 php8.1 php8.0 -y
sudo update-alternatives --config php
Estructura de proyectos
/home/dev/
├── projects/
│ ├── proyecto-a/
│ ├── proyecto-b/
│ └── proyecto-c/
├── scripts/
│ ├── backup.sh
│ └── deploy.sh
└── configs/
├── nginx/
└── docker/
Cada proyecto con su entorno
# Proyecto Node.js
cd ~/projects/proyecto-a
echo "22" > .nvmrc
nvm use
# Proyecto Python
cd ~/projects/proyecto-b
pyenv local 3.11
python -m venv venv
source venv/bin/activate
Acceso remoto
VS Code Remote SSH
# En tu PC local, instala extensión "Remote - SSH"
# Conecta a tu VPS
# Desarrolla como si fuera local
Configuración SSH (~/.ssh/config):
Host mi-dev
HostName IP_DEL_VPS
User dev
Port 22
IdentityFile ~/.ssh/id_rsa
Sincronización con rsync
# Subir cambios
rsync -avz --exclude 'node_modules' --exclude '.git' \
./proyecto/ dev@vps:~/projects/proyecto/
# Bajar cambios
rsync -avz dev@vps:~/projects/proyecto/ ./proyecto/
GitHub Codespaces alternativo
Tu VPS puede funcionar como “Codespaces casero” con VS Code Server.
# Instalar code-server
curl -fsSL https://code-server.dev/install.sh | sh
# Configurar
mkdir -p ~/.config/code-server
cat > ~/.config/code-server/config.yaml << EOF
bind-addr: 0.0.0.0:8080
auth: password
password: tu_password_seguro
cert: false
EOF
# Iniciar
sudo systemctl enable --now code-server@$USER
Accede desde navegador: http://IP_VPS:8080
Docker para desarrollo
Docker Compose por proyecto
# ~/projects/mi-app/docker-compose.yml
version: '3'
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
environment:
- NODE_ENV=development
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: dev
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
Bases de datos compartidas
# ~/configs/docker/databases.yml
version: '3'
services:
mysql:
image: mysql:8
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: dev
volumes:
- mysql_data:/var/lib/mysql
postgres:
image: postgres:15
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: dev
volumes:
- pg_data:/var/lib/postgresql/data
redis:
image: redis:7
ports:
- "6379:6379"
mongo:
image: mongo:7
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
volumes:
mysql_data:
pg_data:
mongo_data:
# Levantar todas las BDs
cd ~/configs/docker
docker-compose -f databases.yml up -d
Subdominios para cada proyecto
# /etc/nginx/sites-available/proyecto-a
server {
listen 80;
server_name proyecto-a.dev.tudominio.com;
location / {
proxy_pass http://localhost:3000;
include /etc/nginx/proxy_params;
}
}
# /etc/nginx/sites-available/proyecto-b
server {
listen 80;
server_name proyecto-b.dev.tudominio.com;
location / {
proxy_pass http://localhost:4000;
include /etc/nginx/proxy_params;
}
}
SSL con wildcard
# Certificado wildcard para *.dev.tudominio.com
sudo certbot certonly --manual --preferred-challenges dns \
-d "*.dev.tudominio.com"
Git hooks para deploy
Auto-deploy al hacer push
# En VPS: crear repo bare
mkdir -p ~/repos/proyecto-a.git
cd ~/repos/proyecto-a.git
git init --bare
# Hook post-receive
cat > hooks/post-receive << 'EOF'
#!/bin/bash
GIT_WORK_TREE=~/projects/proyecto-a git checkout -f
cd ~/projects/proyecto-a
npm install
npm run build
pm2 restart proyecto-a
EOF
chmod +x hooks/post-receive
# En local: añadir remote
git remote add dev dev@vps:~/repos/proyecto-a.git
# Push despliega automáticamente
git push dev main
Seguridad para VPS de desarrollo
# Firewall básico
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
# Fail2ban
sudo apt install fail2ban -y
# SSH solo con claves
# PasswordAuthentication no en sshd_config
Proteger servicios de desarrollo
# No exponer puertos internos directamente
# Usar Nginx proxy para todo
# O túnel SSH para acceso local
ssh -L 3306:localhost:3306 dev@vps
# Ahora localhost:3306 en tu PC conecta a MySQL del VPS
Preguntas frecuentes
¿Cuánta RAM necesito para un VPS de desarrollo?
Mínimo 4GB para desarrollo web típico. 8GB si usas Docker extensivamente o IDEs pesados. 16GB para proyectos grandes con múltiples servicios.
¿Es mejor desarrollar en local o en VPS?
Depende. VPS es mejor para entornos consistentes, equipos, y cuando tu laptop no tiene suficientes recursos. Local es más rápido para desarrollo simple.
¿Puedo usar VS Code con VPS?
Sí. La extensión Remote-SSH conecta VS Code a tu VPS. Trabajas como si fuera local pero usando recursos del VPS. Es muy fluido.
¿Cómo comparto el VPS de desarrollo con mi equipo?
Crea un usuario por desarrollador. Cada uno tiene su directorio de proyectos. Comparten servicios como bases de datos. Usa Git para sincronizar código.
¿El VPS de desarrollo puede ser el mismo que producción?
No recomendado. Mantén separados para evitar que cambios de desarrollo afecten producción. Mínimo, usa directorios/puertos diferentes.
Nuestra recomendación
Para desarrollador individual:
- VPS 4-8GB
- VS Code Remote SSH
- Docker para servicios
- Subdominios por proyecto
Para equipos:
- VPS 16GB+
- Usuario por desarrollador
- Git hooks para CI/CD
- Servicios compartidos en Docker
¿Buscas VPS para desarrollo? Los VPS de Avantys ofrecen recursos flexibles ideales para entornos de desarrollo.
Conclusión
Un VPS de desarrollo bien configurado mejora tu productividad y estandariza entornos. La inversión inicial de setup se paga rápidamente con un flujo de trabajo más eficiente.
Empieza simple y añade complejidad según necesites.
¿Quieres que lo hagamos por ti?
En Avantys gestionamos tu web, hosting y crecimiento digital de punta a punta. Tú a lo importante.