Crear y configurar servidor en DigitalOcean
Para empezar hay que crear un droplet
Escoger el tamaño del servidor que haga falta. En mi caso, me sirve un procesador regular de un solo núcleo, 512 MB de ram y 10GB de disco:
Especifico el nombre del servidor y lo asocio a un proyecto:
Esperamos hasta que termine de crear el servidor
Adicionalmente, en el panel de la izquierda aparecerán nuestros proyectos. Vamos allá y buscamos el proyecto al que agregamos el droplet:
Configuramos firewall
Activamos OpenSSH
ufw allow OpenSSH
ufw enable
Cuando nos pregunte si estamos seguros, le damos y:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Abrimos el puerto 8080 para después
sudo ufw allow 8080
Rule added
Crear un usuario en el servidor
Adicional a root vamos a crear un usuario llamado vapor. Al introducir el siguiente comando nos va a pedir introducir una contraseña y confirmación de contraseña (deben coincidir). Luego, nos va a pedir una información adicional que se puede dejar en blanco (Full Name, Room Number, Work Phone, Home Phone y Other). Nos va a pedir que confirmemos y vamos a poner Y.
adduser vapor
Permitir que vapor use sudo:
usermod -aG sudo vapor
Copiar las llaves SSH autorizadas del usuario root a vapor, para poder entrar con SSH a este usuario:
rsync --archive --chown=vapor:vapor ~/.ssh /home/vapor
Cerramos la sesión y entramos como el nuevo usuario:
exit
ssh vapor@your_server_ip
Instalamos Swift en el servidor
Primero hay que instalar Swiftly en Linux para gestionar las versiones 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
Nos va a pedir confirmación, así que le damos Y:
Las vamos a instalar con apt-get:
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
Cuando termine, verificamos la versión de Swift instalada
swift --version
Swift version 6.2.3 (swift-6.2.3-RELEASE)
Target: x86_64-unknown-linux-gnu
Instalar VAPOR
Clonamos el toolbox de vapor
git clone https://github.com/vapor/toolbox.git
Hacemos checkout del último release, que en la fecha es 20.0.0:
cd toolbox
git checkout 20.0.0
Se compila vapor y se mueve el binario al path
swift build -c release --disable-sandbox
sudo mv .build/release/vapor /usr/local/bin
Cuando termine de compilar, se puede borrar el toolbox:
cd ..
rm -rf toolbox
Compilar el repositorio en el servidor
Clonar el repositorio:
Luego moverse al directorio del repositorio:
cd StripeIntentService
Compilar la aplicación:
swift run StripeIntentService serve --hostname 0.0.0.0 --port 8080
Para este paso es posible que haga falta cambiar las dimensiones (RAM) del droplet a 4GB. Después de que termine de compilar, se puede volver a reducir:
Esperar hasta que el servidor acabe. Puede demorarse una eternidad.
Cambiar dimensiones del droplet
La configuación de 512MB de ram puede no ser suficiente para compilar la aplicación. En ese caso, hay que cambiar las dimensiones del droplet.
Buscar en el panel izquierdo de "manage" la opción "Droplets":
Allí se buscan las dimensiones que hagan falta, como 2GB de RAM
Se hace clic en ella, y luego "Resize"

SOCIAL SHARE CARD GENERATOR