Files
onepager/README.md
mAi 6f5de542ab feat: initial mono-repo with 30 vanity domain sites
Scaffold complete repo structure:
- 28 static sites extracted from running containers on mlake
- 2 dynamic sites (dasbes.de, dumusst.com) marked for separate handling
- Template system with 6 templates (person-dark/light, product-dark, editorial, fun, minimal)
- Shared CSS (variables, responsive, animations, noise overlay)
- nginx config generator with multi-domain alias support
- Build script with Docker-based nginx validation
- add-site.sh helper for scaffolding new domains
- Dockerfile for single nginx:alpine container

Sites: clemensplassmann.de, danosi.de, deinesei.de, derkaiseristnackt.de,
elefantenhor.de, fragina.de, frenchkis.de, ichbinaufbali.de, ichbinaufbarley.de,
insain.de, julietensity.de, kainco.de (+keinco.de), kainstress.de, keinefreun.de,
knzlmgmt.de, kopffrai.de, legalais.de, machesdocheinfach.de, mai-otto.de
(+otto.flexsiebels.de, ottomatisch.de, ichbinotto.de), martinsiebels.de,
matthiasbreier.de, osterai.de, paragraphenraiter.de, schulfrai.de, smartin3.de,
sorgenfrai.de, vonschraitter.de, wartebitte.de

Refs: otto#341
2026-03-29 13:20:27 +02:00

92 lines
2.0 KiB
Markdown

# 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
```bash
# Templated site
./add-site.sh example.de --template person-dark --name "Max Mustermann"
# Custom HTML site
./add-site.sh example.de --template custom
```
### Build
```bash
./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
```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"
```
## Related
- Issue #341: Onepager Mono-Repo
- Issue #335: Container consolidation