Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 184 additions & 0 deletions docs/deploy/digital-ocean.es.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
# Despliegue en DigitalOcean

Esta guía te mostrará cómo desplegar una aplicación simple "Hola mundo" de Vapor en un [Droplet](https://www.digitalocean.com/products/droplets/). Para seguir esta guía, debes tener una cuenta de [DigitalOcean](https://www.digitalocean.com) con la facturación configurada.

## Crear Servidor

Comencemos por instalar Swift en un servidor Linux. Usa el menú de creación para crear un nuevo Droplet.

![Crear Droplet](../images/digital-ocean-create-droplet.png)

En distribuciones, selecciona Ubuntu 22.04 LTS. La siguiente guía utilizará esta versión como ejemplo.

![Distribución Ubuntu](../images/digital-ocean-distributions-ubuntu.png)

!!! note "Nota"
Puedes seleccionar cualquier distribución de Linux con una versión compatible con Swift. Puedes consultar qué sistemas operativos son compatibles oficialmente en la página [Versiones de Swift](https://swift.org/download/#releases).

Después de seleccionar la distribución, elije el plan y la región del centro de datos que prefieras. Luego, configura una clave SSH para acceder al servidor después de que se cree. Finalmente, haz clic en crear Droplet y espera a que se inicie el nuevo servidor.

Cuando el nuevo servidor esté listo, pasa el cursor sobre la dirección IP del Droplet y haz clic en copiar.

![Droplet List](../images/digital-ocean-droplet-list.png)

## Configuración Inicial

Abre tu terminal y conéctate al servidor como root usando SSH.

```sh
ssh root@your_server_ip
```

DigitalOcean tiene una guía detallada para la [configuración inicial del servidor en Ubuntu 22.04](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04). Esta guía cubrirá rápidamente los conceptos básicos.

### Configurar el Firewall

Permitir OpenSSH a través del firewall y habilitarlo.

```sh
ufw allow OpenSSH
ufw enable
```

### Añadir Usuario

Crea un nuevo usuario además de `root`. Esta guía llama al nuevo usuario `vapor`.

```sh
adduser vapor
```

Permite que el usuario recién creado use `sudo`.

```sh
usermod -aG sudo vapor
```

Copia las claves SSH autorizadas del usuario root al usuario recién creado. Esto te permitirá ingresar por SSH como el nuevo usuario.

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

Finalmente, sal de la sesión SSH actual e inicia sesión como el usuario recién creado.

```sh
exit
ssh vapor@your_server_ip
```

## Instalar Swift

Ahora que has creado un nuevo servidor Ubuntu y has iniciado sesión como usuario no root, puedes instalar Swift.

### Instalación automática con la herramienta Swiftly CLI (recomendada)

Visita el [sitio web de Swiftly](https://swiftlang.github.io/swiftly/) para obtener instrucciones sobre cómo instalar Swiftly y Swift en Linux. Después de eso, instala Swift con el siguiente comando:

#### Uso Básico

```sh
$ swiftly install latest

Fetching the latest stable Swift release...
Installing Swift 5.9.1
Downloaded 488.5 MiB of 488.5 MiB
Extracting toolchain...
Swift 5.9.1 installed successfully!

$ swift --version

Swift version 5.9.1 (swift-5.9.1-RELEASE)
Target: x86_64-unknown-linux-gnu
```

## Instalar Vapor con Vapor Toolbox

Ahora que Swift está instalado, instalemos Vapor con Vapor Toolbox. Necesitarás compilar la toolbox desde el código fuente. Consulta las [versiones](https://github.com/vapor/toolbox/releases) de la toolbox en GitHub para encontrar la última versión. En este ejemplo, estamos usando 18.6.0.

### Clonar y Compilar Vapor

Clona el repositorio de Vapor Toolbox.

```sh
git clone https://github.com/vapor/toolbox.git
```

Consulta la última versión.

```sh
cd toolbox
git checkout 18.6.0
```

Compila Vapor y mueve el binario a tu ruta.

```sh
swift build -c release --disable-sandbox --enable-test-discovery
sudo mv .build/release/vapor /usr/local/bin
```

### Crear un Proyecto Vapor

Utiliza el nuevo comando de proyecto de la toolbox para iniciar un proyecto.

```sh
vapor new HelloWorld -n
```

!!! tip "Consejo"
El indicador `-n` brinda una plantilla básica al responder automáticamente "no" a todas las preguntas.

![Vapor Splash](../images/vapor-splash.png)

Una vez que finalice el comando, cambia a la carpeta recién creada:

```sh
cd HelloWorld
```

### Abrir Puerto HTTP

Para acceder a Vapor en tu servidor, abre un puerto HTTP.

```sh
sudo ufw allow 8080
```

### Ejecutar

Ahora que Vapor está configurado y tenemos un puerto abierto, ejecutémoslo.

```sh
swift run App serve --hostname 0.0.0.0 --port 8080
```

Visita la IP de tu servidor a través del navegador o terminal local y deberías ver "It works!". La dirección IP es `134.122.126.139` en este ejemplo.

```
$ curl http://134.122.126.139:8080
It works!
```

De vuelta a tu servidor, deberías ver los registros de la solicitud de prueba.

```
[ NOTICE ] Server starting on http://0.0.0.0:8080
[ INFO ] GET /
```

Usa `CTRL+C` para salir del servidor. Puede tomar un segundo apagarlo.

¡Felicitaciones por hacer que tu aplicación Vapor funcione en un Droplet de DigitalOcean!

## Próximos Pasos

El resto de esta guía indica recursos adicionales para mejorar tu despliegue.

### Supervisor

Supervisor es un sistema de control de procesos que puedes ejecutar y monitorear tu ejecutable de Vapor. Con la configuración de Supervisor, tu aplicación puede iniciarse automáticamente cuando se inicia el servidor y reiniciarse en caso de que falle. Obten más información sobre [Supervisor](../deploy/supervisor.md).

### Nginx

Nginx es un servidor y proxy HTTP extremadamente rápido, confiable y fácil de configurar. Si bien Vapor admite el servicio directo de solicitudes HTTP, el proxy detrás de Nginx puede proporcionar un mayor rendimiento, seguridad y facilidad de uso. Obten más información sobre [Nginx](../deploy/nginx.md).
1 change: 0 additions & 1 deletion docs/deploy/digital-ocean.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,6 @@ vapor new HelloWorld -n
!!! tip
The `-n` flag gives you a bare bones template by automatically answering no to all questions.


![Vapor Splash](../images/vapor-splash.png)

Once the command finishes, change into the newly created folder:
Expand Down
Loading