mAi 59833b5d6d mAi: #4 - Impressum-Overlay theme-aware + frame-safe
- Trigger: <a>-Link mit identischer CSS-Hülle wie die inline-minimal-
  Variante (text-align:center; font-size:0.75rem; opacity:0.6;
  padding:12px 0; margin-top:4px). Kein Footer-Layout-Shift mehr,
  Höhe und Breite identisch zu vorher.
- Karte: nutzt --bg-card / --text / --accent / --border / --radius /
  --font-primary vom Host (shared/css/variables.css) — Dark-Fallbacks
  neutral. Auf hellen Themes greifen die CSS-Vars, auf Sites ohne
  Variablen bleibt es dezent dunkel.
- max-width: min(420px, calc(100vw - 32px)) + box-sizing:border-box
  + overflow-wrap:break-word — Karte kann Viewport nie sprengen,
  auch nicht bei langen unbreakable strings.
- Body-scroll-lock während Overlay offen ist; vorheriger overflow-
  Wert wird beim Schließen restauriert.
2026-04-26 10:34:33 +02:00

onepager

Mono-repo for 40+ vanity domain onepager sites. Single nginx container with template system and server_name-based routing.

Structure

sites/           # One folder per domain
  example.de/
    site.yaml    # Domain config, template choice, variables
    index.html   # Content (generated or hand-crafted)
    assets/      # Optional images, fonts
templates/       # Shared HTML templates
shared/css/      # Shared CSS (variables, responsive, animations)
nginx/           # Generated nginx.conf + generator script
build/           # Generated output (gitignored)

Usage

Add a new site

# Templated site
./add-site.sh example.de --template person-dark --name "Max Mustermann"

# Custom HTML site
./add-site.sh example.de --template custom

Build

./build.sh

Requires yq for YAML parsing. Outputs to build/ directory.

Deploy

Push to main — Dokploy auto-deploys. All domains must be configured in Dokploy.

Templates

Template Description
person-dark Professional profile, dark theme
person-light Professional profile, light/cream theme
product-dark Product/service landing page, dark
editorial Long-form manifesto/editorial style
fun Playful/personal pages
minimal Bare-bones single section
custom Hand-crafted HTML, no rendering

site.yaml

domain: example.de
aliases: [www.example.de]
template: person-dark
title: "Page Title"
description: "Meta description"
lang: de

vars:
  name: "Name"
  role: "Role"
  initials: "AB"
  tagline: "Tagline here"
  accent: "#c9a84c"
  accent_light: "rgba(201, 168, 76, 0.1)"
  font_primary: "Inter"
  font_secondary: "Newsreader"
  tags: ["Tag 1", "Tag 2"]
  sections:
    - type: features
      title: "Section Title"
      items:
        - title: "Item"
          desc: "Description"
    - type: profile
      bio: "Bio text"
  cta:
    text: "Contact"
    href: "mailto:info@example.de"
  • Issue #341: Onepager Mono-Repo
  • Issue #335: Container consolidation
Description
Mono-repo for 40+ vanity domain onepager sites — single nginx container with template system
Readme 2.2 MiB
Languages
HTML 93.1%
Python 2.6%
Shell 2.2%
JavaScript 1.8%
CSS 0.3%