├── 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 |
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 | 
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 | 
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 | 
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 | 
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 |
--------------------------------------------------------------------------------