# Configuración de inicio

> Cómo configurar la imagen de Docker, el comando de instalación y el comando de inicio de tu servidor en la pestaña Startup del Portal.

La pestaña **Startup** del Portal controla cómo se construye y se lanza tu servidor. Contiene tres ajustes clave: la **imagen de Docker** (la versión del tiempo de ejecución), el **comando de instalación** (configuración de dependencias) y el **comando de inicio** (lo que lanza tu aplicación). Configurarlos bien es esencial para que tu servidor funcione correctamente.

## Lo que aprenderás

- Cómo seleccionar la imagen de Docker correcta (la versión del tiempo de ejecución)
- La diferencia entre el comando de instalación y el comando de inicio
- Ejemplos habituales para Node.js y Python
- Cómo usar la pestaña Startup para acceder a una shell interactiva

---

## Imagen de Docker

Daki ejecuta cada servidor dentro de un contenedor de Docker. La **imagen de Docker** determina qué versión del lenguaje de programación está disponible dentro de ese contenedor.

La pestaña Startup tiene un desplegable para seleccionar la imagen. Ajústala siempre a lo que requiera tu aplicación.

| Runtime | Ejemplos de imágenes |
| :--- | :--- |
| Node.js | Node.js 22, Node.js 24, Node.js 26 (las versiones antiguas aparecen marcadas como **EOL**) |
| Python | De Python 3.11 a Python 3.15 (las versiones antiguas aparecen marcadas como **EOL**) |
| Java | Java 17, Java 21 |
| Otros | Rust, C#, Lua y más (planes de pago) |

> **Advertencia:** Elegir una versión de runtime equivocada provoca fallos al iniciar. Si tu proyecto necesita funciones de Node.js 22, no selecciones Node.js 18.

Las imágenes de Node.js y Python son **Daki Yolks**, que se reconstruyen automáticamente cada vez que se publica una corrección de seguridad; reinicia tu servidor para obtener la más reciente. Las imágenes marcadas como **EOL** ya no reciben actualizaciones de seguridad. Consulta [Eggs e imágenes de Docker](https://daki.cc/es/wiki/guides/eggs-and-images#daki-yolks-security-patched-images).

---

## Comando de instalación

El **comando de instalación** se ejecuta una vez cuando se configura tu servidor o se reinstala. Está pensado para instalar dependencias y preparar el entorno.

| Runtime | Comando de instalación habitual |
| :--- | :--- |
| Node.js | `npm install` |
| Python | `pip install -r requirements.txt` |

Define este campo para que tus dependencias se instalen automáticamente. Puedes personalizar este comando libremente para adaptarlo a las necesidades de tu proyecto, por ejemplo, si usas otro gestor de paquetes (como `yarn install` o `pnpm install`).

---

## Comando de inicio

El **comando de inicio** se ejecuta cada vez que arranca tu servidor. Es el comando que lanza realmente tu aplicación.

| Tipo de aplicación | Comando de inicio |
| :--- | :--- |
| Node.js, con un único archivo de entrada | `node index.js` |
| Node.js, con script `npm start` | `npm start` |
| Python, con un único archivo de entrada | `python main.py` |
| Python, como módulo | `python -m mypackage` |

Puedes personalizar el comando de inicio según la estructura de tu proyecto, su punto de entrada y cualquier flag o argumento que necesite tu aplicación.

**Importante:** los nombres de archivo distinguen entre mayúsculas y minúsculas. Asegúrate de que el nombre del archivo en tu comando de inicio coincide exactamente con el que aparece en el gestor de archivos.

---

## Acceso interactivo a la shell

Si quieres interactuar directamente con el contenedor y ejecutar comandos a mano (por ejemplo, para depurar, inspeccionar archivos o ejecutar comandos puntuales), puedes poner temporalmente el **comando de inicio** en `bash`.

1. Ve a la pestaña **Startup**.
2. Cambia el **comando de inicio** a `bash`.
3. Reinicia tu servidor.
4. Abre la pestaña **Console**: ahora puedes escribir comandos de shell directamente.

> **Advertencia:** Mientras el comando de inicio esté en `bash`, tu aplicación **no** se iniciará automáticamente. Restaura tu comando de inicio original cuando termines. Consulta [Consola y acciones de energía](https://daki.cc/es/wiki/guides/console) para más detalles.

---

## Cambiar el egg (lenguaje de programación)

El **egg** define el lenguaje de programación y el framework en general. Para cambiar de un lenguaje a otro (por ejemplo, de Node.js a Python), usa la pestaña **Settings**, no la pestaña Startup. Cambiar el egg provoca una reinstalación; antes se recomiendan encarecidamente las copias de seguridad. Consulta [Ajustes del servidor](https://daki.cc/es/wiki/guides/server-settings).

---

## Consejos

- Reinicia tu servidor después de cambiar cualquier ajuste de la pestaña Startup para que los cambios surtan efecto.
- Si tu servidor se cae nada más arrancar, la salida de la pestaña Console casi siempre muestra el motivo.
- Revisa los nombres de archivo de tu comando de inicio y compáralos con los que aparecen en el gestor de archivos.

---

## Próximos pasos

- [Variables de entorno](https://daki.cc/es/wiki/guides/environment-variables): configura un archivo `.env` para el token de tu bot y otros secretos.
- [Consola y acciones de energía](https://daki.cc/es/wiki/guides/console): inicia tu servidor y consulta la salida.
- [Ajustes del servidor](https://daki.cc/es/wiki/guides/server-settings): reinstala tu servidor o cambia el egg.

---
Source: https://daki.cc/es/wiki/guides/startup-settings
