# La instalación, paso a paso

Toda la instalación la hace un solo comando, `./draften install`, ejecutado en
el paquete descomprimido. Este es el procedimiento desde un servidor vacío
hasta el primer inicio de sesión. Qué contiene una instalación y dónde está
cada cosa se describe en
[Instalación en su propio servidor](/es/admin/self-hosting).

## Paso 1: Prepare el servidor

- x86-64 con Linux (también sirve un Synology u otro NAS con Docker),
- Docker Engine 24 o posterior con el plugin compose; compruébelo con
  `docker compose version`,
- 4 GB de memoria y 20 GB de espacio en disco,
- las herramientas `tar`, `base64` y `sha256sum` (o `shasum`), que tiene casi
  cualquier sistema.

El servidor no necesita internet para la instalación: el paquete trae todas
las imágenes.

## Paso 2: Compruebe que el paquete es nuestro

Para cada paquete de versión `draften-<versión>.tar` publicamos su suma de
comprobación. Calcúlela y compárela:

```
sha256sum draften-<versión>.tar
```

Cada actualización posterior la comprueba la instalación por sí sola con
nuestras claves. Pero la primera instalación no tiene con qué comparar: esta es
su comprobación. Si las sumas no coinciden, no instale el paquete y póngase en
contacto con nosotros.

## Paso 3: Descomprima el paquete y ejecute el instalador

Elija el directorio en el que vivirá la instalación, descomprima en él el
paquete y ejecute el instalador:

```
mkdir /srv/draften
tar -xf draften-<versión>.tar -C /srv/draften
cd /srv/draften
./draften install
```

El instalador carga las imágenes, comprueba el paquete y pregunta lo que
necesita.

## Paso 4: Responda a las preguntas del instalador

- **La dirección** en la que las personas abren draften, como
  `https://draften.firma.cz`. Debe ser la dirección que usan de verdad: con
  ella se construyen las direcciones de redirección para iniciar sesión con
  Microsoft y Google.
- **La organización** y su **nombre corto** (letras minúsculas, dígitos,
  guiones).
- **El primer administrador**: correo electrónico, nombre e idioma (`cs` o
  `en`). Pasa a ser el propietario de la organización y el operador de toda la
  instalación.
- **El updater** (sí / no): un servicio que permite actualizar, cambiar el
  número de procesos y sustituir la clave de cifrado desde la interfaz web.
  Tiene acceso a Docker, lo que equivale a derechos de root en esta máquina.
  Sin él, todo funciona desde la línea de comandos.
- **El certificado HTTPS**: el archivo del certificado y su clave (PEM), si
  HTTPS debe terminar directamente en draften. Déjelo vacío cuando un proxy
  inverso o un túnel delante de draften se encargue de HTTPS (consulte el
  paso 7).

Cada respuesta también se puede dar directamente en el comando, así que puede
automatizar la instalación con un script; `./draften help` muestra las
opciones. Por ejemplo:

```
./draften install --url https://draften.firma.cz --org "Firma S.L." \
  --admin-email jan@firma.cz --admin-name "Jan Novák" --locale cs --updater yes
```

## Paso 5: Guarde una copia de `.env` fuera del servidor

El instalador escribe la configuración y los secretos en el archivo `.env` del
directorio de la instalación. **Cópielo (como mínimo el valor de `MASTER_KEY`)
a un lugar seguro fuera del servidor.** Esta clave cifra el acceso a los
buzones, las claves de los modelos y las contraseñas para enviar correo. Sin
ella nadie puede leerlos, ni siquiera desde una copia de seguridad, y nosotros
no la tenemos.

## Paso 6: Establezca su contraseña e inicie sesión

Al final, el instalador muestra un enlace para establecer la contraseña del
primer administrador. Ábralo en un navegador, establezca la contraseña y habrá
iniciado sesión. El enlace funciona una sola vez y es válido durante 7 días.
Cómo es la página de la contraseña lo muestra la guía
«[Iniciar sesión](/es/signing-in)».

!> Solo el instalador muestra el enlace. No lo copie en ningún sitio ni lo
reenvíe: quien lo tenga establece la contraseña del administrador.

## Paso 7: Publique la dirección

Según lo que haya elegido en el paso 4:

- **Con certificado**, draften escucha él mismo en el puerto 443 y redirige del
  puerto 80 a HTTPS. Basta con que la dirección apunte a este servidor en el
  DNS.
- **Sin certificado**, draften escucha en `127.0.0.1:8085` y HTTPS lo termina
  su proxy inverso o su túnel delante de él. Si el proxy está en otra máquina,
  ponga `WEB_BIND=0.0.0.0:8085` en `.env`.
- **Con un Cloudflare Tunnel** no hace falta ningún puerto abierto: ponga el
  token del túnel en `.env` (`CLOUDFLARE_TUNNEL_TOKEN`), añada `tunnel` a
  `COMPOSE_PROFILES` (por ejemplo, `COMPOSE_PROFILES=updater,tunnel`) y ejecute
  `docker compose up -d`. En Cloudflare, dirija el túnel a
  `http://127.0.0.1:8085`.

El certificado también se puede añadir más tarde:

```
./draften certificate cert.pem key.pem --url https://draften.firma.cz
```

## Paso 8: Suba la licencia

Le enviamos la licencia como un archivo `licence-<número>.json`. En la
interfaz, abra **Instalación › Instalación**, elija el archivo en la tarjeta
**Licencia**, al final de la página, y súbalo. Mientras la instalación no tenga
licencia, los asistentes no procesan correo y no se puede crear ningún buzón ni
asistente. Más información en [La licencia](/es/admin/licence).

## Paso 9: Configure las claves y el envío de correo predeterminados

En la misma página **Instalación**, configure las **Claves de API
predeterminadas** para los modelos y el **Envío de correo predeterminado**
(desde dónde salen las invitaciones y los enlaces de contraseña). Se aplican a
todas las organizaciones que no configuren los suyos. Detalles:
[Claves de API de los modelos](/es/admin/api-keys) y
[Envío de correo](/es/admin/outgoing-mail).

## Paso 10: Conecte un buzón y configure un asistente

A partir de aquí se continúa como en cualquier otra instalación:

1. [Añada y conecte un buzón](/es/admin/adding-a-mailbox).
2. [Configure un asistente con la configuración guiada](/es/new-assistant).
3. Invite a más personas: [Personas y roles](/es/admin/people-and-roles).

## Paso 11: Compruebe que todo funciona

```
./draften status
```

muestra la versión, el estado del servicio web y de los workers, el estado de
HTTPS y los volcados de la base de datos. En la interfaz, la página
**Funcionamiento** muestra si los workers se reportan; consulte
[Funcionamiento y capacidad](/es/admin/operations).

## Paso 12: Ocúpese de las copias de seguridad

Con el updater, la base de datos se copia sola, cada día a la 01:00, en la
carpeta `backups/` del directorio de la instalación; la hora se cambia en
**Instalación › Instalación**, en la tarjeta **Copias de seguridad de la base
de datos**. Sin el updater, ejecute `./draften backup` desde cron. Sin embargo,
las copias están en el mismo disco que la base de datos: **configure la copia
de `backups/` y `.env` fuera del servidor.** Más detalles:
[Copia de seguridad y restauración](/es/admin/backup-and-restore).

## Siguientes pasos

- «[Actualizar con el updater](/es/admin/updating-with-the-updater)»: una
  versión nueva con un solo botón,
- [Actualizar desde la línea de comandos](/es/admin/updating),
- [Copia de seguridad y restauración](/es/admin/backup-and-restore),
- [Solución de problemas](/es/admin/troubleshooting).
