fix: rename zensebels.de → zensiebels.de (Siebels not Sebels)
This commit is contained in:
79
.claude/CLAUDE.md
Normal file
79
.claude/CLAUDE.md
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# onepager Project Instructions
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
|
||||||
|
Mono-repo for 57+ vanity domain onepager sites. Single Caddy container with bash template system and host-based routing. Most domains are creative AI/KI wordplay (kAInco, kIlemma, orAKIl, etc.).
|
||||||
|
|
||||||
|
**Deploy:** Push to main -> Dokploy auto-deploys. All domains must be configured in Dokploy.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
```
|
||||||
|
sites/<domain>/ # One folder per domain
|
||||||
|
site.yaml # Config: domain, template, vars
|
||||||
|
index.html # Content (rendered or hand-crafted for custom)
|
||||||
|
assets/ # Optional images, fonts
|
||||||
|
templates/ # 6 HTML templates + base.html
|
||||||
|
base.html # Shared skeleton (CSS includes, meta tags)
|
||||||
|
person-dark.html # Professional profile, dark theme
|
||||||
|
person-light.html # Professional profile, light/cream theme
|
||||||
|
product-dark.html # Product/service landing, dark
|
||||||
|
editorial.html # Long-form manifesto/editorial
|
||||||
|
fun.html # Playful/personal pages
|
||||||
|
minimal.html # Bare-bones single section
|
||||||
|
shared/
|
||||||
|
css/ # variables.css, responsive.css, animations.css, noise.css
|
||||||
|
fonts.html # Google Fonts includes
|
||||||
|
impressum.js # Shared impressum overlay
|
||||||
|
build/ # Generated output (gitignored)
|
||||||
|
Caddyfile # Generated by generate-caddyfile.sh (committed)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Build Pipeline
|
||||||
|
|
||||||
|
1. `generate-caddyfile.sh` reads all `sites/*/site.yaml` -> generates Caddyfile with host matchers
|
||||||
|
2. `build.sh` orchestrates: generates Caddyfile, renders all sites, copies shared assets to `build/`
|
||||||
|
3. `render.sh` takes `site.yaml` + template -> outputs rendered HTML (bash/yq/awk templating)
|
||||||
|
4. Docker: Alpine builder runs `build.sh`, then Caddy serves from `/srv/`
|
||||||
|
|
||||||
|
### Template System
|
||||||
|
|
||||||
|
Templates use `{{placeholder}}` markers. `render.sh` reads vars from `site.yaml` and substitutes. Templates define CSS between `{{template_css_start}}`/`{{template_css_end}}` and body between `{{template_body_start}}`/`{{template_body_end}}`. Base template assembles shared CSS + template CSS + body.
|
||||||
|
|
||||||
|
Available vars: `title`, `description`, `lang`, `name`, `role`, `initials`, `tagline`, `accent`, `accent_light`, `font_primary`, `font_secondary`, `emoji`, `cta_text`, `cta_href`, `tags_html`, `sections_html`, `content_html`, `domain`, `year`.
|
||||||
|
|
||||||
|
### Custom Sites
|
||||||
|
|
||||||
|
Sites with `template: custom` skip rendering entirely -- their `index.html` is copied as-is. Many sites use custom for complex interactive content (e.g., orakil.de oracle, ichbinotto.de agent profile).
|
||||||
|
|
||||||
|
## Code Style & Conventions
|
||||||
|
|
||||||
|
- **Shell scripts**: bash, `set -euo pipefail`, use yq for YAML parsing
|
||||||
|
- **HTML/CSS**: Inline styles in templates. Shared CSS via variables.css. Dark themes predominant.
|
||||||
|
- **Commit messages**: `feat:` for new sites, `fix:` for corrections, `refactor:` for restructuring
|
||||||
|
- **Site naming**: domain name = folder name under `sites/`
|
||||||
|
- **Language**: Default `de` (German). Sites are primarily German-language.
|
||||||
|
|
||||||
|
## Adding a New Site
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Templated
|
||||||
|
./add-site.sh example.de --template person-dark --name "Max Mustermann"
|
||||||
|
|
||||||
|
# Custom
|
||||||
|
./add-site.sh example.de --template custom
|
||||||
|
# Then edit sites/example.de/index.html
|
||||||
|
```
|
||||||
|
|
||||||
|
After adding: build locally with `./build.sh` to verify, commit, push.
|
||||||
|
|
||||||
|
## Deploy Trigger
|
||||||
|
|
||||||
|
A `.deploy-trigger` file exists -- changing its content forces Dokploy rebuild even without code changes.
|
||||||
|
|
||||||
|
## Git Strategy
|
||||||
|
|
||||||
|
- **main** = production, auto-deploys via Dokploy
|
||||||
|
- Feature branches for multi-site changes or infrastructure work
|
||||||
|
- Direct commits to main OK for single-site additions/fixes (this is a content repo)
|
||||||
|
- Gitea repo: m/onepager
|
||||||
14
.claude/agents/coder.md
Normal file
14
.claude/agents/coder.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Coder Agent
|
||||||
|
|
||||||
|
Implementation-focused agent for writing and refactoring code.
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
- Follow existing patterns in the codebase
|
||||||
|
- Write minimal, focused code
|
||||||
|
- Run tests after changes
|
||||||
|
- Commit incrementally with descriptive messages
|
||||||
|
|
||||||
|
## Tools
|
||||||
|
|
||||||
|
All tools available.
|
||||||
14
.claude/agents/researcher.md
Normal file
14
.claude/agents/researcher.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Researcher Agent
|
||||||
|
|
||||||
|
Exploration and information gathering agent.
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
- Search broadly, then narrow down
|
||||||
|
- Document findings in structured format
|
||||||
|
- Cite sources and file paths
|
||||||
|
- Summarize key insights, don't dump raw data
|
||||||
|
|
||||||
|
## Tools
|
||||||
|
|
||||||
|
Read-only tools preferred. Use Bash only for non-destructive commands.
|
||||||
14
.claude/agents/reviewer.md
Normal file
14
.claude/agents/reviewer.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Reviewer Agent
|
||||||
|
|
||||||
|
Code review agent for checking quality and correctness.
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
- Check for bugs, security issues, and style violations
|
||||||
|
- Verify test coverage for changes
|
||||||
|
- Suggest improvements concisely
|
||||||
|
- Focus on correctness over style preferences
|
||||||
|
|
||||||
|
## Tools
|
||||||
|
|
||||||
|
Read-only tools. No file modifications.
|
||||||
1
.claude/skills/mai-clone
Symbolic link
1
.claude/skills/mai-clone
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-clone
|
||||||
1
.claude/skills/mai-coder
Symbolic link
1
.claude/skills/mai-coder
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-coder
|
||||||
1
.claude/skills/mai-commit
Symbolic link
1
.claude/skills/mai-commit
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-commit
|
||||||
1
.claude/skills/mai-consultant
Symbolic link
1
.claude/skills/mai-consultant
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-consultant
|
||||||
1
.claude/skills/mai-daily
Symbolic link
1
.claude/skills/mai-daily
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-daily
|
||||||
1
.claude/skills/mai-debrief
Symbolic link
1
.claude/skills/mai-debrief
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-debrief
|
||||||
1
.claude/skills/mai-enemy
Symbolic link
1
.claude/skills/mai-enemy
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-enemy
|
||||||
1
.claude/skills/mai-excalidraw
Symbolic link
1
.claude/skills/mai-excalidraw
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-excalidraw
|
||||||
1
.claude/skills/mai-fixer
Symbolic link
1
.claude/skills/mai-fixer
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-fixer
|
||||||
1
.claude/skills/mai-gitster
Symbolic link
1
.claude/skills/mai-gitster
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-gitster
|
||||||
1
.claude/skills/mai-head
Symbolic link
1
.claude/skills/mai-head
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-head
|
||||||
1
.claude/skills/mai-init
Symbolic link
1
.claude/skills/mai-init
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-init
|
||||||
1
.claude/skills/mai-inventor
Symbolic link
1
.claude/skills/mai-inventor
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-inventor
|
||||||
1
.claude/skills/mai-lead
Symbolic link
1
.claude/skills/mai-lead
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-lead
|
||||||
1
.claude/skills/mai-maister
Symbolic link
1
.claude/skills/mai-maister
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-maister
|
||||||
1
.claude/skills/mai-member
Symbolic link
1
.claude/skills/mai-member
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-member
|
||||||
1
.claude/skills/mai-researcher
Symbolic link
1
.claude/skills/mai-researcher
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-researcher
|
||||||
1
.claude/skills/mai-think
Symbolic link
1
.claude/skills/mai-think
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-think
|
||||||
1
.claude/skills/mai-web
Symbolic link
1
.claude/skills/mai-web
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/home/m/.mai/skills/mai-web
|
||||||
4
.m/.gitignore
vendored
Normal file
4
.m/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
workers.json
|
||||||
|
spawn.lock
|
||||||
|
session.yaml
|
||||||
|
config.reference.yaml
|
||||||
171
.m/config.yaml
Normal file
171
.m/config.yaml
Normal file
@@ -0,0 +1,171 @@
|
|||||||
|
# Project-specific mai configuration
|
||||||
|
# Auto-generated by 'mai init' — run 'mai setup' to customize
|
||||||
|
|
||||||
|
provider: claude
|
||||||
|
providers:
|
||||||
|
claude:
|
||||||
|
api_key: ""
|
||||||
|
model: claude-sonnet-4-20250514
|
||||||
|
base_url: https://api.anthropic.com/v1
|
||||||
|
ollama:
|
||||||
|
host: http://localhost:11434
|
||||||
|
model: llama3.2
|
||||||
|
memory:
|
||||||
|
enabled: true
|
||||||
|
backend: ""
|
||||||
|
path: ""
|
||||||
|
url: postgres://mai_memory.your-tenant-id:maiMem6034supa@100.99.98.201:6543/postgres?sslmode=disable
|
||||||
|
group_id: onepager
|
||||||
|
cache_ttl: 5m0s
|
||||||
|
auto_load: true
|
||||||
|
embedding_url: ""
|
||||||
|
embedding_model: ""
|
||||||
|
gitea:
|
||||||
|
url: https://mgit.msbls.de
|
||||||
|
repo: m/onepager
|
||||||
|
token: ""
|
||||||
|
sync:
|
||||||
|
enabled: false
|
||||||
|
interval: 0s
|
||||||
|
repos: []
|
||||||
|
auto_queue: false
|
||||||
|
api:
|
||||||
|
api_key: ""
|
||||||
|
basic_auth:
|
||||||
|
username: ""
|
||||||
|
password: ""
|
||||||
|
public_endpoints:
|
||||||
|
- /api/health
|
||||||
|
ui:
|
||||||
|
theme: default
|
||||||
|
show_sidebar: true
|
||||||
|
animation: true
|
||||||
|
persona: true
|
||||||
|
avatar_pack: ""
|
||||||
|
worker:
|
||||||
|
names: []
|
||||||
|
name_scheme: role
|
||||||
|
default_level: standard
|
||||||
|
auto_discard: false
|
||||||
|
max_workers: 5
|
||||||
|
persistent: true
|
||||||
|
head:
|
||||||
|
name: ""
|
||||||
|
max_loops: 50
|
||||||
|
infinity_mode: false
|
||||||
|
capacity:
|
||||||
|
global:
|
||||||
|
max_workers: 5
|
||||||
|
max_heads: 3
|
||||||
|
per_worker:
|
||||||
|
max_tasks_lifetime: 0
|
||||||
|
max_concurrent: 1
|
||||||
|
max_context_tokens: 0
|
||||||
|
per_head:
|
||||||
|
max_workers: 10
|
||||||
|
resources:
|
||||||
|
max_memory_mb: 0
|
||||||
|
max_cpu_percent: 0
|
||||||
|
queue:
|
||||||
|
max_pending: 100
|
||||||
|
stale_task_days: 30
|
||||||
|
workforce:
|
||||||
|
timeouts:
|
||||||
|
task_default: 0s
|
||||||
|
task_max: 0s
|
||||||
|
idle_before_warn: 10m0s
|
||||||
|
idle_before_kill: 30m0s
|
||||||
|
quality_check: 2m0s
|
||||||
|
context:
|
||||||
|
max_tokens_per_worker: 0
|
||||||
|
max_tokens_global: 0
|
||||||
|
warn_threshold: 0.8
|
||||||
|
truncate_strategy: oldest
|
||||||
|
delegation:
|
||||||
|
strategy: skill_match
|
||||||
|
preferred_role: coder
|
||||||
|
auto_delegate: false
|
||||||
|
max_depth: 3
|
||||||
|
allowed_roles:
|
||||||
|
- coder
|
||||||
|
- researcher
|
||||||
|
- fixer
|
||||||
|
peppy:
|
||||||
|
enabled: false
|
||||||
|
style: calm
|
||||||
|
interval: 5m0s
|
||||||
|
emoji: false
|
||||||
|
nudges: true
|
||||||
|
nudge_main: false
|
||||||
|
custom_prompt: ""
|
||||||
|
stall_threshold: 0s
|
||||||
|
restart_enabled: false
|
||||||
|
max_shifts: 0
|
||||||
|
quality_gates:
|
||||||
|
enabled: false
|
||||||
|
checks: []
|
||||||
|
preflight:
|
||||||
|
enabled: false
|
||||||
|
type: ""
|
||||||
|
root: ""
|
||||||
|
checks: []
|
||||||
|
guardrails:
|
||||||
|
enabled: false
|
||||||
|
use_defaults: true
|
||||||
|
output:
|
||||||
|
coder_checks: []
|
||||||
|
researcher_checks: []
|
||||||
|
fixer_checks: []
|
||||||
|
custom_checks: {}
|
||||||
|
global_checks: []
|
||||||
|
tools:
|
||||||
|
role_rules: {}
|
||||||
|
deny_patterns: []
|
||||||
|
allow_patterns: []
|
||||||
|
schemas:
|
||||||
|
report_schemas: {}
|
||||||
|
deliverable_schemas: {}
|
||||||
|
modes:
|
||||||
|
yolo: false
|
||||||
|
self_improvement: true
|
||||||
|
autonomous: false
|
||||||
|
verbose: false
|
||||||
|
improve_interval: 0s
|
||||||
|
predict_interval: 0s
|
||||||
|
layouts:
|
||||||
|
head: ""
|
||||||
|
worker: ""
|
||||||
|
roles: {}
|
||||||
|
dog:
|
||||||
|
name: buddy
|
||||||
|
supabase:
|
||||||
|
url: ""
|
||||||
|
role_key: ""
|
||||||
|
anon_key: ""
|
||||||
|
schema: mai
|
||||||
|
storage:
|
||||||
|
backend: ""
|
||||||
|
postgres:
|
||||||
|
url: ""
|
||||||
|
max_conns: 0
|
||||||
|
min_conns: 0
|
||||||
|
max_conn_lifetime: 0s
|
||||||
|
idle:
|
||||||
|
behavior: wait
|
||||||
|
auto_hire: false
|
||||||
|
prompt: ""
|
||||||
|
git:
|
||||||
|
worktrees:
|
||||||
|
enabled: true
|
||||||
|
delete_branch: false
|
||||||
|
dir: .worktrees
|
||||||
|
phase:
|
||||||
|
enabled: false
|
||||||
|
current: ""
|
||||||
|
allowed_roles: {}
|
||||||
|
goal: "Mono-repo for 57+ vanity domain onepager sites — bash template system, Caddy routing, Dokploy deploy. Creative AI/KI-themed domains."
|
||||||
|
skills: {}
|
||||||
|
editor: nvim
|
||||||
|
log_level: info
|
||||||
|
project_detection: true
|
||||||
|
tone: professional
|
||||||
22
.mcp.json
Normal file
22
.mcp.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"mai": {
|
||||||
|
"type": "http",
|
||||||
|
"url": "http://100.99.98.201:8000/mcp",
|
||||||
|
"headers": {
|
||||||
|
"Authorization": "Basic ${SUPABASE_AUTH}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mai-memory": {
|
||||||
|
"command": "mai",
|
||||||
|
"args": [
|
||||||
|
"mcp",
|
||||||
|
"memory"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"MAI_MEMORY_EMBEDDING_MODEL": "nomic-embed-text",
|
||||||
|
"MAI_MEMORY_EMBEDDING_URL": "https://llm.x.msbls.de"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1
.worktrees/knuth
Submodule
1
.worktrees/knuth
Submodule
Submodule .worktrees/knuth added at b49f1ae83e
@@ -368,7 +368,7 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
<p>zensebels.de — 2026</p>
|
<p>zensiebels.de — 2026</p>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
domain: zensebels.de
|
domain: zensiebels.de
|
||||||
template: custom
|
template: custom
|
||||||
title: "ZenSebels"
|
title: "ZenSebels"
|
||||||
description: "Stille. Klarheit. Praxis."
|
description: "Stille. Klarheit. Praxis."
|
||||||
Reference in New Issue
Block a user