Template repo for generating new demos.
  • Python 52.2%
  • Shell 38.5%
  • Dockerfile 9.3%
Find a file Use this template
Rick Oerder c2658db42a Remove Telegram integration and add README
- Strip all Telegram references from CLAUDE.md (headless mode no
  longer sends notifications; Outline comments are the only output)
- Remove automatic git push from MODE=generate
- Add README.md explaining template purpose, structure, and setup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 15:39:14 +02:00
litellm Initial demo-base template 2026-04-06 14:24:59 +02:00
n8n Initial demo-base template 2026-04-06 14:24:59 +02:00
seeder Initial demo-base template 2026-04-06 14:24:59 +02:00
traefik Initial demo-base template 2026-04-06 14:24:59 +02:00
workflows Initial demo-base template 2026-04-06 14:24:59 +02:00
.env.example Initial demo-base template 2026-04-06 14:24:59 +02:00
CLAUDE.md Remove Telegram integration and add README 2026-04-06 15:39:14 +02:00
docker-compose.yml Initial demo-base template 2026-04-06 14:24:59 +02:00
README.md Remove Telegram integration and add README 2026-04-06 15:39:14 +02:00

demo-base

Template repository for KI ohne Umweg customer demos. Clone this repo as the starting point for each new demo — it provides a minimal, runnable infrastructure stack that works for every use case.

The actual demo logic (mock data, n8n workflow) is added on top by Claude Code, guided by a Demo Brief.


What's included

Service Purpose
traefik Reverse proxy — HTTP locally, HTTPS via Let's Encrypt on the demo VPS
postgres Shared database: n8n backend + demo_events event log
litellm OpenAI-compatible LLM proxy — routes to Vertex AI or Ollama via .env
n8n Workflow engine — auto-imports workflows/workflow.json on startup
seeder Init container — creates schema and generates mock data once at startup

Use-case-specific services (e.g. mailpit, minio, a custom frontend) are added per demo and are not part of this base.


Getting started

1. Clone and configure

git clone <this-repo> demos/<kundenname>
cd demos/<kundenname>
cp .env.example .env

Edit .env — at minimum set your LLM backend credentials. For local development with Ollama:

LLM_BACKEND=ollama
LLM_MODEL=llama3.1
OLLAMA_BASE_URL=http://ollama:11434

2. Start Claude Code

claude

CLAUDE.md is loaded automatically. Claude Code will ask for the Demo Brief URL and guide you through building the demo step by step.

3. Run the stack

After Claude Code has generated the demo files:

docker compose up
  • n8n is available at http://localhost:5678
  • The seeder runs once and populates mock data
  • The workflow is auto-imported into n8n

Repository structure

demo-base/
  CLAUDE.md              # Instructions for Claude Code (auto-loaded)
  docker-compose.yml     # Base services — extend, don't replace
  .env.example           # All required environment variables
  traefik/
    traefik.yml          # Traefik configuration
  n8n/
    init-workflow.sh     # Auto-imports workflows/*.json on n8n startup
  litellm/
    config.yml           # LLM routing config (backend set via .env)
  seeder/
    seed.py              # Placeholder — filled per use case by Claude Code
    requirements.txt     # Python dependencies for the seeder
  workflows/             # Placeholder — workflow.json added per use case

Slot files (filled per demo)

File What goes here
seeder/seed.py Use-case-specific mock data generation
workflows/workflow.json n8n workflow export
docker-compose.yml Additional use-case services (after # --- use-case services ---)
.env.example Additional use-case environment variables
README.md This file — rewritten per demo with customer-specific instructions

Infrastructure files (do not modify)

traefik/, litellm/, n8n/init-workflow.sh — these are shared across all demos and should not be changed per use case.


LLM backend

n8n always calls http://litellm:4000/v1 — never a cloud API directly. The backend is configured in .env:

Vertex AI (default):

LLM_BACKEND=vertex_ai
LLM_MODEL=claude-sonnet-4-6
VERTEXAI_PROJECT=ki-ohne-umweg-prod
VERTEXAI_LOCATION=europe-west3
GOOGLE_APPLICATION_CREDENTIALS=/run/secrets/gcp-sa-key

Ollama (local):

LLM_BACKEND=ollama
LLM_MODEL=llama3.1
OLLAMA_BASE_URL=http://ollama:11434

Switching backends requires only .env changes — no workflow edits needed.


Deployment on the demo VPS

Set CUSTOMER_SLUG and DEMO_DOMAIN in .env:

CUSTOMER_SLUG=muster-gmbh
DEMO_DOMAIN=demo.ki-ohne-umweg.de

Traefik will expose n8n at https://n8n.muster-gmbh.demo.ki-ohne-umweg.de and handle SSL automatically via Let's Encrypt.