├── docs ├── CNAME ├── assets │ └── images │ │ └── logo.png ├── guides │ ├── contribute.md │ ├── update.md │ └── setup.md ├── index.md ├── faq.md ├── troubleshooting.md └── installation.md ├── .gitignore ├── scripts ├── installAddon.sh ├── README.md ├── createPatch.sh ├── startPatching.sh └── install.sh ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ └── bug-melden.md └── workflows │ └── docs.yml ├── patches └── README.md ├── LICENSE ├── mkdocs.yml └── README.md /docs/CNAME: -------------------------------------------------------------------------------- 1 | germandactyl.de -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # IDEs 2 | .idea 3 | .vscode 4 | -------------------------------------------------------------------------------- /scripts/installAddon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Bald verfügbar 4 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: https://www.buymeacoffee.com/sierradevoplers 2 | -------------------------------------------------------------------------------- /docs/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pavl21/GermanDactyl/HEAD/docs/assets/images/logo.png -------------------------------------------------------------------------------- /docs/guides/contribute.md: -------------------------------------------------------------------------------- 1 | Erstmal natürlich vielen Dank dafür, dass du uns helfen möchtest, GermanDactyl zu verbessern und deine Änderungen 2 | beizutragen. In den nächsten Tagen erscheint hier eine Anleitung, wie Contributions ablaufen. 3 | -------------------------------------------------------------------------------- /patches/README.md: -------------------------------------------------------------------------------- 1 | # Patches 2 | 3 | In diesem Ordner findest du alle Patches nach Version sortiert 4 | 5 | - [Version 1.11.2](v1.11.2.patch) - `Patch für das Server- und Adminpanel` 6 | - [Version 1.11.3](v1.11.3.patch) - `Patch für das Server- und Adminpanel` 7 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-melden.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug melden 3 | about: Bug gefunden, wird behoben! 4 | title: "[BUG]" 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | -> **Was steht dort?** 11 | 12 | 13 | -> **Was meinst du? Wie soll`s richtig sein?** 14 | 15 | **Screenshots** 16 | Hast du Screenshots? Nehmen wir! 17 | 18 | **Sonstiges** 19 | Noch etwas, was wichtig ist? Hier bitte! 20 | -------------------------------------------------------------------------------- /scripts/README.md: -------------------------------------------------------------------------------- 1 | # Scripts 2 | 3 | In diesem Ordner findest du alle Skripte, die wir für das Übersetzen verwenden. 4 | 5 | - [createPatch.sh](createPatch.sh) - `Erstellt einen neuen Patch` 6 | - [startPatching.sh](startPatching.sh) - `Wechselt in den patch-Modus` 7 | - [install.sh](install.sh) - `Installiert den neusten GermanDactyl Patch` 8 | - [installAddon.sh](installAddon.sh) **[Nicht fertig]** - `Installiert ein Addon` 9 | -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: Deploy docs 2 | on: 3 | push: 4 | paths: [ "docs/**" ] 5 | 6 | jobs: 7 | deploy: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v3 11 | - uses: actions/setup-python@v4 12 | with: 13 | python-version: 3.9 14 | - name: Install dependencies 15 | run: pip install mkdocs-material 16 | - name: Deploy documentation 17 | run: mkdocs gh-deploy --force 18 | -------------------------------------------------------------------------------- /scripts/createPatch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Looks up the newest panel version, creates the patch & leaves patch mode 3 | 4 | # Define the patch version 5 | version=$(git ls-remote --refs --sort="version:refname" --tags https://github.com/pterodactyl/panel/ | cut -d/ -f3- | tail -n1) 6 | 7 | # Build a patch 8 | git add resources app routes database public 9 | git commit -m "Translations $version" 10 | git format-patch base..HEAD --stdout > "patches/$version.patch" 11 | rm -r public 12 | git add . 13 | git commit -m "Patch file" 14 | git checkout main 15 | git restore --source patches "patches/$version.patch" 16 | git tag -d base 17 | git branch -D patches 18 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | # GermanDactyl - Willkommen! 2 | 3 | Willkommen auf dem GermanDactyl-Projekt. 4 | Mithilfe von GNM möchte ich anderen die Möglichkeit bieten, Pterodactyl auf Deutsch zu übersetzen. 5 | 6 | ## Warum bieten wir das an? 7 | Die Entwickler von Pterodactyl haben einiges in kurzer Zeit umgestellt, weswegen das Übersetzen schwieriger wurde. Stand jetzt ist alles Hard gecodet. Mithilfe unseres Projekts kannst du mit wenigen Befehlen alles ins Deutsche bringen. 8 | 9 | ## Kann man auch hierüber Pterodactyl installieren? 10 | Ja, mit unserem Tool namens GermanDactyl Setup! Mithilfe dieses Scripts kannst du über eine grafische Oberfläche in einer SSH-Sitzung ganz leicht dein Pterodactyl Panel und die Server aufsetzen. Für mehr schau einfach [in unserem Beitrag](https://germandactyl.de/guides/setup/). 11 | 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Paul Schwarz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/faq.md: -------------------------------------------------------------------------------- 1 | Hier findest du die häufig gestellten Fragen zusammengefasst. Wenn du etwas nicht finden solltest, dann kannst du gerne bei uns ein Support-Ticket [im Discord](https://discord.gg/CzQYSpNmdd) öffnen. 2 | 3 | ??? error "Es wird nach dem Update nur noch Deutsch vorgeschlagen. Wie ändere ich die Sprache?" 4 | Die Entwickler von Pterodactyl hatten früher mal ein System, mit der man auf mehrere Sprachen wechseln konnte. Leider hat sich das nicht durchgesetzt und sie haben es nur noch in englischer Sprache weiterentwickelt, somit sind alle alten Sprachen nicht mehr kompatibel. 5 | GermanDactyl tut somit nicht mehr als die englisch geschriebenen Wörter mit deutschen zu ersetzen. Somit ist eine Änderung der Sprache nicht mehr möglich. 6 | Wenn du nach der Installation von GermanDactyl wieder zurück zur englischen Variante möchtest, dann musst du alle optischen Änderungen zurücksetzen. Befolge dafür [diese Anleitung](https://germandactyl.de/guides/update/). 7 | 8 | ??? error "Ich habe Fehler in der Übersetzung gefunden. Wie kann ich das melden?" 9 | Wenn du einen Schreibfehler oder etwas auf Englisch gefunden hast, obwohl du GermanDactyl installiert hast, dann kannst du den Fehler bei uns im Discord-Server im Reiter **Testübersetzungen** einreichen. Im Textchannel *#einreichen* findest du die Erklärung, wie du das machen kannst. Wir danken jeden, der uns dabei helfen möchte, GermanDactyl besser zu machen. 10 | -------------------------------------------------------------------------------- /scripts/startPatching.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Downloads the newest version of pterodactyl & switches to patch mode 3 | 4 | # Download the newest release from pterodactyl 5 | wget -q -O - https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz | tar -xvz resources app routes database public 6 | 7 | # Switch to patch mode 8 | git reset --hard HEAD 9 | git checkout -b patches 10 | git add . 11 | git commit -m "base" 12 | git tag base 13 | 14 | # Apply previous patch 15 | patch_files=$(ls -1 patches/*.patch 2>/dev/null | wc -l) 16 | if [ "$patch_files" != 0 ]; then 17 | patch=$(ls -t patches/*.patch | head -1) 18 | git apply --ignore-whitespace --ignore-space-change -C1 --apply --allow-empty --reject "$patch" 19 | 20 | rejected_files=$(find . \( -name "*.rej" -o -name "*.orig" \) | wc -l) 21 | if [ "$rejected_files" == 0 ]; then 22 | echo -e "\033[1;32m✓ Beim Patch-Vorgang traten keine Fehler auf.\033[0;39m" 23 | else 24 | echo -e "\033[1;31m✗ Folgende Dateien konnten nicht gepatcht werden und brauchen manuelle Übersetzungen:\033[0;39m" 25 | fi 26 | 27 | find . \( -name "*.rej" -o -name "*.orig" \) | while read -r file; do 28 | file_pretty=$(echo "$file" | cut -c 3-) 29 | echo -e "\033[1;31m✗ ${file_pretty%.*}\033[0;39m" 30 | rm "$file" 31 | done 32 | 33 | fi 34 | 35 | echo "" 36 | echo "Patch-Modus betreten. Verändere jetzt keine Dateien mehr an GermanDactyl selbst, verändere nur noch Übersetzungen." 37 | echo "Ab jetzt werden alle Veränderungen zum Patch hinzugefügt. Gib ./scripts/createPatch.sh ein, sobald du fertig bist" 38 | -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: GermanDactyl Dokumentation 2 | copyright: Copyright © 2023 Paul Schwarz 3 | 4 | repo_name: GermanDactyl 5 | repo_url: https://github.com/pavl21/GermanDactyl 6 | edit_uri: https://github.com/pavl21/GermanDactyl/main/docs 7 | 8 | theme: 9 | name: material 10 | language: de 11 | logo: assets/images/logo.png 12 | features: 13 | - toc.integrate 14 | - content.code.annotate 15 | favicon: assets/images/logo.png 16 | palette: 17 | - media: "(prefers-color-scheme: light)" 18 | schema: default 19 | primary: indigo 20 | toggle: 21 | icon: material/brightness-7 22 | name: Zum dunklen Modus wechseln 23 | - media: "(prefers-color-scheme: dark)" 24 | scheme: slate 25 | primary: indigo 26 | toggle: 27 | icon: material/brightness-4 28 | name: Zum hellen Modus wechseln 29 | 30 | extra: 31 | generator: true 32 | social: 33 | - icon: fontawesome/brands/tiktok 34 | link: https://www.tiktok.com/@paul_schwarz_ 35 | - icon: fontawesome/brands/twitter 36 | link: https://twitter.com/Paul_Schwarz_ 37 | - icon: fontawesome/brands/discord 38 | link: https://discord.com/users/289810872396808193 39 | - icon: fontawesome/solid/globe 40 | link: https://sierra-dev.de/ 41 | 42 | markdown_extensions: 43 | - attr_list 44 | - md_in_html 45 | - admonition 46 | - pymdownx.details 47 | - pymdownx.superfences 48 | - pymdownx.tabbed: 49 | alternate_style: true 50 | - pymdownx.emoji: 51 | emoji_index: !!python/name:materialx.emoji.twemoji 52 | emoji_generator: !!python/name:materialx.emoji.to_svg 53 | 54 | nav: 55 | - Start: index.md 56 | - Installation: installation.md 57 | - GermanDactyl Setup: guides/setup.md 58 | - Addons: 59 | - Bald: 404.md 60 | - Guides: 61 | - Update ausführen: guides/update.md 62 | - Übersetzungen einreichen: guides/contribute.md 63 | - Fehlerbehebung: troubleshooting.md 64 | - FAQ: faq.md 65 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Contributors][contributors-shield]][contributors-url] 2 | [![Forks][forks-shield]][forks-url] 3 | [![Stargazers][stars-shield]][stars-url] 4 | [![Issues][issues-shield]][issues-url] 5 | [![MIT License][license-shield]][license-url] 6 | 7 |

8 | 9 | Logo 10 | 11 |

12 |

GermanDactyl

13 | 14 | ## Was ist GermanDactyl? 15 | 16 | GermanDactyl ist die deutsche Übersetzung des [Pterodactyl-Interfaces](https://pterodactyl.io/). 17 | 18 | ## Wie installiere ich das? 19 | Ganz einfach: `curl -sSL https://install.germandactyl.de/ | sudo bash -s --` 20 | Schau dir [die Documentation](https://germandactyl.de/installation/) für weitere Informationen an 21 | 22 | 23 | ## Discord 24 | Wenn du uns dabei helfen möchtest, etwas zu übersetzen oder zu umschreiben, dann komm gerne [in unseren Discord](https://discord.gg/6R38NnTCct). 25 | 26 | 27 | ## Lizenz 28 | 29 | Verbreitet unter der MIT-Lizenz. Siehe `LICENSE` für weitere Informationen. 30 | 31 | [contributors-shield]: https://img.shields.io/github/contributors/pavl21/GermanDactyl.svg?style=for-the-badge 32 | 33 | [contributors-url]: https://github.com/pavl21/GermanDactyl/graphs/contributors 34 | 35 | [forks-shield]: https://img.shields.io/github/forks/pavl21/GermanDactyl.svg?style=for-the-badge 36 | 37 | [forks-url]: https://github.com/pavl21/GermanDactyl/network/members 38 | 39 | [stars-shield]: https://img.shields.io/github/stars/pavl21/GermanDactyl.svg?style=for-the-badge 40 | 41 | [stars-url]: https://github.com/pavl21/GermanDactyl/stargazers 42 | 43 | [issues-shield]: https://img.shields.io/github/issues/pavl21/GermanDactyl.svg?style=for-the-badge 44 | 45 | [issues-url]: https://github.com/pavl21/GermanDactyl/issues 46 | 47 | [license-shield]: https://img.shields.io/github/license/pavl21/GermanDactyl.svg?style=for-the-badge 48 | 49 | [license-url]: https://github.com/pavl21/GermanDactyl/blob/master/LICENSE 50 | -------------------------------------------------------------------------------- /docs/troubleshooting.md: -------------------------------------------------------------------------------- 1 | Hier findest du alle Lösungen, die wir kennen. Wenn bei dir ein unbekannter Fehler auftritt, kannst du ein ein [Issue](https://github.com/pavl21/GermanDactyl/issues) eröffnen, damit wir weiterhelfen können. 2 | 3 | ??? error "In diesem Ordner wurde keine pterodactyl-Instanz gefunden. Bitte verwende einen anderen Pfad." 4 | Dieser Fehler tritt meistens auf, wenn pterodactyl unter einem anderen Ordner als `/var/www/pterodactyl` installiert 5 | wurde. Ist das der Fall, füge ein `-d /dein/installations/ort` hinter den Befehl hinzu. Weiteres dazu 6 | [in der Installationsanleitung](/installation/). 7 | Ist der Ordner richtig angegeben und der Fehler erscheint trotzdem, vergewissere dich, dass die Zugriffsrechte 8 | korrekt eingestellt sind und der Nutzer die Datei `/config/app.php` lesen kann. 9 | 10 | ??? error "Bitte führe diesen Befehl als Superuser aus." 11 | Hast du das `sudo` vergessen? Dieser Fehler tritt nur auf, wenn der Befehl nicht als Superuser (`root`) ausgeführt 12 | wird. Überprüfe also, ob du auch wirklich als `root` angemeldet bist oder ob im One-Click-Installer das `sudo` 13 | angegeben wurde. 14 | 15 | ??? error "_xy_ konnte nicht gepatcht werden. Hat ein Addon diese Datei überschrieben?" 16 | Dieser Fehler könnte aufgrund folgenden Problemen auftreten: 17 | 1. Die angegebene Datei wurde bereits von GermanDactyl gepatcht und kann daher nicht überschrieben werden. 18 | 2. Du hast ein Addon / Theme installiert, welches Pterodactyl so anpasst, dass der Patch nicht weiß, wohin er sich 19 | anwenden kann. 20 | Das ist nicht immer schlimm. Passiert das bei 2 - 3 Dateien lassen sich diese immer noch manuell bearbeiten oder 21 | gar ignorieren. Solltest du allerdings den Patch noch nicht angewendet haben und trotzdem viele dieser Fehler 22 | erhalten, überprüfe, ob ein Addon oder Theme den Patch blockiert oder du die richtige Version von GermanDactyl 23 | ausgewählt hast. 24 | 25 | ??? error "Das Panel ist nach dem Upgrade/Installation nur noch weiß" 26 | Das Problem hängt meist mit dem Theme zusammen, was du davor genutzt hast. Einige Themes oder Addons erstellen neue Dateien, 27 | die normalerweise nicht in Pterodactyl dabei sind. Die beste Lösung wäre, das du im Verzeichnis `/var/www/pterodactyl` 28 | den Ordner `ressources` komplett löschst, sichere dir aber am besten vorher die Version als Backup, solltest du noch eigene 29 | Änderungen gemacht haben. Führe dann das Upgrade, [wie hier beschrieben](https://germandactyl.de/guides/update/), erneut durch. 30 | -------------------------------------------------------------------------------- /docs/guides/update.md: -------------------------------------------------------------------------------- 1 | Pterodactyl hat ein neues Update bekommen? Folge diesem Guide und die Installation wird kein Problem. 2 | 3 | !!! danger "Gibt es schon ein GermanDactyl-Update?" 4 | Nur weil ein Pterodactyl-Update vorliegt, heißt das nicht, dass automatisch auch GermanDactyl schon aktualisiert 5 | wurde. Vergewissere dich vorher [hier](https://github.com/pavl21/GermanDactyl/tree/main/patches), ob GermanDactyl 6 | schon für die neue Pterodactyl-Version verfügbar ist. Falls nicht, habe noch etwas Geduld. 7 | 8 | ## Installation des Panels 9 | 10 | Zuerst muss das Panel auf die neuste Version gebracht werden. Eine detaillierte Zusammenfassung findest 11 | du [hier](https://pterodactyl.io/panel/updating.html). Hier nochmal eine kurze Zusammenfassung: 12 | 13 | 1. Schalte den Wartungsmodus ein 14 | ```shell 15 | cd /var/www/pterodactyl #(1) 16 | php artisan down 17 | ``` 18 | 1. Hier wurde als Beispiel `/var/www/pterodactyl` verwendet. Solltest du pterodactyl unter einem anderen Pfad 19 | installiert haben, ändere dies ab. 20 | 21 | 2. Lade das Update herunter 22 | ```shell 23 | curl -L https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz | tar -xzv 24 | ``` 25 | ```shell 26 | chmod -R 755 storage/* bootstrap/cache 27 | ``` 28 | 29 | 3. Installiere alle Dependency- und Datenbankupdates 30 | ```shell 31 | composer install --no-dev --optimize-autoloader 32 | ``` 33 | ```shell 34 | php artisan migrate --seed --force 35 | ``` 36 | 37 | 4. Löschen des Zwischenspeichers für kompilierte Vorlagen 38 | ```shell 39 | php artisan view:clear 40 | ``` 41 | ```shell 42 | php artisan config:clear 43 | ``` 44 | 45 | 5. Setze die Berechtigungen 46 | ```shell 47 | chown -R www-data:www-data /var/www/pterodactyl/* #NGINX oder Apache (nicht auf CentOS) 48 | chown -R nginx:nginx /var/www/pterodactyl/* #NGINX auf CentOS 49 | chown -R apache:apache /var/www/pterodactyl/* #Apache auf CentOS 50 | ``` 51 | 52 | 6. Neustart von Queue Workern 53 | ```shell 54 | php artisan queue:restart 55 | ``` 56 | 57 | 7. Wartungsmodus beenden 58 | ```shell 59 | php artisan up 60 | ``` 61 | 62 | ## Installation von GermanDactyl 63 | 64 | Jetzt wo Pterodactyl installiert ist können wir erneut die Patches anwenden, sodass das Panel wieder auf Deutsch 65 | eingestellt wird. 66 | 67 | ??? warning "Hast du Probleme mit diesem Befehl?" 68 | Für den Fall, dass du Pterodactyl unter einem anderen Pfad installiert hast als `/var/www/pterodactyl` oder das 69 | Skript einfach nicht bei dir funktioniert, lohnt es sich, die 70 | [Installationsanleitung](/installation/) mal anzusehen. 71 | 72 | ```shell 73 | curl -sSL https://install.germandactyl.de/ | sudo bash -s -- 74 | ``` 75 | 76 | ## Installation deiner Add-ons 77 | 78 | Jetzt kommt der Moment wo du alle Add-ons installieren kannst. Folge dafür der Anleitung des jeweiligen Add-ons. 79 | 80 | ## Fertig 81 | 82 | Sowohl Pterodactyl als auch GermanDactyl wurden nun aktualisiert und können erneut verwendet werden. Sollten nun 83 | weitere Probleme auftreten, schau dir den [Guide zur Fehlerbehebung](/troubleshooting/) an. 84 | -------------------------------------------------------------------------------- /docs/installation.md: -------------------------------------------------------------------------------- 1 | !!! warning "Möglicherweise nicht mit allen Add-ons kompatibel" 2 | GermanDactyl verwendet Patches, um das Interface zu übersetzen. 3 | Solltest du vorher schon Plugins oder Themes installiert haben, welche das Interface bearbeiten, ist es möglich, 4 | dass einige Dateien nicht vom Patch bearbeitet werden können. 5 | 6 | ## Der einfache Weg 7 | 8 | Füge einfach den folgenden Befehl in die Konsole deines Servers ein. GermanDactyl wird sich automatisch installieren. 9 | 10 | === ":material-flash: Normale Installation" 11 | ```shell 12 | curl -sSL https://install.germandactyl.de/ | sudo bash -s -- 13 | ``` 14 | 15 | === ":material-folder: Ordner auswählen" 16 | ```shell 17 | curl -sSL https://install.germandactyl.de/ | sudo bash -s -- -d /dein/pterodactyl/pfad 18 | ``` 19 | 20 | === ":material-update: Version auswählen" 21 | ```shell 22 | curl -sSL https://install.germandactyl.de/ | sudo bash -s -- -v 1.11.3 23 | ``` 24 | !!! warning "Nicht empfohlen" 25 | Das Anpassen der Version wird nicht empfohlen. Dies sollte nur eingesetzt werden, wenn die von Pterodactyl 26 | gemeldete Version nicht der Wahrheit entspricht. 27 | 28 | ## Patches manuell anwenden 29 | 30 | Sollte die automatische Installation bei dir nicht funktionieren (z. B. weil deine Linux-Version nicht vom Skript 31 | unterstützt ist), kannst du auf die manuelle Variante zurückgreifen. 32 | Folge dafür folgenden Schritten: 33 | 34 | 1. Lade zuerst den Patch passend zu deiner Version herunter 35 | ```shell 36 | curl -sSL https://patch.germandactyl.de/1.11.2 -o /var/www/pterodactyl/germandactyl.patch #(1) 37 | ``` 38 | 1. Hier wird als Beispiel `/var/www/pterodactyl` verwendet. Passe diesen Ordner an deine Instanz an 39 | 40 | 2. Falls noch nicht getan, installiere NodeJS, git und yarn 41 | ```shell 42 | # Installiere NodeJS 43 | curl -sL https://deb.nodesource.com/setup_16.x | bash - 44 | apt -y install nodejs 45 | 46 | # Installiere Yarn 47 | npm install -g yarn 48 | 49 | # Installiere git 50 | apt -y install git 51 | ``` 52 | 53 | 3. Navigiere in deinen pterodactyl-Ordner und wende den Patch an 54 | ```shell 55 | # Navigiere in deinen Ordner (1) 56 | cd /var/www/pterodactyl 57 | 58 | # Wende den Patch an (2) 59 | git apply --ignore-whitespace --ignore-space-change -C1 --apply --reject germandactyl.patch 60 | ``` 61 | 1. Hier wird als Beispiel `/var/www/pterodactyl` verwendet. Passe diesen Ordner an deine Instanz an 62 | 2. Solltest du mit den Parametern nicht zufrieden sein, passe sie so an, dass sie für dich Sinn ergeben. 63 | Eine Hilfe dazu findest du unter `git apply --help` 64 | 65 | 4. Kompiliere das Interface 66 | ```shell 67 | # Installiere alle Dependencies (falls noch nicht getan) 68 | yarn install 69 | 70 | # Erstelle einen Produktions-Build für das Interface 71 | yarn run build:production 72 | 73 | # Leere den Views-Cache und optimiere das Projekt 74 | php artisan view:clear 75 | php artisan optimize 76 | ``` 77 | 78 | Das wars. Nun hast du eine deutsche Version für dein Pterodactyl-Panel :) 79 | -------------------------------------------------------------------------------- /docs/guides/setup.md: -------------------------------------------------------------------------------- 1 | 2 | # GermanDactyl Setup - (Beta) 3 | 4 | Wir möchten mehr als eine Übersetzung bieten, und haben uns die Mühe gemacht den Kern einfacher zu gestalten: Die Installation und Verwaltung von Pterodactyl. 5 | Mithilfe dieses Scriptes kannst du kinderleicht ein Pterodactyl Panel aufsetzen, du benötigst dazu nur einen Linux Server und eine eigene Domain. 6 | 7 | !!! info "Voraussetzungen" 8 | - Debian oder Ubuntu 9 | - Genügend Speicherplatz (ca. 1GB für das Panel und Wings) 10 | - Ein frisch aufgesetztes System, wo Port 80 nicht verwendet wird. 11 | 12 | ## Installation 13 | 14 | !!! warning "Beta-Phase" 15 | Das Script befindet sich in der Beta-Phase! Es können noch unerwartet Probleme auftreten, die Verwendung unterliegt deiner Verantwortung. 16 | Sollte das Script bei dir nicht starten, dann eröffne bitte ein [Issue bei uns](https://github.com/pavl21/GermanDactyl/issues). 17 | 18 | Mit diesem Befehl kannst du das Script starten: 19 | ``` 20 | sudo bash -c "$(curl -sSL https://setup.germandactyl.de/)" 21 | ``` 22 | 23 | 24 | ## Die Funktionen 25 | 26 | ### Panel-Installation mit simplen Angaben 27 | ![Bild](https://i.imgur.com/7163oVV.png) 28 | 29 | Das erste, was man tun kann, ist die Installation des Panel und Wings. Mit nur einigen Angaben, wie die Domain oder E-Mail Adresse für die SSL-Zertifikate von Let's Encrypt, kann man über eine grafische Übersicht in einer SSH-Sitzung die Installation durchführen. 30 | 31 | ### Automatische Account-Erstellung 32 | ![Bild](https://i.imgur.com/lkv65jd.png) 33 | 34 | Der Account wird bei der Installation automatisch angelegt, damit du das nicht tun musst. Du bekommst am Ende eigene zufällig generierte Zugangsdaten. 35 | 36 | ### Wings ganz leicht integrieren 37 | ![Bild](https://i.imgur.com/Ca6BrLS.png) 38 | 39 | Sobald das Pterodactyl Panel steht, kann mit der Installation von Wings fortgefahren werden. Das kannst du direkt nach danach machen und benötigst nur 2 Angaben (Domain und E-Mail). Zudem wird auch erklärt, wie du Wings als Node im Panel erstellst. Und damit keine Fehler auftreten, prüft das Script mit einigen Tests ob du alles richtig gemacht hast. Wenn nicht, wird dir eine Problemlösung gegeben (nicht bei jedem Fall). 40 | 41 | ### Allgemeine Verwaltung von Pterodactyl 42 | ![Bild](https://i.imgur.com/uYh4sg4.png) 43 | 44 | Nach dem Aufsetzen einiger Server in Pterodactyl oder dem Betrieb im allgemeinen fragt man sich schon, wie man sich die Verwaltung und Wartung leicht machen kann. Dafür haben wir die Pterodactyl Verwaltung/Wartung. Dort kannst du mit Tools einige allgemeine Probleme selbst lösen oder Software bzw. Themes auf Wunsch integrieren. 45 | 46 |
47 | 48 | !!! info "Info bei fehlerhaften Angaben" 49 | Es kann sein, das Angaben fehlen. Diesem Fehler gehen wir gerne nach und korrigieren es, sofern wir davon erfahren. 50 | 51 | # Verweise auf Teile des Scripts 52 | 53 | Einige Teile des Scripts stammen von anderen Entwicklern, hier wird dann der Entwickler erwähnt. Hierzu gehören auch die, die im Hintergrund verwendet werden. 54 | 55 | ## Color-Themes 56 | Die Farbthemen bei den Themes stammen von dem Entwickler [SigmaProduction](https://github.com/Sigma-Production/PteroFreeStuffinstaller) 57 | 58 | ## Let's Encrypt 59 | Damit die SSL Zertifikate zur Verfügung gestellt werden können, wird Certbot verwendet. [Mehr als 100 Sponsoren](https://letsencrypt.org/de/sponsors/), darunter auch Google und Amazon, ermöglichen es, das SSL Zertifikate kostenlos zur Verfügung gestellt werden können. Hierbei gilt zu beachten, das die bereitgestellten Zertifikate 90 Tage gelten, danach müssen sie erneuert werden. Das kannst du aber in der Problembehandlung ganz einfach erneuern lassen. 60 | -------------------------------------------------------------------------------- /scripts/install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Colors 4 | RED='\033[1;31m' 5 | NORMAL='\033[0;39m' 6 | GREEN='\033[0;32m' 7 | YELLOW='\033[1;33m' 8 | BLUE='\033[1;34m' 9 | 10 | # Environment 11 | DEFAULT_PATH=/var/www/pterodactyl 12 | PATCH_SERVER=https://patch.germandactyl.de 13 | FORCE_VERSION=none 14 | USER_PATH=none 15 | 16 | # Load user variables 17 | while getopts "d:v:" o > /dev/null 2>&1; do 18 | # shellcheck disable=SC2220 19 | case "${o}" in 20 | d) USER_PATH=${OPTARG} ;; 21 | v) FORCE_VERSION=${OPTARG} ;; 22 | esac 23 | done 24 | 25 | function send_success() { 26 | echo -e "$GREEN✓ $1$NORMAL" 27 | } 28 | 29 | function send_info() { 30 | echo -e "$BLUEℹ $1$NORMAL" 31 | } 32 | 33 | function send_warn() { 34 | echo -e "$YELLOW⚠ $1$NORMAL" 35 | } 36 | 37 | function send_error() { 38 | echo -e "$RED✗ $1$NORMAL" 39 | exit 40 | } 41 | 42 | function verify_pterodactyl_path() { 43 | VERSION=$(cat "$1/config/app.php" 2> /dev/null | grep "'version' =>" | cut -d\' -f4) 44 | PTERODACTYL_PATH=$1 45 | 46 | if [ "$VERSION" ]; then 47 | send_success "Es wurde eine Pterodactyl-Instanz mit der Version$BLUE v$VERSION$GREEN unter $BLUE$1$GREEN gefunden." 48 | else 49 | send_error "In diesem Ordner wurde keine Pterodactyl-Instanz gefunden. Bitte verwende einen anderen Pfad." 50 | fi 51 | } 52 | 53 | function load_pterodactyl_path() { 54 | if [ "$USER_PATH" == "none" ]; then 55 | send_warn "Es wurde kein Instanzort angegeben. Deine Pterodactyl-Instanz wird im default-Ordner gesucht." 56 | verify_pterodactyl_path $DEFAULT_PATH 57 | else 58 | if [ ! -d "$USER_PATH" ]; then 59 | send_error "Der von dir angegebene Ordner existiert nicht oder GermanDactyl hat darauf keinen Zugriff." 60 | fi 61 | 62 | verify_pterodactyl_path "$USER_PATH" 63 | fi 64 | } 65 | 66 | function search_patch() { 67 | if [ "$FORCE_VERSION" != "none" ]; then 68 | VERSION=$FORCE_VERSION 69 | fi 70 | 71 | PATCH="$PATCH_SERVER/$VERSION" 72 | 73 | STATUS=$(curl -s -I -L "$PATCH" | grep "HTTP/2" | tail -n 1 | tail -1 | cut -d$' ' -f2) 74 | 75 | if [ "$STATUS" == "404" ]; then 76 | send_error "Leider gibt es aktuell noch keinen Patch für diese Version ($BLUE v$VERSION$RED ). Wenn du eine andere Version erzwingen möchtest, füge $BLUE-v Version$RED hinzu. Dieser Schritt ist nicht empfohlen." 77 | fi 78 | 79 | send_success "Es wurde ein Patch mit der Version $BLUE$VERSION$GREEN gefunden. Der Patch wird in 10 Sekunden installiert..." 80 | send_info "Drücke Strg + C um den Vorgang abzubrechen." 81 | sleep 10 82 | } 83 | 84 | function install_deps() { 85 | 86 | if ! command -v "npm" &> /dev/null; then 87 | send_info "NPM konnte nicht gefunden werden. Node.JS wird installiert." 88 | curl -sL https://deb.nodesource.com/setup_16.x | bash - &> /dev/null 89 | apt -y install nodejs &> /dev/null 90 | send_success "Node.JS wurde installiert." 91 | fi 92 | 93 | if ! command -v "npm" &> /dev/null; then 94 | apt -y install npm &> /dev/null 95 | fi 96 | 97 | if ! command -v "yarn" &> /dev/null; then 98 | send_info "Yarn wurde nicht gefunden. Es wird nun installiert." 99 | npm install -g yarn &> /dev/null 100 | send_success "Yarn wurde installiert." 101 | fi 102 | 103 | if ! command -v "git" &> /dev/null; then 104 | send_info "Git wurde nicht gefunden. Es wird nun installiert." 105 | apt -y install git &> /dev/null 106 | send_success "Git wurde installiert." 107 | fi 108 | 109 | } 110 | 111 | function apply_patch() { 112 | send_info "Der Patch wird nun angewendet." 113 | curl -s -L "$PATCH" -o germandactyl.patch &> /dev/null 114 | git apply --ignore-whitespace --ignore-space-change -C1 --apply --reject germandactyl.patch &> /dev/null 115 | } 116 | 117 | function show_rejected() { 118 | find . \( -name "*.rej" -o -name "*.orig" \) | while read -r file; do 119 | file_pretty=$(echo "$file" | cut -c 3-) 120 | echo -e "$RED✗ ${file_pretty%.*} konnte nicht gepatcht werden. Hat ein Addon diese Datei überschrieben?$NORMAL" 121 | rm "$file" 122 | done 123 | } 124 | 125 | function compile_panel() { 126 | send_info "Das Panel wird nun erneut kompiliert. Das dauert einen Moment." 127 | yarn install &> "$PTERODACTYL_PATH/germandactyl.debug.log" 128 | yarn run build:production &> "$PTERODACTYL_PATH/germandactyl.debug.log" 129 | NODE_OPTIONS=--openssl-legacy-provider yarn run build:production &> "$PTERODACTYL_PATH/germandactyl.debug.log" 130 | php artisan view:clear &> "$PTERODACTYL_PATH/germandactyl.debug.log" 131 | php artisan optimize &> "$PTERODACTYL_PATH/germandactyl.debug.log" 132 | } 133 | 134 | if [ $EUID -ne 0 ]; then 135 | send_error "Du hast mit diesem Account nicht genügend Rechte, um die Installation zu starten. Melde dich mit einem Superuser-Account an, um fortzufahren." 136 | fi 137 | 138 | load_pterodactyl_path 139 | search_patch 140 | install_deps 141 | cd "$PTERODACTYL_PATH" || send_error "GermanDactyl konnte den Ordner der Instanz nicht betreten" 142 | apply_patch 143 | show_rejected 144 | compile_panel 145 | 146 | send_success "Der Patch wurde angewendet. Viel Spaß! :)" 147 | --------------------------------------------------------------------------------