Publicar servicio basado en VAPOR en DigitalOcean

Published: (February 26, 2026 at 12:02 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

Crear y configurar servidor en DigitalOcean

  1. Crear un Droplet y elegir la distribución Ubuntu 22.04 LTS.
  2. Seleccionar el tamaño del servidor (por ejemplo, 1 vCPU, 512 MB RAM, 10 GB SSD).
  3. Elegir la forma de autenticación SSH y añadir una clave SSH en DigitalOcean.
  4. Asignar un nombre al Droplet y asociarlo a un proyecto.
  5. Confirmar la creación y esperar a que el Droplet se provisiona.

Una vez creado, la IP del servidor aparecerá en el panel.

Conexión SSH y configuración del firewall

ssh root@your_server_ip

Reemplaza your_server_ip por la IP asignada (p. ej. 146.190.121.34). Acepta la huella del host.

# Habilitar OpenSSH en UFW
ufw allow OpenSSH
ufw enable   # confirma con "y"

Abrir el puerto que usará la aplicación (8080):

sudo ufw allow 8080

Crear usuario vapor y otorgarle sudo

adduser vapor   # sigue las indicaciones, dejando en blanco la información adicional
usermod -aG sudo vapor

Copiar las claves SSH autorizadas del usuario root al nuevo usuario:

rsync --archive --chown=vapor:vapor ~/.ssh /home/vapor

Cerrar la sesión y volver a conectarse como vapor:

exit
ssh vapor@your_server_ip

Instalar Swiftly y dependencias de Swift

curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz && \
tar zxf swiftly-$(uname -m).tar.gz && \
./swiftly init --quiet-shell-followup && \
. "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh" && \
hash -r

Confirmar con Y cuando se solicite.

Instalar dependencias necesarias:

sudo apt-get update
sudo apt-get -y install binutils unzip libcurl4-openssl-dev \
  libgcc-13-dev libpython3-dev libstdc++-13-dev libxml2-dev \
  libncurses-dev libz3-dev pkg-config zlib1g-dev

Verificar la versión de Swift:

swift --version
# Swift version 6.2.3 (swift-6.2.3-RELEASE)

Instalar el toolbox de Vapor

git clone https://github.com/vapor/toolbox.git
cd toolbox
git checkout 20.0.0   # último release al momento de escribir
swift build -c release --disable-sandbox
sudo mv .build/release/vapor /usr/local/bin
cd ..
rm -rf toolbox

Clonar y compilar la aplicación

Asegúrate de que la clave SSH del servidor esté añadida a tu cuenta de GitHub, luego clona el repositorio:

git clone git@github.com:.git
cd StripeIntentService
swift run StripeIntentService serve --hostname 0.0.0.0 --port 8080

Nota: Si la compilación falla por falta de memoria, aumenta temporalmente la RAM del Droplet (p. ej. a 4 GB) y, una vez finalizada, puedes reducirla nuevamente.

Configurar claves SSH para GitHub (opcional)

ssh-keygen -t ed25519 -C "your_email@example.com"   # aceptar valores por defecto
eval "$(ssh-agent -s)"

Edita ~/.ssh/config (p. ej. con nano) y añade:

Host github.com
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_ed25519

Añade la clave al agente:

ssh-add ~/.ssh/id_ed25519

Obtén la clave pública y añádela a tu cuenta de GitHub:

cat ~/.ssh/id_ed25519.pub

Ajustar recursos del Droplet (si es necesario)

En el panel de DigitalOcean, ve a Manage → Droplets, selecciona tu Droplet y pulsa Upsize. Elige la configuración de RAM/CPU que necesites (por ejemplo, 2 GB o 4 GB) y confirma el redimensionado. Cuando la compilación haya finalizado, puedes volver a reducir el tamaño si lo deseas.

0 views
Back to Blog

Related posts

Read more »