Migration: .NET 10, lokaler Build, neuer Rezept-Pfad, deploy.sh, neue Rezepte

This commit is contained in:
Meleki committed 2026-02-24 13:49:36 +01:00
1 parent 466cb09d1c
commit ff0a6a1c76
45 files changed
+354 -28

No files matched your search

+1
View File
@@ -1,2 +1,3 @@
/webapp/Kochstube/bin/
/webapp/Kochstube/obj/
webapp/Kochstube/publish/
Regular → Executable
+8 -11
View File
@@ -1,22 +1,20 @@
# Kochstube
## Projektbeschreibung
Rezepte & Kochpläne sammeln. Fokus auf gesundes, leckeres Essen. Tausi gibt Zutaten vor, ich schlage passende Rezepte vor - bei Bedarf mit Webrecherche.
## Tech Stack
- **Framework:** .NET 9 (ASP.NET Razor Pages)
- **Framework:** .NET 10 (ASP.NET Razor Pages)
- **Port:** 18683
- **Host:** stein2 (192.168.100.200)
- **Pfad auf stein2:** `/var/lib/docker/workspace/stacks/openclaw/meleki/home/kochstube/`
- **systemd Service:** `kochstube` (enabled, auto-restart)
- **Rebuild nach Code-Änderungen:** `sudo dotnet build -c Release` im webapp/Kochstube Ordner, dann `sudo systemctl restart kochstube`
- **Pfad:** `/home/node/.openclaw/workspace/projects/kochstube/`
- **Deploy:** `./deploy.sh` im Projektroot aufrufen (baut & deployed automatisch)
- **Neue Rezepte:** JSON in `rezepte/` ablegen, wird automatisch geladen (kein Rebuild nötig)
## Git
- **Push:** `git push`
## Pfad
`/_stacks/openclaw/meleki/home/kochstube` (auf stein2, via SSH erreichbar)
`/home/node/.openclaw/workspace/projects/kochstube`
## Rezeptquellen (primär)
@@ -25,5 +23,4 @@ Rezepte & Kochpläne sammeln. Fokus auf gesundes, leckeres Essen. Tausi gibt Zut
## Notizen
- Rezepte als JSON in `rezepte/` ablegen
- Web-App cached Rezepte 10 Sekunden
Executable
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
set -e
export PATH="$HOME/.dotnet:$PATH"
cd ~/.openclaw/workspace/projects/kochstube/webapp/Kochstube
dotnet publish -c Release -o publish
ssh -o ConnectTimeout=5 meleki@192.168.100.200 "nohup sudo systemctl restart kochstube > /dev/null 2>&1 &"
echo "Service restarted"
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Regular → Executable
View File
File mode changed.
+50
View File
@@ -0,0 +1,50 @@
{
"id": "gemuesereis-aus-dem-ofen",
"titel": "Einfacher Gemüsereis aus dem Ofen",
"beschreibung": "Unkomplizierter Ofenreis mit Zucchini, Paprika und Cherrytomaten – alles in einem Topf, der Ofen macht die Arbeit. Dazu ein frischer Zitronenjoghurt.",
"bild": "https://www.eat-this.org/wp-content/uploads/2020/09/eat_this_einfacher_gemuesereis_aus_dem_ofen-004.jpg",
"kategorie": "Hauptspeise",
"tags": [
"reis",
"ofen",
"mediterran",
"vegetarisch",
"one-pot"
],
"schwierigkeit": "einfach",
"zubereitungszeit_min": 50,
"portionen": 2,
"zutaten": [
{"menge": "1", "zutat": "Zwiebel"},
{"menge": "2 Zehen", "zutat": "Knoblauch"},
{"menge": "2 EL", "zutat": "Olivenöl"},
{"menge": "1 kleine", "zutat": "Zucchini (ca. 175 g)"},
{"menge": "1", "zutat": "Paprika (grün oder rot)"},
{"menge": "150 g", "zutat": "Basmatireis"},
{"menge": "1,5 TL", "zutat": "Oregano (gerebelt)"},
{"menge": "1 TL", "zutat": "Paprikapulver"},
{"menge": "1 TL", "zutat": "Salz"},
{"menge": "0,5 TL", "zutat": "Pfeffer"},
{"menge": "etwas", "zutat": "Zitronensaft (oder Zesten)"},
{"menge": "400 ml", "zutat": "Gemüsebrühe"},
{"menge": "150 g", "zutat": "Cherrytomaten"},
{"menge": "2 EL", "zutat": "Joghurt (für Topping)"},
{"menge": "1 EL", "zutat": "Zitronensaft (für Topping)"}
],
"zubereitung": [
"Backofen auf 180 °C Ober-/Unterhitze vorheizen.",
"Zwiebel würfeln, Knoblauch fein hacken. Olivenöl in einen ofenfesten Topf oder eine tiefe Pfanne geben, Zwiebel und Knoblauch 3 Minuten bei niedriger bis mittlerer Hitze anschwitzen.",
"Zucchini und Paprika in ca. 2 cm große Würfel schneiden. Zusammen mit dem Reis in den Topf geben, 2 Minuten bei hoher Hitze anbraten.",
"Mit Oregano, Paprikapulver, Salz, Pfeffer und Zitronensaft würzen. Mit Gemüsebrühe ablöschen und kurz aufkochen lassen.",
"Cherrytomaten obenauf verteilen, Deckel drauf und 30 Minuten auf mittlerer Schiene im Ofen garen. Die letzten 5 Minuten auf Oberhitze schalten.",
"Für den Zitronenjoghurt: Joghurt mit Zitronensaft und einer Prise Salz verrühren.",
"Gemüsereis mit Zitronenjoghurt servieren. Optional mit frischen Kräutern toppen."
],
"notizen": "Cherrytomaten evtl. besorgen. Statt Joghurt-Topping kann auch Feta darüber gebröselt werden – passt super! Bei Vollkornreis 50 ml mehr Brühe und 5-10 Min. länger im Ofen.",
"quelle": {
"name": "eat-this.org",
"url": "https://www.eat-this.org/einfacher-gemuesereis-aus-dem-ofen/",
"autor": "Jörg"
},
"erstellt": "2026-02-18"
}
+107
View File
@@ -0,0 +1,107 @@
{
"id": "hackfleisch-kokos-eintopf",
"titel": "Hackfleisch-Kokos-Eintopf mit Kichererbsen und Gemüse",
"beschreibung": "Cremiger One-Pot-Eintopf mit Hackfleisch, Kokosmilch, Kichererbsen, weißen Bohnen und buntem Gemüse. Gesund, sättigend und unkompliziert.",
"bild": "https://gen.krea.ai/images/986cbb51-cf87-4b91-b5f7-6311343adb87.png",
"kategorie": "Hauptspeise",
"tags": [
"eintopf",
"hackfleisch",
"kokosmilch",
"kichererbsen",
"bohnen",
"gemüse",
"gesund",
"one-pot"
],
"schwierigkeit": "einfach",
"zubereitungszeit_min": 45,
"portionen": 4,
"zutaten": [
{
"menge": "500 g",
"zutat": "Hackfleisch (gemischt)"
},
{
"menge": "1 Dose / 400 ml",
"zutat": "Kokosmilch"
},
{
"menge": "1 Dose",
"zutat": "Kichererbsen (abgetropft)"
},
{
"menge": "1 Dose",
"zutat": "Weiße Bohnen (abgetropft)"
},
{
"menge": "2 Stück",
"zutat": "Paprika (rot oder gemischt)"
},
{
"menge": "2 Stück",
"zutat": "Karotten"
},
{
"menge": "1 Stück",
"zutat": "Zucchini"
},
{
"menge": "3-4 Stück",
"zutat": "Kartoffeln (mittelgroß)"
},
{
"menge": "1 Stange",
"zutat": "Lauch"
},
{
"menge": "1 Stück",
"zutat": "Zwiebel"
},
{
"menge": "3 Zehen",
"zutat": "Knoblauch"
},
{
"menge": "200 ml",
"zutat": "Gemüsebrühe oder Wasser"
},
{
"menge": "1 TL",
"zutat": "Kreuzkümmel"
},
{
"menge": "1 TL",
"zutat": "Paprikapulver (geräuchert oder edelsüß)"
},
{
"menge": "nach Geschmack",
"zutat": "Currypulver (optional)"
},
{
"menge": "nach Geschmack",
"zutat": "Salz und Pfeffer"
},
{
"menge": "etwas",
"zutat": "Öl zum Anbraten"
}
],
"zubereitung": [
"Kartoffeln schälen und in mundgerechte Würfel schneiden. In leicht gesalzenem Wasser ca. 10 Minuten vorgaren, dann abgießen.",
"Zwiebel und Knoblauch fein hacken. Lauch in Ringe schneiden, gut waschen. Paprika, Karotten und Zucchini in Würfel schneiden.",
"Öl in einem großen Topf erhitzen. Zwiebel, Lauch und Knoblauch darin glasig anschwitzen.",
"Hackfleisch dazugeben und krümelig anbraten. Mit Salz, Pfeffer, Kreuzkümmel und Paprikapulver (und optional Curry) würzen.",
"Karotten und Paprika dazugeben, 3-4 Minuten mitbraten.",
"Kokosmilch und Brühe angießen, aufkochen lassen.",
"Kichererbsen, weiße Bohnen, Zucchini und vorgekochte Kartoffeln einrühren.",
"Alles zusammen ca. 15 Minuten bei mittlerer Hitze köcheln lassen, bis das Gemüse weich ist. Abschmecken und servieren."
],
"notizen": "Komplett aus dem Vorrat! Kein frisch besorgen nötig. Wer mag, kann am Ende noch einen Spritzer Zitronensaft oder frische Petersilie drüber geben. Schmeckt aufgewärmt am nächsten Tag noch besser.",
"quelle": {
"name": "Meleki (spontan erfunden)",
"url": "",
"autor": "Meleki"
},
"erstellt": "2026-02-21"
}
View File
File mode changed.
View File
File mode changed.
+85
View File
@@ -0,0 +1,85 @@
{
"id": "klassisches-ratatouille",
"titel": "Klassisches Ratatouille",
"beschreibung": "Das legendäre provenzalische Schmorgericht – Zucchini, Paprika, Auberginen und Tomaten langsam geschmort mit Knoblauch und Kräutern. Einfach, vegetarisch, unwiderstehlich.",
"bild": "https://www.eat-this.org/wp-content/uploads/2011/09/eat_this_unser_klassisches_ratatouille_004-1280x853.jpg",
"kategorie": "Hauptspeise",
"tags": [
"vegetarisch",
"mediterran",
"französisch",
"schmorgericht",
"gemüse",
"meal-prep"
],
"schwierigkeit": "einfach",
"zubereitungszeit_min": 75,
"portionen": 4,
"zutaten": [
{
"menge": "2",
"zutat": "Auberginen"
},
{
"menge": "1",
"zutat": "Zucchini"
},
{
"menge": "2",
"zutat": "Paprika (gelb oder rot)"
},
{
"menge": "3 EL",
"zutat": "Olivenöl"
},
{
"menge": "2 TL",
"zutat": "Salz"
},
{
"menge": "2",
"zutat": "rote Zwiebeln"
},
{
"menge": "4 Zehen",
"zutat": "Knoblauch"
},
{
"menge": "3 Zweige",
"zutat": "Thymian (frisch oder getrocknet)"
},
{
"menge": "½ Bund",
"zutat": "Basilikum"
},
{
"menge": "600 g",
"zutat": "Tomaten (geschält, aus der Dose) oder passierte Tomaten"
},
{
"menge": "2 EL",
"zutat": "Balsamicoessig"
},
{
"menge": "¾ TL",
"zutat": "schwarzer Pfeffer"
}
],
"zubereitung": [
"Auberginen, Zucchini und Paprika in etwa 3 cm große Würfel schneiden.",
"2 EL Olivenöl in einem großen Topf oder Schmortopf bei mittlerer bis hoher Hitze erhitzen. Das Gemüse zusammen mit 1 TL Salz für 5 Minuten unter häufigem Rühren rösten. Danach herausnehmen und beiseitestellen.",
"Zwiebeln grob würfeln, Knoblauch fein hacken.",
"Das restliche Olivenöl (1 EL) in den Topf geben. Zwiebeln und Knoblauch bei niedriger bis mittlerer Hitze 10 Minuten karamellisieren lassen, gelegentlich umrühren.",
"Thymianblätter zupfen, Basilikum grob hacken (Stiele aufheben).",
"Das geröstete Gemüse, Thymian, Basilikumstiele, Tomaten, Balsamicoessig und Pfeffer in den Topf geben. Gut vermischen.",
"Bei niedriger Hitze mit geschlossenem Deckel 40 Minuten schmoren lassen. Gelegentlich umrühren.",
"Mit dem restlichen Salz abschmecken. Mit gehacktem Basilikum garnieren und servieren."
],
"notizen": "Auberginen müssen besorgt werden. Schmeckt auch kalt hervorragend – ideal zum Vorkochen (hält 3 Tage im Kühlschrank). Passt super zu Baguette, Reis oder Nudeln. Getrockneter Thymian funktioniert genauso gut.",
"quelle": {
"name": "Eat this!",
"url": "https://www.eat-this.org/ratatouille/",
"autor": "Jörg (Eat this!)"
},
"erstellt": "2026-02-20"
}
Regular → Executable
View File
File mode changed.
+85
View File
@@ -0,0 +1,85 @@
{
"id": "lauch-schinken-quiche",
"titel": "Lauch-Schinken-Quiche",
"beschreibung": "Herzhafte französische Quiche mit buttrigem Mürbteig, zartem Lauch und würzigem Schinken in cremiger Eiersahne mit Käse überbacken. Ein Klassiker, der warm und kalt schmeckt.",
"bild": "https://ais.kochbar.de/kbrezept/291884_216268/1200x1200/quiche-lauch-schinken-quiche-rezept.jpg",
"kategorie": "Hauptspeise",
"tags": [
"quiche",
"deftig",
"ofen",
"französisch",
"lauch",
"schinken"
],
"schwierigkeit": "mittel",
"zubereitungszeit_min": 75,
"portionen": 4,
"zutaten": [
{
"menge": "150 g",
"zutat": "Mehl"
},
{
"menge": "75 g",
"zutat": "Butter (kalt)"
},
{
"menge": "3",
"zutat": "Eier"
},
{
"menge": "2 EL",
"zutat": "Milch"
},
{
"menge": "1 EL",
"zutat": "Kräuter der Provence"
},
{
"menge": "150 g",
"zutat": "Käse (Emmentaler oder Bergkäse, gerieben)"
},
{
"menge": "1",
"zutat": "Zwiebel (klein, fein gehackt)"
},
{
"menge": "400 g",
"zutat": "Lauch (in Ringe geschnitten)"
},
{
"menge": "150 g",
"zutat": "Schinken (in Streifen)"
},
{
"menge": "125 ml",
"zutat": "Sahne (oder Milch)"
},
{
"menge": "150 g",
"zutat": "Sauerrahm (oder Schmand)"
},
{
"menge": "",
"zutat": "Salz und Pfeffer"
}
],
"zubereitung": [
"Aus Mehl, 1 Ei, Milch, einer Prise Salz, Kräuter der Provence, ca. 80 g geriebenem Käse, der fein gehackten Zwiebel und kalter Butter einen glatten Mürbteig kneten. Zu einer Kugel formen und abgedeckt 1 Stunde im Kühlschrank ruhen lassen.",
"Lauch putzen, in feine Ringe schneiden. In kochendem Salzwasser kurz blanchieren (2-3 Minuten), abgießen, kalt abschrecken und gut abtropfen lassen.",
"Schinken in ca. 1 cm breite Streifen schneiden. In einer beschichteten Pfanne ohne Fett kurz anbraten. Abkühlen lassen.",
"2 Eier mit Sahne, Sauerrahm, Salz und Pfeffer verquirlen.",
"Den Teig auf einer bemehlten Fläche ausrollen und in eine gefettete Quiche- oder Tarteform (24 cm) legen. Den Rand ca. 2 cm hochziehen.",
"Lauch und Schinken gleichmäßig auf dem Teig verteilen. Die Eiersahne darüber gießen und den restlichen Käse darüber streuen.",
"Im vorgeheizten Backofen bei 200 °C Ober-/Unterhitze (oder 180 °C Heißluft) auf mittlerer Schiene ca. 40 Minuten goldbraun backen.",
"Etwas abkühlen lassen und in Stücke schneiden. Schmeckt warm und kalt hervorragend!"
],
"notizen": "Sahne/Sauerrahm können durch Schmand oder Crème fraîche ersetzt werden. Wer keine Quicheform hat, kann auch eine normale Springform nehmen. Teig-Ruhezeit (1h) ist in der Zubereitungszeit nicht eingerechnet — am besten vorher vorbereiten.",
"quelle": {
"name": "kochbar.de",
"url": "https://www.kochbar.de/rezept/291884/Quiche-Lauch-Schinken-Quiche.html",
"autor": "caramaus"
},
"erstellt": "2026-02-19"
}
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Regular → Executable
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
+5 -1
View File
@@ -1,7 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<Content Remove="publish/**" />
<None Remove="publish/**" />
</ItemGroup>
</Project>
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Regular → Executable
+1 -1
View File
@@ -9,4 +9,4 @@ var app = builder.Build();
app.UseStaticFiles();
app.MapRazorPages();
app.Run();
app.Run("http://0.0.0.0:18683");
@@ -1,14 +0,0 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5134",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
View File
File mode changed.
View File
File mode changed.
+1 -1
View File
@@ -1,5 +1,5 @@
{
"RezeptPath": "/var/lib/docker/workspace/stacks/openclaw/meleki/home/kochstube/rezepte",
"RezeptPath": "/home/node/.openclaw/workspace/projects/kochstube/rezepte",
"Urls": "http://0.0.0.0:18683",
"Logging": {
"LogLevel": {