# Starteinstellungen

> So konfigurierst du Docker-Image, Install-Befehl und Startup Command im Tab Startup des Portals.

Der Tab **Startup** im Portal steuert, wie dein Server gebaut wird und startet. Er enthält drei zentrale Einstellungen: das **Docker-Image** (die Laufzeit-Version), den **Install-Befehl** (Einrichtung der Abhängigkeiten) und den **Startup Command** (der deine Anwendung startet). Diese drei richtig einzustellen, ist entscheidend, damit dein Server korrekt funktioniert.

## Das lernst du hier

- Wie du das richtige Docker-Image (Laufzeitversion) auswählst
- Der Unterschied zwischen Install-Befehl und Startup Command
- Gängige Beispiele für Node.js und Python
- Wie du den Tab Startup für interaktiven Shell-Zugriff nutzt

---

## Docker-Image

Daki führt jeden Server in einem Docker-Container aus. Das **Docker-Image** bestimmt, welche Version einer Programmiersprache in diesem Container verfügbar ist.

Der Tab Startup hat ein Dropdown-Menü zur Auswahl des Images. Stimme es immer auf die Anforderungen deiner Anwendung ab.

| Laufzeit | Beispiel-Images |
| :--- | :--- |
| Node.js | Node.js 22, Node.js 24, Node.js 26 (ältere Versionen mit **EOL** markiert) |
| Python | Python 3.11 bis Python 3.15 (ältere Versionen mit **EOL** markiert) |
| Java | Java 17, Java 21 |
| Weitere | Rust, C#, Lua und mehr (bezahlte Pläne) |

> **Warnung:** Eine falsche Laufzeitversion führt zu Startfehlern. Brauchst du Funktionen von Node.js 22, wähle nicht Node.js 18.

Node.js- und Python-Images sind **Daki Yolks**, die bei jedem Sicherheitsfix automatisch neu gebaut werden; starte deinen Server neu, um das neueste zu erhalten. Images mit der Markierung **EOL** erhalten keine Sicherheitsupdates mehr. Siehe [Eggs & Docker-Images](https://daki.cc/de/wiki/guides/eggs-and-images#daki-yolks-security-patched-images).

---

## Install-Befehl

Der **Install-Befehl** läuft einmal, wenn dein Server eingerichtet oder neu installiert wird. Er ist dafür gedacht, Abhängigkeiten zu installieren und deine Umgebung vorzubereiten.

| Laufzeit | Typischer Install-Befehl |
| :--- | :--- |
| Node.js | `npm install` |
| Python | `pip install -r requirements.txt` |

Setze dieses Feld so, dass deine Abhängigkeiten automatisch installiert werden. Du kannst den Befehl frei an die Bedürfnisse deines Projekts anpassen — etwa wenn du einen anderen Paketmanager verwendest (z. B. `yarn install` oder `pnpm install`).

---

## Startup Command

Der **Startup Command** läuft bei jedem Start deines Servers. Das ist der Befehl, der deine Anwendung tatsächlich startet.

| Anwendungstyp | Startup Command |
| :--- | :--- |
| Node.js — eine Einstiegsdatei | `node index.js` |
| Node.js — npm-start-Skript | `npm start` |
| Python — eine Einstiegsdatei | `python main.py` |
| Python — als Modul | `python -m mypackage` |

Du kannst den Startup Command frei an die Struktur deines Projekts, den Einstiegspunkt und alle Flags oder Argumente anpassen, die deine Anwendung benötigt.

**Wichtig:** Dateinamen müssen exakt stimmen, Groß- und Kleinschreibung zählt. Achte darauf, dass der Dateiname in deinem Startup Command genau dem entspricht, was in der Dateiverwaltung steht.

---

## Interaktiver Shell-Zugriff

Wenn du direkt mit dem Container interagieren und Befehle manuell ausführen möchtest — etwa zum Debuggen, zum Prüfen von Dateien oder für einmalige Befehle —, kannst du den **Startup Command** vorübergehend auf `bash` setzen.

1. Öffne den Tab **Startup**.
2. Ändere den **Startup Command** auf `bash`.
3. Starte deinen Server neu.
4. Öffne den Tab **Console** — jetzt kannst du Shell-Befehle direkt eingeben.

> **Warnung:** Solange der Startup Command auf `bash` steht, startet deine Anwendung **nicht** automatisch. Stelle deinen ursprünglichen Startup Command wieder her, wenn du fertig bist. Mehr dazu unter [Console & Power-Aktionen](https://daki.cc/de/wiki/guides/console).

---

## Egg ändern (Programmiersprache)

Der **Egg** legt die grundlegende Programmiersprache und das Framework fest. Um von einer Sprache zur anderen zu wechseln (z. B. Node.js → Python), nutze den Tab **Settings** — nicht den Tab Startup. Das Ändern des Eggs löst eine Neuinstallation aus; ein Backup vorher wird dringend empfohlen. Siehe [Server-Einstellungen](https://daki.cc/de/wiki/guides/server-settings).

---

## Tipps

- Starte deinen Server neu, nachdem du eine Einstellung im Tab Startup geändert hast, damit die Änderung wirksam wird.
- Stürzt dein Server direkt nach dem Start ab, zeigt die Ausgabe im Tab **Console** fast immer den Grund.
- Gleiche die Dateinamen in deinem Startup Command noch einmal mit dem ab, was in der Dateiverwaltung steht.

---

## Nächste Schritte

- [Umgebungsvariablen](https://daki.cc/de/wiki/guides/environment-variables) — Richte eine `.env`-Datei für deinen Bot-Token und andere Geheimnisse ein.
- [Console & Power-Aktionen](https://daki.cc/de/wiki/guides/console) — Starte deinen Server und sieh dir die Ausgabe an.
- [Server-Einstellungen](https://daki.cc/de/wiki/guides/server-settings) — Installiere deinen Server neu oder ändere den Egg.

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