# Configurações de inicialização

> Como configurar a imagem Docker, o comando de instalação e o comando de inicialização do seu servidor na aba Startup do Portal.

A aba **Startup** do Portal controla como o seu servidor é construído e iniciado. Ela tem três configurações principais: a **imagem Docker** (versão do runtime), o **comando de instalação** (configuração das dependências) e o **comando de inicialização** (o que inicia a sua aplicação). Acertar esses três pontos é essencial para o servidor funcionar corretamente.

## O que você vai aprender

- Como selecionar a imagem Docker correta (versão do runtime)
- A diferença entre o comando de instalação e o comando de inicialização
- Exemplos comuns para Node.js e Python
- Como usar a aba Startup para acesso ao shell interativo

---

## Imagem Docker

A Daki roda cada servidor dentro de um contêiner Docker. A **imagem Docker** determina qual versão da linguagem de programação está disponível dentro desse contêiner.

A aba Startup tem um menu suspenso para selecionar a imagem. Sempre combine-a com o que a sua aplicação exige.

| Runtime | Exemplos de imagens |
| :--- | :--- |
| Node.js | Node.js 22, Node.js 24, Node.js 26 (versões antigas marcadas como EOL) |
| Python | Python 3.11 a Python 3.15 (versões antigas marcadas como EOL) |
| Java | Java 17, Java 21 |
| Outros | Rust, C#, Lua e mais (planos pagos) |

> **Aviso:** Escolher a versão errada do runtime causa falhas na inicialização. Se o seu projeto exige recursos do Node.js 22, não selecione o Node.js 18.

As imagens Node.js e Python são **Daki Yolks**, reconstruídas automaticamente sempre que uma correção de segurança é lançada; reinicie seu servidor para pegar a mais recente. Imagens marcadas como **EOL** não recebem mais atualizações de segurança. Veja [Eggs e imagens Docker](https://daki.cc/pt/wiki/guides/eggs-and-images#daki-yolks-security-patched-images).

---

## Comando de instalação

O **comando de instalação** roda uma vez quando o seu servidor é configurado ou reinstalado. Ele é feito para instalar dependências e preparar o ambiente.

| Runtime | Comando de instalação típico |
| :--- | :--- |
| Node.js | `npm install` |
| Python | `pip install -r requirements.txt` |

Defina este campo para que as suas dependências sejam instaladas automaticamente. Você pode personalizar esse comando livremente para as necessidades do seu projeto — por exemplo, se usar outro gerenciador de pacotes (como `yarn install` ou `pnpm install`).

---

## Comando de inicialização

O **comando de inicialização** roda toda vez que o seu servidor inicia. É o comando que de fato executa a sua aplicação.

| Tipo de aplicação | Comando de inicialização |
| :--- | :--- |
| Node.js — arquivo de entrada único | `node index.js` |
| Node.js — script npm start | `npm start` |
| Python — arquivo de entrada único | `python main.py` |
| Python — como módulo | `python -m mypackage` |

Você pode personalizar o comando de inicialização para a estrutura do seu projeto, o ponto de entrada e quaisquer flags ou argumentos que a sua aplicação precise.

**Importante:** nomes de arquivo diferenciam maiúsculas de minúsculas. Certifique-se de que o nome do arquivo no seu comando de inicialização é exatamente igual ao que aparece no gerenciador de arquivos.

---

## Acesso ao shell interativo

Se quiser interagir diretamente com o contêiner e rodar comandos manualmente — por exemplo, para depurar, inspecionar arquivos ou executar comandos pontuais —, você pode definir temporariamente o **comando de inicialização** como `bash`.

1. Vá para a aba **Startup**.
2. Altere o **comando de inicialização** para `bash`.
3. Reinicie seu servidor.
4. Abra a aba **Console** — agora você pode digitar comandos de shell diretamente.

> **Aviso:** Enquanto o comando de inicialização estiver definido como `bash`, sua aplicação **não** iniciará automaticamente. Restaure o comando de inicialização original quando terminar. Veja [Console e ações de energia](https://daki.cc/pt/wiki/guides/console) para mais detalhes.

---

## Trocando o egg (linguagem de programação)

O **egg** define a linguagem de programação e o framework gerais. Para trocar de uma linguagem para outra (por exemplo, Node.js → Python), use a aba **Settings** — não a aba Startup. Trocar o egg dispara uma reinstalação; backups são altamente recomendados antes. Veja [Configurações do servidor](https://daki.cc/pt/wiki/guides/server-settings).

---

## Dicas

- Reinicie seu servidor depois de alterar qualquer configuração na aba Startup para que as mudanças tenham efeito.
- Se o seu servidor cair logo depois de iniciar, a saída da aba Console quase sempre mostra o motivo.
- Confira os nomes de arquivo no seu comando de inicialização com os que aparecem no gerenciador de arquivos.

---

## Próximos passos

- [Variáveis de ambiente](https://daki.cc/pt/wiki/guides/environment-variables) — Configure um arquivo `.env` para o token do seu bot e outros segredos.
- [Console e ações de energia](https://daki.cc/pt/wiki/guides/console) — Inicie seu servidor e veja a saída.
- [Configurações do servidor](https://daki.cc/pt/wiki/guides/server-settings) — Reinstale seu servidor ou troque o egg.

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