diff --git a/src/components/app.jsx b/src/components/app.jsx index 33225e8..7fb3d34 100644 --- a/src/components/app.jsx +++ b/src/components/app.jsx @@ -8,6 +8,7 @@ import HomePage from "./home"; import AboutPage from "./about"; import GoalsPage from "./goals"; import ContactPage from "./contact"; +import ServerPage from "./projects/server"; // Deine Komponenten für die verschiedenen Seiten function Home() { @@ -44,7 +45,7 @@ function LanguageStudy() { } function Server() { - return

Server

; + return ; } function App() { diff --git a/src/components/projects/server.jsx b/src/components/projects/server.jsx index 1f935ae..5635f2a 100644 --- a/src/components/projects/server.jsx +++ b/src/components/projects/server.jsx @@ -1,9 +1,129 @@ -import React, { Component } from 'react'; +import React, { Component } from "react"; function ServerPage() { - return ( -

Struktur dieses Servers

- ); + return ( +
+

Struktur dieses Servers

+ Test + +
+

Welche Kernaufgaben erfüllt dieser Server?

+
    +
  • Die Bereitstellung dieser Website
  • +
  • Die Bereitstellung des JupyterHub-Servers
  • +
  • + Die Entgegennahme des GitHub-Webhooks, um die React-Applikation + automatisch
    + via Python (Flask) zu aktualisieren. +
  • +
+
+ +
+

Wichtige Kerntechnologien

+
    +
  • + Docker und Docker-Compose: Um den gesamten Server so modular + wie möglich für Erweiterungen oder Veränderungen zu gestalten, habe + ich mich entschieden, jeden Prozess in einem eigenen Container zu + kapseln. Dies trägt auch dazu bei, dass die Daten nicht mehr über + den gesamten Server verteilt sind, wodurch die Fehlersuche + erleichtert wird. +
  • +
  • + React: Erstellt die Website, sodass sie von Nginx geladen + werden kann. +
  • +
  • + Nginx: Wird hier sowohl als Reverse Proxy verwendet, um + JupyterHub und die Flask-App ansprechbar zu machen, als auch als + Webserver für die React-App. Nginx übernimmt in diesem Fall die + gesamte Kommunikation mit dem Client bzw. dem GitHub-Webhook. +
  • +
  • + JupyterHub: Diesen nutze ich für die Verwaltung der Benutzer + und ihrer JupyterLab-Umgebungen. +
  • +
  • + Flask: Wird verwendet, um den GitHub-Webhook zu verifizieren + und anschließend die React-App sowie den zugehörigen + Docker-Container neu zu starten. Dies bietet mir die Flexibilität, + meine gesamte Homepage mit nur wenigen Klicks oder Befehlen zu + aktualisieren, ohne dass ich mich auf dem Server einloggen muss. +
  • +
+
+ +
+

Diese Website

+

+ Diese Website ist eine einfache React-Applikation, die unter + [www.]simonaltschaeffl.de erreichbar ist. Um darauf zuzugreifen, wird + eine einfache Anfrage an Nginx gesendet, welcher die Seite aus dem + HTML innerhalb seines Containers abruft und an den Client sendet. +

+ +

JupyterHub & JupyterLab

+

+ Hierauf gelangt man über die Subdomain jupyter.simonaltschaeffl.de. Um + dorthin geroutet zu werden, wird Nginx als Reverse Proxy verwendet. + Sobald man sich eingeloggt hat, wird ein JupyterLab-Container mit + Data-Science-Tools und Libraries wie Pandas, TensorFlow, NumPy etc. + erstellt, welche ich für Experimente mit Machine Learning bzw. + künstlicher Intelligenz oder Titanic Competitions von Kaggle verwende. +

+
+ +
+

Mein Fazit

+
    +
  • + Umfangreiches Lernen: Das Projekt bot eine großartige Möglichkeit, neue Technologien wie + Docker und React von Grund auf zu lernen. +
  • +
  • + Lernkurve war es wert: Auch wenn das Verständnis der neuen Technologien Zeit brauchte, war + der Erkenntnisgewinn immens. +
  • +
  • + Produktionsvorteile von Docker: Das Projekt hat das Verständnis für die Bedeutung von Docker in + Produktionsumgebungen deutlich gemacht und wird die + Serverkonfiguration zukünftiger Projekte erleichtern. +
  • +
  • + Effizienz von JavaScript-Bibliotheken (React): Die Einfachheit und Geschwindigkeit, mit der komplexe Webseiten mit + React erstellt werden können, hat positiv überrascht und wird in + Zukunft häufiger eingesetzt werden. +
  • +
+
+ +
+

Rolle von LLMs in der Konfiguration

+

+ Ich habe Chatbots in verschiedenen Bereichen eingesetzt, vor allem im + Bereich Debugging und Rechtschreibung. Viele Fehler, vor allem bei + Dockerfiles oder Docker-Compose-Dateien, konnten durch den Einsatz von + Chatbots effizient behoben werden. +

+
+ +
+

Ideen für die Zukunft des Servers

+
    +
  • + Die Trennung von React und dem Nginx-Hauptcontainer mithilfe eines + eigenen Nginx-Servers und Reverse Proxys +
  • +
  • Erweiterung mit neuen/eigenen Services
  • +
+
+
+ ); } export default ServerPage; diff --git a/src/styles/styles.css b/src/styles/styles.css index 0ccf620..fe6c1a2 100644 --- a/src/styles/styles.css +++ b/src/styles/styles.css @@ -62,5 +62,10 @@ section { .centered-list { display: inline-block; - text-align: left; /* Text innerhalb der Liste links ausrichten */ + text-align: left; +} + +.center-image { + display: block; + margin: auto auto; } \ No newline at end of file