From 187c861043eecce016ecba02aac3441843db5a53 Mon Sep 17 00:00:00 2001 From: miliena Date: Thu, 4 Jul 2024 21:19:28 +0200 Subject: [PATCH] [c] added a few paragraphs --- docs/panel/README.md | 97 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 91 insertions(+), 6 deletions(-) diff --git a/docs/panel/README.md b/docs/panel/README.md index 1826e00..acaf518 100644 --- a/docs/panel/README.md +++ b/docs/panel/README.md @@ -2,16 +2,101 @@ ## Inhaltsverzeichnis -- [Inhaltsverzeichnis](#inhaltsverzeichnis) -- [Setup LXC Container](#setup-lxc-container) -- [Docker Image erstellen](#docker-image-erstellen) -- [Deployment vom Panel](#deployment-vom-panel) - - [2FA](#2fa) +- [Realisieren: Panel](#realisieren-panel) + - [Inhaltsverzeichnis](#inhaltsverzeichnis) + - [Setup LXC Container](#setup-lxc-container) + - [Docker Image und Compose vorbereiten](#docker-image-und-compose-vorbereiten) + - [Deployment vom Panel](#deployment-vom-panel) + - [2FA](#2fa) ## Setup LXC Container -## Docker Image erstellen +## Docker Image und Compose vorbereiten + +Auf [Docker Hub](https://hub.docker.com/) gibt es kein offizielles Docker Image vom Panel für Pterodactyl. Das [Github Repo](https://github.com/pterodactyl/panel) beinhaltet jedoch ein [Docker Image](https://github.com/pterodactyl/panel/pkgs/container/panel/213438609?tag=latest), welches auch direkt mit einer Beispiel Compose kommt. + +Das Deployment wird mit Docker Compose gemacht. Das [Github Repo](https://github.com/pterodactyl/panel) hat bereits eine sehr gute Beispielkonfiguration. Diese haben wir etwas angepasst, da noch gewisse Credentials benötigt werden. Wir haben der Datenbank ein zufälliges Root-Passwort gegeben, da wir nur das User-Passwort verwenden müssen. + +Dem Panel haben wir noch die richtige HTTP-Adresse angegeben. HTTPS werden wir anschliessend mit dem Reverse Proxy umsetzen. Auch haben wir die korrekte Zeitzone und Email-Adresse gegeben. Zusätzlich haben wir noch Backups nach Wings aktiviert, diese müssen aber noch weiter konfiguriert werden und sind nicht Teil dieser Projektarbeit. Der letzte Punkt deaktiviert noch die Datensammlung von Pterodactyl, die zur Weiterentwicklung der Applikation dient. + +Der Mailservice wird benötigt damit die "Forgot Password"-Funktion funktioniert. Unter der Adresse "no-reply@lunivity.com" wird dann ein Link verschickt um das Passwort zurückzusetzen. Dafür muss man natürlich auch noch Angaben wie Protokoll, Host und Port auf dem zu benutzenden Mailserver machen. + +```yaml +x-common: + database: + &db-environment + # Do not remove the "&db-password" from the end of the line below, it is important + # for Panel functionality. + MYSQL_PASSWORD: &db-password "" + MARIADB_RANDOM_ROOT_PASSWORD: 1 + panel: + &panel-environment + APP_URL: "http://nugget.sangelo.space" + APP_TIMEZONE: "Europe/Zurich" + APP_SERVICE_AUTHOR: "no-reply@lunivity.com" + APP_BACKUP_DRIVER: wings + PTERODACTYL_TELEMETRY_ENABLED: false + mail: + &mail-environment + MAIL_FROM: "no-reply@lunivity.com" + MAIL_DRIVER: "smtp" + MAIL_HOST: "mail.lunivity.com" + MAIL_PORT: "587" + MAIL_USERNAME: "no-reply@lunivity.com" + MAIL_PASSWORD: "" + MAIL_ENCRYPTION: "true" +``` ## Deployment vom Panel +Mit Docker Compose ist das grundlegende Deployment sehr simpel. Danach muss man aber noch einige Konfigurationen vornehmen. Die wichtigste ist die Erstellung des ersten Benutzers: + +```bash +[miliena@panel ~]$ docker exec -it 381baf0abc0b sh +/app # php artisan p:user:make + + Is this user an administrator? (yes/no) [no]: + > yes + + Email Address: + > test@example.com + + Username: + > admin + + First Name: + > First + + Last Name: + > Last + +Passwords must be at least 8 characters in length and contain at least one capital letter and number. +If you would like to create an account with a random password emailed to the user, re-run this command (CTRL+C) and pass the `--no-password` flag. + + Password: + > + ++----------+--------------------------------------+ +| Field | Value | ++----------+--------------------------------------+ +| UUID | 360f93fc-0370-4ef4-b0f0-a818f471c6f2 | +| Email | test@example.com | +| Username | admin | +| Name | First Last | +| Admin | Yes | ++----------+--------------------------------------+ +``` + +Die erste Benutzereinrichtung wird über die Commandline im Container vorgenommen. Danach können Benutzer einfach über das Webinterface eingerichtet werden. + + + ### 2FA + +Sobald das Panel live ist, kann man mit einem Administratorenkonto unter "Admin Control" am folgenden Ort 2FA aktivieren. + + +> [!CAUTION] +> Dies erzwingt 2FA sofort auch für den angemeldeten Accounts + +![basic administration -> settings -> general -> "Require 2-Factor Authentication" to "All Users"](../../assets/panel/enable-2fa.png) \ No newline at end of file