Skip to content
View lukislp's full-sized avatar

Sponsoring

@jstedfast

Highlights

  • Pro

Block or report lukislp

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
lukislp/README.md

Lukas Körber

Data Engineer & B.Sc. Applied AI student. I build data warehouses and ETL pipelines by day, and self-hosted .NET apps on my own home k3s cluster by night — from study tools to inventory management to push notifications.

Website: lktec.org

Note: I've been building these projects since 2024 on my self-hosted GitLab instance (CI/CD included — it's part of my homelab). I migrated them to GitHub in August 2026, which is why the commit history and contribution graph here only start then.

Projects

  • StudyLife — self-hosted study organizer (Blazor WASM + ASP.NET Core): calendar, exam planner, focus timer, notes, progress dashboard. Also available as a native MAUI app and a Home Assistant integration. Live demo →
  • studylife-ai — Python microservice extending StudyLife with an LLM agent: RAG study assistant over your own notes/courses/sessions with source citations, a LangGraph agent with a confirmation flow for write actions, and a RAGAS eval pipeline running in CI. FastAPI + LiteLLM (provider-agnostic — API models or fully local via Ollama) + Qdrant.
  • studylife-mcp — Model Context Protocol server exposing StudyLife to Claude and other MCP clients: read tools for courses/notes/sessions/course goals, write tools for creating notes and sessions, and a self-built OAuth 2.1 authorization server for multi-user remote access. Python + the official MCP SDK.
  • studylife-capture — Chrome extension (Manifest V3) for saving a selection or a whole article from any page into StudyLife as a note, auto-enriched by studylife-ai in the background: course matching scoped to active courses, tags, a summary, and related-notes suggestions. TypeScript + esbuild, Mozilla Readability for article extraction. Install →
  • studylife-focus — Chrome extension (Manifest V3) with two independent, separately-toggleable features tied to a StudyLife focus session: Guard blocks or allows sites (allowlist or blocklist) with automatic tab redirect on session start and restore on session end, and Tune switches a Spotify playlist. Each feature's API key is read-only by design and scoped to its own audience — it can only ever check whether a session is active, nothing else. TypeScript + esbuild.
  • studylife-webhooks — webhook delivery microservice for StudyLife: fires signed HTTP callbacks on session/goal events to your own automations (Zapier, n8n, Discord, etc.), with multiple independently-named, per-user API keys. Python + FastAPI.
  • studylife-marketplace — public catalog of third-party StudyLife add-ons, browsable and one-click installable from within your own instance. Listings are metadata-only pointers (name, scopes requested, link to the add-on's own repo — never code) added via pull request and CI-validated against a JSON schema.
  • studylife-developers — developer portal for registering a StudyLife add-on against your own self-hosted instance: name, description, redirect URIs, and the exact scopes it needs, backing a generic OAuth-style consent flow in StudyLife core itself. Blazor Server + ASP.NET Core.
  • studylife-cli — command-line client for StudyLife: notes, sessions, course goals, focus timer, courses, study programs, and webhooks from your terminal, with a --json flag for scripting. Registers itself through the same generic OAuth-style dynamic-client flow as studylife-developers above, needing zero dedicated server-side support. Python + Typer.
  • homelab-autodoc — living documentation for Kubernetes homelabs: a read-only collector (deliberately no Secrets access, not even names) inventories k3s clusters and pushes to a central server that renders a wiki-style MkDocs site — deterministic fact tables, Mermaid topology diagrams, best-practice findings, a cluster-wide image list, per-namespace warning events, and drift changelogs opened by AI-written summaries. The LLM only ever writes clearly labeled prose on top of collected facts (a documented hallucination boundary). Multi-cluster registration via OAuth device grant with a React admin UI; deployed on the real cluster with zero-downtime GitOps rollouts. Python monorepo, 5 packages.
  • Lagersystem — self-hosted inventory management system (Blazor Server): multi-warehouse, ML-powered anomaly detection, WebAuthn/passkeys, automated backups. Also available as a Home Assistant integration.
  • gitlab-monitor-hacs — Home Assistant integration for GitLab: pipelines, issues, merge requests, and releases as sensors per repository, for gitlab.com or self-hosted instances.
  • HouseHoldPlanner — self-hosted household management app (Blazor WASM + ASP.NET Core): tasks, meal planning, recipes, calendars, shopping lists, and real-time chat.
  • NotifyHub — universal .NET library for push notifications across browser (Web Push/VAPID), Apple (APNs), Android (FCM), webhooks, and email through a single channel-agnostic API.
  • homelab-hub — self-hosted dashboard for homelab status monitoring. Live demo →
  • piwatch — real-time monitoring for Raspberry Pi k3s clusters. Live demo →
  • UnifiProtectDashboard — self-hosted dashboard for UniFi Protect cameras.
  • ObdGarage — self-hosted, multi-user OBD2 vehicle tracker (Blazor Server + .NET MAUI): automatic trip log, maintenance planner, DTC diagnostics, fuel/cost tracking over a live ELM327 connection.

Licensing: the primary self-hosted apps that manage real personal/business data (StudyLife, studylife-ai, studylife-mcp, studylife-capture, studylife-focus, studylife-webhooks, studylife-marketplace, studylife-developers, studylife-cli, Lagersystem, HouseHoldPlanner, ObdGarage) are AGPL-3.0, so any hosted fork has to share its changes back. Infrastructure tooling — dashboards, libraries, Home Assistant integrations — is MIT, since the point there is easy reuse and forking, not protecting a product.

Stack

Languages: C# · TypeScript · JavaScript · Python · SQL

Frameworks & Platforms: .NET / ASP.NET Core · FastAPI · React · Kubernetes (k3s) · Docker · Chrome Extensions (Manifest V3)

AI & LLM: LLM/RAG engineering · LangGraph agents · Vector search (Qdrant) · RAGAS evaluation · LiteLLM (provider-agnostic) · MCP (Model Context Protocol)

Data: Data warehousing · ETL pipelines · Oracle · Qlik Sense · ML integration

Infrastructure & Other: Home Assistant · IoT · CI/CD · GitOps (Flux CD) · Docs-as-Code (MkDocs Material) · AWS (Solutions Architect candidate) · OAuth 2.1 & Device Grant / RFC 8628 (self-built authorization flows)

Pinned Loading

  1. studylife studylife Public

    Self-hosted study organizer — calendar, exam/study planner, focus timer, notes, and progress dashboard. Built with Blazor WASM + ASP.NET Core (.NET 10); passkey login, 26 languages, optional Home A…

    C#

  2. studylife-ai studylife-ai Public

    AI service for StudyLife — RAG-powered study assistant with agentic actions (LangGraph + FastAPI), source-cited answers over your notes, automated eval pipeline (RAGAS) in CI, self-hosted on k3s wi…

    Python

  3. studylife-mcp studylife-mcp Public

    MCP server exposing StudyLife (self-hosted study platform) data to Claude and other MCP clients.

    Python

  4. NotifyHub NotifyHub Public

    Universal .NET notification library — Web Push (VAPID), APNs, FCM, webhooks, and email through one channel-agnostic API. No standalone server; you host and configure it yourself.

    C#

  5. piwatch piwatch Public

    Self-hosted real-time monitoring dashboard for a Raspberry Pi k3s cluster — FastAPI + React, live updates via WebSocket, automatic failover across replicas.

    Python

  6. homelab-hub homelab-hub Public

    Self-hosted homelab link dashboard with a terminal aesthetic — live status probes with latency, drag & drop categories, single-container deployment on k3s via NGINX Gateway Fabric.

    JavaScript