# Eggs & Docker-Images

> Der Unterschied zwischen Eggs und Docker-Images im Daki Portal, wie beides zusammenarbeitet und welche sicherheitsgepatchten Daki-Yolks-Images verfügbar sind.

Wenn du deinen Server im Portal konfigurierst, begegnen dir zwei verwandte Begriffe: **Eggs** und **Docker-Images**. Der Unterschied zwischen beiden hilft dir, deinen Server richtig zu konfigurieren.

## Das lernst du hier

- Was ein Egg ist und was es steuert
- Was ein Docker-Image ist und wie du das richtige auswählst
- Wie Eggs und Docker-Images zusammenarbeiten
- Welche Node.js- und Python-Versionen verfügbar sind und wie Daki sie aktuell hält
- Wann du was ändern solltest

---

## Was ist ein Egg?

Ein **Egg** ist eine Server-Vorlage, die festlegt, welche Art von Server du betreibst. Sie legt fest:

- Welche Programmiersprache oder welches Framework verwendet wird
- Welche Docker-Images zur Auswahl stehen
- Die Vorlage für den Standard-Startbefehl
- Welche Startvariablen und Standardwerte vorkonfiguriert sind
- Welche Dateien bei einer frischen Installation angelegt werden

Beispiele für Eggs bei Daki:
- **Node.js** — für JavaScript-Anwendungen und Discord-Bots
- **Python** — für Python-Anwendungen und Discord-Bots
- **Java** — für Java-Anwendungen (in bezahlten Plänen verfügbar)
- **Rust** — für Rust-Anwendungen (in bezahlten Plänen verfügbar)
- **Minecraft Java** — für Minecraft-Server (Game-Server-Tarife)

**Den Egg wählst du, wenn du einen Server erstellst.** Im Free Tier sind nur die Node.js- und Python-Eggs verfügbar. Bezahlte Pläne bieten Zugriff auf weitere Eggs.

Um den Egg eines bestehenden Servers zu ändern, gehst du in den Tab **Settings**. Beachte: Das Ändern des Eggs löst eine Neuinstallation aus. Ein Backup deiner Dateien vorher wird dringend empfohlen.

---

## Was ist ein Docker-Image?

Ein **Docker-Image** ist die konkrete Version der Laufzeit, in der dein Server läuft. Während der Egg die Sprache festlegt, bestimmt das Docker-Image die Version.

Der Node.js-Egg bietet zum Beispiel Node.js 22, 24 und 26, der Python-Egg Python 3.11 bis 3.15. Das Docker-Image wählst du im Tab **Startup**.

---

## Daki Yolks: Images mit Sicherheitspatches

Alle Node.js- und Python-Server bei Daki laufen — im Free Tier wie in bezahlten Plänen — auf **Daki Yolks**: unseren eigenen Docker-Images, die als direkte Ersatzbausteine für die Community-Images gebaut sind, die die meisten Pterodactyl-Hosts verwenden. Diese Community-Images werden nur selten neu gebaut und können Sicherheitsfixes daher monatelang hinterherhinken.

- **Immer gepatcht.** Alle 6 Stunden prüfen wir, ob ein neues offizielles Node.js- oder Python-Basis-Image erschienen ist, und bauen die betroffenen Versionen neu. Einmal pro Woche werden alle Images neu gebaut, damit sie Betriebssystem-Updates (Debian 13) übernehmen.
- **Kompatibel.** Dieselben Tools, derselbe Entrypoint und dasselbe Verhalten wie bisher, sodass dein Bot weiterläuft. Node.js-Images enthalten `git`, `ffmpeg`, `sqlite3`, `build-essential`, `python3`, `typescript` und `ts-node`; Python-Images enthalten `gcc`, `g++`, `git` und `ffmpeg`.
- **Getestet.** Jedes Image muss ein echtes TypeScript- oder Python-Programm so starten und ausführen, wie es das Portal startet, bevor es veröffentlicht wird.
- **Open Source.** Die Images sind öffentlich auf [GitHub](https://github.com/niclasspecht/daki-yolks) unter der MIT-Lizenz verfügbar.

| Laufzeit | Version | Unterstützt bis |
| :--- | :--- | :--- |
| Node.js | **26** | April 2029 |
| Node.js | **24** | April 2028 |
| Node.js | **22** | April 2027 |
| Python | **3.15** | Oktober 2031 |
| Python | **3.14** | Oktober 2030 |
| Python | **3.13** | Oktober 2029 |
| Python | **3.12** | Oktober 2028 |
| Python | **3.11** | Oktober 2027 |

> **Tipp:** **Neu starten, um zu aktualisieren.** Der Name des Images bleibt nach jedem Neubau gleich. Ein laufender Server behält sein aktuelles Image, bis er neu gestartet wird; beim nächsten Start bekommt er automatisch die neueste gepatchte Version. Deine Dateien bleiben unberührt.

### Ältere Versionen (End of Life)

Node.js 18 bis 21, 23 und 25 sowie Python 3.9 und 3.10 erhalten von ihren Entwicklern keine Sicherheitsfixes mehr. Sie sind weiterhin auswählbar, damit bestehende Projekte weiterlaufen, werden in der Image-Liste aber mit **EOL - no security updates** markiert und von uns nicht neu gebaut. Wechsle möglichst bald auf eine unterstützte Version.

Wenn du auf eine neue Hauptversion wechselst (z. B. Node.js 20 → 24 oder Python 3.10 → 3.13), installiere deine Abhängigkeiten neu: Führe `npm rebuild` aus oder lösche `node_modules` und führe `npm install` erneut aus, und erstelle Python-virtuelle Umgebungen neu.

---

## Wie beides zusammenarbeitet

So kannst du es dir vorstellen:

| Konzept | Vergleich | Festgelegt in |
| :--- | :--- | :--- |
| **Egg** | Die Entscheidung, in Python zu schreiben | Tab **Settings** (oder bei der Servererstellung) |
| **Docker-Image** | Die Wahl zwischen Python 3.12 und 3.13 | Tab **Startup** |

Den Egg wählst du einmal (und änderst ihn selten), das Docker-Image passt du an, wann immer dein Projekt eine andere Version braucht.

---

## Wann du was ändern solltest

### Docker-Image ändern, wenn:
- Du eine neuere Laufzeitversion brauchst (z. B. ein Upgrade von dem End-of-Life-Node.js 20 auf Node.js 24)
- Dein Projekt aus Kompatibilitätsgründen eine bestimmte Nebenversion braucht

### Egg ändern, wenn:
- Du komplett zu einer anderen Programmiersprache wechseln willst (z. B. von Node.js zu Python)
- Du eine andere Standardkonfiguration oder ein vordefiniertes Installations-Setup brauchst

> **Warnung:** Das Ändern des Eggs löst eine Neuinstallation aus. Dateien werden normalerweise nicht automatisch gelöscht, allerdings können bestimmte Dateien überschrieben werden und ein inkompatibles Setup entstehen. Vor dem Wechsel werden Backups dringend empfohlen. Siehe [Server-Einstellungen](https://daki.cc/de/wiki/guides/server-settings).

---

## Häufige Fragen

**Welchen Egg sollte ich für einen Discord-Bot verwenden?**

Nutze den **Node.js**-Egg für Discord.js-/JavaScript-Bots und den **Python**-Egg für discord.py-/Python-Bots.

**Was ist, wenn mein benötigtes Docker-Image nicht aufgelistet ist?**

Die verfügbaren Images werden durch den Egg festgelegt. Wenn du die gewünschte Version nicht siehst, kontaktiere den Support — auf Anfrage sind möglicherweise weitere Images verfügbar.

**Mein Image zeigt „EOL - no security updates“. Was soll ich tun?**

Diese Version wird von ihren Entwicklern nicht mehr gepflegt. Dein Server läuft weiter, erhält aber keine Sicherheitsfixes mehr. Wähle im Tab **Startup** eine unterstützte Version (Node.js 22, 24, 26 oder Python 3.11 bis 3.15), installiere deine Abhängigkeiten neu und starte den Server neu.

**Wie bekomme ich die neuesten Sicherheitspatches?**

Starte deinen Server neu. Daki Yolks werden automatisch neu gebaut, sobald ein Fix veröffentlicht wird, und ein Server übernimmt den neuen Build bei seinem nächsten Start.

**Löscht das Ändern des Docker-Images meine Dateien?**

Nein. Nur das Ändern des Docker-Images (im Tab **Startup**) betrifft deine Dateien nicht. Nur das Ändern des Eggs (im Tab **Settings**) löst eine Neuinstallation aus.

---

## Nächste Schritte

- [Starteinstellungen](https://daki.cc/de/wiki/guides/startup-settings) — Docker-Image auswählen und deinen Startbefehl konfigurieren.
- [Server-Einstellungen](https://daki.cc/de/wiki/guides/server-settings) — Egg ändern oder Server neu installieren.
- [Discord.js-Bot deployen](https://daki.cc/de/wiki/guides/deploy-discordjs) — Komplette Deployment-Anleitung für Node.js.
- [Python-Bot deployen](https://daki.cc/de/wiki/guides/deploy-python) — Komplette Deployment-Anleitung für Python.

---
Source: https://daki.cc/de/wiki/guides/eggs-and-images
