From 5c19cf66917718a1b4817a679fe20586fb1e4fe1 Mon Sep 17 00:00:00 2001 From: Padreug Date: Wed, 29 Apr 2026 23:34:48 +0200 Subject: [PATCH] chore: initial extension manifest, config, gitignore --- .gitignore | 26 ++++++++++++++++++++++++++ config.json | 8 ++++++++ manifest.json | 9 +++++++++ static/image/restaurant.png | Bin 0 -> 10086 bytes 4 files changed, 43 insertions(+) create mode 100644 .gitignore create mode 100644 config.json create mode 100644 manifest.json create mode 100644 static/image/restaurant.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a20b677 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +__pycache__/ +*.py[cod] +*.egg-info/ +.venv/ +.env +.env.* +!.env.example + +# Build artifacts +dist/ +build/ + +# Editor / IDE +.vscode/ +.idea/ +*.swp + +# Lockfiles we don't ship +uv.lock +poetry.lock + +# Logs +*.log + +# OS junk +.DS_Store diff --git a/config.json b/config.json new file mode 100644 index 0000000..c4cb593 --- /dev/null +++ b/config.json @@ -0,0 +1,8 @@ +{ + "name": "Restaurant", + "short_description": "Restaurant CMS: menus, modifiers, inventory, orders, KDS, printer. Lightning-native via LNbits, Nostr-published menus (NIP-99) and order DMs (NIP-17).", + "tile": "/restaurant/static/image/restaurant.png", + "min_lnbits_version": "1.3.0", + "contributors": [], + "license": "MIT" +} diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..f5e7a44 --- /dev/null +++ b/manifest.json @@ -0,0 +1,9 @@ +{ + "repos": [ + { + "id": "restaurant", + "organisation": "lnbits", + "repository": "restaurant" + } + ] +} diff --git a/static/image/restaurant.png b/static/image/restaurant.png new file mode 100644 index 0000000000000000000000000000000000000000..e4b9849f8230aae154956ad1b8417b7af23bc519 GIT binary patch literal 10086 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 b=AXRQ1ATo?1DiJt3=9mOu6{1-oD!M