# Modul 158: Softwaremigration Planen und Durchführen
## Inhaltsverzeichnis
- [Inhaltsverzeichnis](#inhaltsverzeichnis)
- [Einleitung](#einleitung)
- [Informieren](#informieren)
- [Planen](#planen)
- [Ziele](#ziele)
- [Must-have](#must-have)
- [Nice to have](#nice-to-have)
- [Low priority](#low-priority)
- [To-do](#to-do)
- [Panel](#panel)
- [Wings](#wings)
- [Post-Installation](#post-installation)
- [Migrationsplan](#migrationsplan)
- [Entscheiden](#entscheiden)
- [Realisieren](#realisieren)
- [Kontrollieren](#kontrollieren)
- [Testen](#testen)
- [Auswerten](#auswerten)
## Einleitung
Das ist die Dokumentation für die Migration von einem Pterodactyl Panel von einem alten Server auf einen neuen.
Es wird von einem Netcup vServer zu einem Hetzner Dedicated Server migriert. Diese Migration entspricht also nicht nur einem Hardware- sondern auch einem Anbieterwechsel.
## Informieren
## Planen
Damit die Migration von dem Pterodactyl Gameserver Panel reibungslos verläuft, sollten wir am besten einige Ziele und Zeitpläne festlegen. So kann am effizientesten gearbeitet werden.
### Ziele
#### Must-have
- [ ] Minecraft Server 100% migriert (inkl. save data)
- [ ] Funktionelles Wings Backend
- [ ] Virtualisiertes Wings & Panel
- [ ] Reverse Proxy
- [ ] Backups
#### Nice to have
- [ ] Virtualisiertes Wings Panel mit dedizierter IP Adresse
- [ ] 2FA
#### Low priority
- no tasks here
### To-do
#### Panel
- [ ] Setup LXC CT
- [ ] Check if all dependecies are met (PHP, MYSQL, etc...)
- [ ] Download extra pterodactyl files
- [ ] Database Setup
- [ ] Crontab configurations
- [ ] Configure Reverse Proxy
#### Wings
- [ ] Setup VM
- [ ] Check if all dependencies are met. (`curl`, `docker`)
- [ ] Download and Configure Wings
#### Post-Installation
- [ ] Add new host as a node to the old host
- [ ] Transfer server eggs
- [ ] Delete the old host from the new host
### Migrationsplan
![migration plan](../assets/migration-plan.png)
## Entscheiden
Dieses Kapitel dient zur Zeiteinteilung, wir *entscheiden*, wer was wann macht. Unten ist eine Tabelle die das genau einteilt und einplant. Man kann jede Aufgabe anklicken um zum Kapitel zu kommen, in dem der Auftrag dokumentiert wurde.
| Aufgabe | Tag | Zeiteinschätzung | Wer? |
| ------------------------------ | --- | ----------------------------- | ------------------ |
| **Panel** | | **-h** | |
| Setup LXC Container | 4 | 30min | Stelian |
| Docker Image erstellen | 4 | 5h (mit Troubleshooting) | Milena |
| Deployment Panel | 5 | 1.5h | Aleksander |
| Reverse Proxy | 5 | 20min | Aleksander |
| 2FA | 5 | 5min | Stelian |
| **Wings** | | **-h** | |
| Setup VM | 4 | 1h | Stelian |
| Installation Wings | 6 | 2.5h | Milena |
| Daemonizing | 6 | 30min | Stelian |
| **Gameservermigration** | | **3h + 5h (server-transfer)** | |
| Vom alten Node migrieren | 5-6 | 5h (im Hintergrund) | Stelian |
| Gameserver testen | 6 | 2h | Aleksander |
| Altes Node auflösen | 7 | 1h | Milena |
| **Restliche Sachen** | | | |
| Dokumentation | - | 5h | Aleksander, Milena |
| **Total** | | **-h** | |
## Realisieren
Dieser Teil der Dokumentation wurde zur Lesbarkeit in verschiedene Dateien aufgeteilt. Folgend ist eine Liste mit diesen Kapiteln.
TODO: update this table of contents once docs are finished
- [Panel](panel/)
- [Setup LXC Container](panel/README.md#setup-lxc-container)
- [Docker Image erstellen](panel/README.md#docker-image-erstellen)
- [Deployment Panel](panel/README.md#deployment-vom-panel)
- [2FA](panel/README.md#2fa)
- [Wings](wings/)
- [Setup VM](wings/README.md#setup-vm)
- [Installation Wings](wings/README.md#installation-wings)
- [Daemonizing](wings/README.md#daemonizing)
- [Gameservermigration](migration/)
- [Vom alten Node migrieren](migration/README.md#vom-alten-node-migrieren)
- [Altes Node auflösen](migration/README.md#altes-node-auflösen)
## Kontrollieren
### Testen
## Auswerten