admin page

This commit is contained in:
Harlekin committed 2026-10-25 20:29:26 +01:00
1 parent 5abad7c475
commit b84349c037
33 files changed
+2504 -110

No files matched your search

+3 -3
View File
@@ -1,14 +1,14 @@
---
title: Diese Website
summary: Eigene Seite mit Node.js und Express, Inhalte als Markdown-Dateien, ausgeliefert als Docker-Container.
summary: Eigene Seite mit Node.js und Express, gepflegt über eine kleine Admin-Oberfläche, ausgeliefert als Docker-Container.
---
Ich wollte eine Seite, die ich selbst verstehe und ohne CMS pflegen kann. Deshalb ist sie bewusst einfach aufgebaut.
Ich wollte eine Seite, die ich selbst verstehe und ohne fertiges 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.
- **Inhalte:** Jedes Projekt ist ein Ordner mit einer YAML-Datei für die Metadaten und einer Markdown-Datei pro Sprache. Bearbeitet werden sie über Admin-Seiten, die nur im Heimnetz erreichbar sind. Änderungen sind sofort live, ohne Neustart.
- **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.
+3 -3
View File
@@ -1,14 +1,14 @@
---
title: This website
summary: My own site built with Node.js and Express, content as Markdown files, shipped as a Docker container.
summary: My own site built with Node.js and Express, maintained through a small admin interface, shipped as a Docker container.
---
I wanted a site I fully understand and can maintain without a CMS, so it's deliberately simple.
I wanted a site I fully understand and can maintain without an off-the-shelf 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.
- **Content:** Every project is a folder with a YAML file for metadata and one Markdown file per language. They're edited through admin pages that are only reachable from my home network. Changes go live right away, 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.