Personal Website, vers. 1 (pushed far to late)

This commit is contained in:
Harlekin committed 2026-10-25 16:02:12 +01:00
commit c8df66d3da
103 files changed
+8977

No files matched your search

+61
View File
@@ -0,0 +1,61 @@
kicker:
de: Informatik · Server-Administration · Homelab
en: Computer science · Server administration · Homelab
lead:
de: Ich studiere Informatik und helfe bei der Administration eines Roleplay-Servers. Zu Hause betreibe ich ein Homelab und schreibe kleine Skripte für alles, was ich nicht ständig von Hand machen will.
en: I study computer science and help run the servers of a roleplay community. At home I keep a homelab going and write small scripts for anything I don't want to keep doing by hand.
# visual: server, homelab, scripts, study oder video (die Grafik in der Kachel)
# link: eine Seite (homelab, journey, contact) oder portfolio?tag=...
areas:
- visual: server
title:
de: RP-Server-Administration
en: Roleplay server admin
text:
de: Ich helfe dabei, einen Roleplay-Server zu betreiben. Dazu gehören Updates, Fehlersuche und Absprachen mit dem restlichen Team, wenn etwas nicht so läuft wie geplant.
en: I help run a roleplay server. That means updates, troubleshooting and working things out with the rest of the team when something doesn't behave.
link: portfolio?tag=server
- visual: homelab
title: Homelab
text:
de: Ein paar Rechner, Docker und ein Reverse Proxy. Hier probiere ich neue Dienste aus und mache meine Fehler dort, wo sie niemandem schaden.
en: A few machines, Docker and a reverse proxy. This is where I try out new services and make my mistakes where they don't hurt anyone.
link: homelab
- visual: scripts
title:
de: Skripte & Tools
en: Scripts & tools
text:
de: Kleine Helfer für wiederkehrende Aufgaben. Meistens unspektakulär, aber sie nehmen mir jede Woche ein bisschen Arbeit ab.
en: Small helpers for recurring chores. Mostly unspectacular, but they take a bit of work off my plate every week.
link: portfolio?tag=scripts
- visual: study
title:
de: Informatik-Studium
en: Computer science
text:
de: Theorie, Mathe und viel Programmierung. Einiges davon begegnet mir im Homelab wieder, nur mit echten Fehlermeldungen.
en: Theory, maths and a lot of programming. Some of it shows up again in my homelab, just with real error messages.
link: journey
- visual: video
title:
de: Videoschnitt
en: Video editing
text:
de: Nebenbei versuche ich mich am Videoschnitt. Ich lerne noch, aber an Timing und Ton zu feilen, bis ein Schnitt sitzt, macht mir Spaß.
en: On the side I'm learning video editing. I'm still at it, but tweaking timing and sound until a cut feels right is fun.
link: portfolio?tag=video
contact:
title:
de: Suchst du jemanden für die IT?
en: Looking for someone in IT?
text:
de: Ich suche eine Stelle in der IT, am liebsten in der Administration, im Support oder dort, wo sich etwas automatisieren lässt. Schreib mir, wenn das zu euch passt.
en: I'm looking for a job in IT, ideally in administration, support or anywhere things can be automated. Get in touch if that fits your team.
+44
View File
@@ -0,0 +1,44 @@
# Solange draft: true gesetzt ist, ist die Homelab-Seite nur lokal sichtbar
draft: true
hardware:
- name: Server
role:
de: Docker-Host
en: Docker host
specs:
- CPU
- RAM
- de: Speicher
en: Storage
services:
- group:
de: Infrastruktur
en: Infrastructure
items:
- name: Dockge
text:
de: Verwaltet die Docker-Compose-Stacks
en: Manages the Docker Compose stacks
- name: Nginx Proxy Manager
text:
de: Reverse Proxy und TLS-Zertifikate
en: Reverse proxy and TLS certificates
- group:
de: Entwicklung
en: Development
items:
- name: Git-Server
url: https://git.harlelux.de
text:
de: Meine Repositories, auch das dieser Seite
en: My repositories, including the one for this site
- group: Web
items:
- name: lux.harlelux.de
text:
de: Diese Seite
en: This site
+29
View File
@@ -0,0 +1,29 @@
# Neueste Einträge zuerst.
# from/to: Jahr (2024) oder Monat (2024-10). Für laufende Sachen ongoing: true statt to.
# type: edu, work oder project (bestimmt nur die Farbe des Punkts)
# draft: true blendet einen Eintrag online aus
entries:
- title:
de: Informatik-Studium
en: Computer science degree
type: edu
from: 2024
ongoing: true
draft: true
- title:
de: Administration eines Roleplay-Servers
en: Administration of a roleplay server
type: work
from: 2024
ongoing: true
draft: true
- title:
de: Eigenes Homelab
en: My own homelab
type: project
from: 2023
ongoing: true
draft: true
+8
View File
@@ -0,0 +1,8 @@
---
title: Homelab
lead: Was bei mir zu Hause läuft und wofür. Das meiste davon bräuchte ich nicht, aber ich lerne dabei mehr als aus jedem Tutorial.
---
## Was ich dabei gelernt habe
Hier kommt rein, was im Homelab schiefgegangen ist und was ich daraus mitgenommen habe. Konkrete Beispiele sind besser als allgemeine Aussagen, zum Beispiel ein Update, das etwas kaputt gemacht hat, und wie ich es wieder hinbekommen habe.
+8
View File
@@ -0,0 +1,8 @@
---
title: Homelab
lead: What runs at my place and what it's for. I wouldn't strictly need most of it, but I learn more from it than from any tutorial.
---
## What I learned along the way
This is where the things that went wrong in the homelab go, and what I took away from them. Concrete examples work better than general statements, for example an update that broke something and how I got it running again.
+10
View File
@@ -0,0 +1,10 @@
---
title: Werdegang
lead: Wer ich bin, was ich bisher gemacht habe und womit ich mich auskenne.
---
Ich bin Lux und studiere Informatik. Neben dem Studium helfe ich bei der Administration eines Roleplay-Servers und betreibe zu Hause ein Homelab, in dem ich neue Dienste ausprobiere, bevor ich ihnen vertraue.
Am meisten Spaß macht mir Arbeit, bei der am Ende etwas zuverlässig läuft. Ein Dienst läuft oder er läuft nicht, und wenn nicht, gibt es einen Grund, den man finden kann.
Ab und zu schneide ich Videos. Das ist eine andere Art von Basteln, bei der es ebenfalls um Details geht, die am Ende niemandem auffallen sollen.
+10
View File
@@ -0,0 +1,10 @@
---
title: Journey
lead: Who I am, what I've done so far and what I know my way around.
---
I'm Lux and I study computer science. Alongside my degree I help administer a roleplay server, and at home I run a homelab where I try out new services before I trust them.
I enjoy work most when something runs reliably at the end of it. A service either works or it doesn't, and if it doesn't, there's a reason you can track down.
Every now and then I edit videos. It's a different kind of tinkering, but it's also about details nobody should notice in the end.
+37
View File
@@ -0,0 +1,37 @@
---
title: Datenschutzerklärung
lead: Wer hier welche Daten verarbeitet und warum. Kurz gesagt so wenig wie möglich.
---
## Verantwortlich
Vorname Nachname<br>
Straße Hausnummer<br>
PLZ Ort<br>
E-Mail: name@example.org
## Beim Aufruf der Seite
Wenn du diese Seite aufrufst, verarbeitet der Server technisch notwendige Daten: deine IP-Adresse, Datum und Uhrzeit, die aufgerufene Adresse, den Browser-Typ (User-Agent) und den HTTP-Statuscode. Das ist nötig, um die Seite auszuliefern und den Betrieb abzusichern. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO. Die Protokolle werden nach [Anzahl] Tagen gelöscht.
## Cookies, Tracking und Drittanbieter
Diese Seite setzt keine Cookies und verwendet keine Tracking- oder Analyse-Werkzeuge. Schriftarten, Skripte und Bilder kommen von diesem Server, nicht von Drittanbietern. Einzige Ausnahme sind YouTube-Videos, siehe unten.
## Kontaktformular
Wenn du das Kontaktformular nutzt, werden Name, E-Mail-Adresse und Nachricht per E-Mail an mich weitergeleitet. Ich nutze die Angaben nur, um deine Anfrage zu beantworten. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO, wenn es um eine Bewerbung oder eine mögliche Zusammenarbeit geht, ansonsten Art. 6 Abs. 1 lit. f DSGVO. Auf dem Webserver selbst wird die Nachricht nicht gespeichert. Die E-Mail lösche ich, sobald sie nicht mehr gebraucht wird.
Für den Versand nutze ich den E-Mail-Dienst [Anbieter].
Zum Schutz vor Missbrauch zählt der Server, wie viele Nachrichten von einer IP-Adresse kommen. Dieser Zähler liegt nur im Arbeitsspeicher und wird nach einer Stunde verworfen.
## YouTube-Videos
Manche Projektseiten enthalten Videos von YouTube. Sie werden erst geladen, wenn du auf „Video laden“ klickst. Erst dann wird eine Verbindung zu YouTube (Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland) aufgebaut, dabei werden unter anderem deine IP-Adresse und gegebenenfalls Cookies übertragen. Eingebunden wird der erweiterte Datenschutzmodus über youtube-nocookie.com. Rechtsgrundlage ist deine Einwilligung durch den Klick (Art. 6 Abs. 1 lit. a DSGVO). Details stehen in der [Datenschutzerklärung von Google](https://policies.google.com/privacy).
## Deine Rechte
Du hast das Recht auf Auskunft (Art. 15 DSGVO), Berichtigung (Art. 16), Löschung (Art. 17), Einschränkung der Verarbeitung (Art. 18), Datenübertragbarkeit (Art. 20) und Widerspruch (Art. 21). Außerdem kannst du dich bei einer Datenschutz-Aufsichtsbehörde beschweren, zum Beispiel bei der deines Bundeslandes.
Stand: Oktober 2026
+39
View File
@@ -0,0 +1,39 @@
---
title: Privacy policy
lead: Who processes which data here and why. In short, as little as possible.
---
The German version of this policy is the binding one. This translation is provided for convenience.
## Controller
First name Last name<br>
Street and number<br>
Postcode, city<br>
Email: name@example.org
## When you visit this site
When you open this site, the server processes technically necessary data: your IP address, date and time, the requested address, your browser type (user agent) and the HTTP status code. This is needed to deliver the site and keep it secure. The legal basis is Art. 6(1)(f) GDPR. Logs are deleted after [number] days.
## Cookies, tracking and third parties
This site doesn't set cookies and doesn't use any tracking or analytics tools. Fonts, scripts and images are served from this server, not from third parties. The only exception are YouTube videos, see below.
## Contact form
If you use the contact form, your name, email address and message are forwarded to me by email. I only use them to reply to your request. The legal basis is Art. 6(1)(b) GDPR when it's about a job application or a possible collaboration, otherwise Art. 6(1)(f) GDPR. The message is not stored on the web server itself. I delete the email once it's no longer needed.
Emails are sent through [provider].
To prevent abuse, the server counts how many messages come from an IP address. This counter only lives in memory and is discarded after one hour.
## YouTube videos
Some project pages contain YouTube videos. They are only loaded after you click "Load video". Only then does your browser connect to YouTube (Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland), which transfers your IP address and possibly cookies, among other things. Videos are embedded in privacy-enhanced mode via youtube-nocookie.com. The legal basis is your consent given by clicking (Art. 6(1)(a) GDPR). See [Google's privacy policy](https://policies.google.com/privacy) for details.
## Your rights
You have the right to access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18), data portability (Art. 20) and to object (Art. 21). You can also lodge a complaint with a data protection supervisory authority.
Last updated: October 2026
Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

+8
View File
@@ -0,0 +1,8 @@
---
title: Mein Homelab
summary: Docker-Host mit Dockge, Nginx Proxy Manager und eigenem Git-Server.
---
Hier beschreiben, wie das Homelab aufgebaut ist: welche Hardware, welches Betriebssystem, wie die Dienste verteilt sind und wie Updates und Backups laufen.
Bilder einfach in diesen Ordner legen und mit `![Beschreibung](foto.jpg)` einbinden.
+6
View File
@@ -0,0 +1,6 @@
---
title: My homelab
summary: Docker host with Dockge, Nginx Proxy Manager and a self-hosted Git server.
---
Describe how the homelab is set up: hardware, operating system, how services are split up and how updates and backups work.
+11
View File
@@ -0,0 +1,11 @@
draft: true
date: 2026-09
tags: [homelab, docker, linux]
featured: true
cover: cover.jpg
# gallery:
# - rack.jpg
# - src: grafana.png
# caption:
# de: Dashboard mit den wichtigsten Diensten
# en: Dashboard with the most important services
Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

+19
View File
@@ -0,0 +1,19 @@
---
title: Diese Website
summary: Eigene Seite mit Node.js und Express, Inhalte als Markdown-Dateien, ausgeliefert als Docker-Container.
---
Ich wollte eine Seite, die ich selbst verstehe und ohne CMS pflegen kann. Deshalb ist sie bewusst einfach aufgebaut.
## Aufbau
- **Server:** Node.js mit Express, die Seiten rendert Nunjucks auf dem Server.
- **Inhalte:** Jedes Projekt ist ein Ordner mit einer YAML-Datei für die Metadaten und einer Markdown-Datei pro Sprache. Neue Einträge kommen per `git pull` auf den Server und werden ohne Neustart übernommen.
- **Bilder:** sharp rechnet sie beim ersten Aufruf in passende Größen um und legt sie in einem Cache ab.
- **Betrieb:** Ein Docker-Container in Dockge, davor Nginx Proxy Manager für HTTPS. Der Container läuft mit schreibgeschütztem Dateisystem und ohne zusätzliche Rechte.
## Worauf ich geachtet habe
Die Seite setzt keine Cookies und lädt nichts von fremden Servern, auch die Schriftarten liegen lokal. Ohne JavaScript funktioniert alles weiterhin, die Animationen sind nur eine Ergänzung und halten sich an die Systemeinstellung für reduzierte Bewegung.
Der Hintergrund auf der Startseite ist ein kleiner WebGL-Shader, der die Streifen der Genderfluid-Flagge ineinanderfließen lässt.
+19
View File
@@ -0,0 +1,19 @@
---
title: This website
summary: My own site built with Node.js and Express, content as Markdown files, shipped as a Docker container.
---
I wanted a site I fully understand and can maintain without a CMS, so it's deliberately simple.
## How it's built
- **Server:** Node.js with Express, pages are rendered on the server with Nunjucks.
- **Content:** Every project is a folder with a YAML file for metadata and one Markdown file per language. New entries reach the server with `git pull` and are picked up without a restart.
- **Images:** sharp resizes them on first request and keeps the results in a cache.
- **Hosting:** A Docker container managed in Dockge, with Nginx Proxy Manager in front for HTTPS. The container runs with a read-only filesystem and no extra privileges.
## What I paid attention to
The site sets no cookies and doesn't load anything from third-party servers, fonts included. Everything still works without JavaScript, the animations are an extra and respect the system setting for reduced motion.
The background on the homepage is a small WebGL shader that lets the stripes of the genderfluid flag flow into each other.
@@ -0,0 +1,27 @@
date: 2026-10
tags: [web, docker]
featured: true
cover: cover.jpg
gallery:
- src: mobile.jpg
alt:
de: Startseite auf dem Smartphone
en: Homepage on a phone
caption:
de: Startseite auf dem Smartphone
en: Homepage on a phone
- src: bento.jpg
caption:
de: Übersicht auf der Startseite
en: Overview on the homepage
- src: portfolio.jpg
caption:
de: Portfolio mit Filter nach Themen
en: Portfolio with topic filter
links:
- label:
de: Quelltext
en: Source code
url: https://git.harlelux.de/Harlekin/Personal-Website
- label: lux.harlelux.de
url: https://lux.harlelux.de
Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

+6
View File
@@ -0,0 +1,6 @@
---
title: Administration eines Roleplay-Servers
summary: Updates, Fehlersuche und Betrieb für eine Roleplay-Community.
---
Hier beschreiben, um welches Spiel und welchen Server es geht, wie groß die Community ist und was genau deine Aufgaben im Team sind. Gut sind konkrete Beispiele, etwa ein Problem, das du gelöst hast, oder etwas, das du automatisiert hast.
+6
View File
@@ -0,0 +1,6 @@
---
title: Running a roleplay server
summary: Updates, troubleshooting and day-to-day operations for a roleplay community.
---
Describe the game and server, the size of the community and what exactly your tasks in the team are.
+5
View File
@@ -0,0 +1,5 @@
draft: true
date: 2026-08
tags: [server, linux]
featured: true
cover: cover.jpg
Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

+11
View File
@@ -0,0 +1,11 @@
---
title: Skripte
summary: Kleine Helfer für wiederkehrende Aufgaben.
---
Hier ein oder mehrere Skripte vorstellen: welches Problem sie lösen, in welcher Sprache sie geschrieben sind und was du dabei gelernt hast. Code lässt sich direkt einbinden:
```bash
#!/usr/bin/env bash
echo "Hallo"
```
+6
View File
@@ -0,0 +1,6 @@
---
title: Scripts
summary: Small helpers for recurring chores.
---
Introduce one or more scripts: what problem they solve, what they're written in and what you learned.
+7
View File
@@ -0,0 +1,7 @@
draft: true
date: 2026-07
tags: [scripts, automation]
cover: cover.jpg
# links:
# - label: Repo
# url: https://git.harlelux.de/Harlekin/...
Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

+6
View File
@@ -0,0 +1,6 @@
---
title: Videoschnitt
summary: Erste Schnittprojekte.
---
Hier beschreiben, was du geschnitten hast, mit welchem Programm und worauf du beim Schnitt geachtet hast.
+6
View File
@@ -0,0 +1,6 @@
---
title: Video editing
summary: First editing projects.
---
Describe what you edited, which software you used and what you paid attention to.
+6
View File
@@ -0,0 +1,6 @@
draft: true
date: 2026-06
tags: [video]
cover: cover.jpg
# YouTube-Link oder eine Datei aus diesem Ordner (clip.mp4)
# video: https://youtu.be/...
+45
View File
@@ -0,0 +1,45 @@
name: Lux
pronouns:
de: alle Pronomen
en: any pronouns
description:
de: Lux studiert Informatik, hilft bei der Administration eines Roleplay-Servers und betreibt ein Homelab. Portfolio, Werdegang und Kontakt.
en: Lux studies computer science, helps run a roleplay server and keeps a homelab going. Portfolio, background and contact.
# Leer lassen, wenn die Adresse nicht öffentlich sein soll
email: ''
links:
- label: git.harlelux.de
url: https://git.harlelux.de/Harlekin
# - label: LinkedIn
# url: https://www.linkedin.com/in/...
source: https://git.harlelux.de/Harlekin/Personal-Website
footer:
de: Läuft als Docker-Container hinter Nginx Proxy Manager. Ohne Cookies, ohne Tracking.
en: Runs as a Docker container behind Nginx Proxy Manager. No cookies, no tracking.
# Foto für den Werdegang, Pfad relativ zu content/
# avatar: images/portrait.jpg
now:
- de: Diese Website bauen und mit Inhalten füllen
en: Building this website and filling it with content
skills:
- group:
de: Betrieb
en: Operations
items: [Linux, Docker, Docker Compose, Dockge, Nginx Proxy Manager, Git]
- group:
de: Entwicklung
en: Development
items: [JavaScript, Node.js, HTML, CSS]
- group:
de: Medien
en: Media
items:
- de: Videoschnitt
en: Video editing