From 9b8aa74606f943a54ab92ad10590852dd3ab710b Mon Sep 17 00:00:00 2001 From: Steven Noack Date: Thu, 11 Dec 2025 11:11:45 +0100 Subject: [PATCH] Auto-init config with key from env vars --- .DS_Store | Bin 0 -> 6148 bytes Dockerfile | 2 +- scripts/init-config.js | 58 +++++++++++++++++++++++++++++++++++++++++ src/.DS_Store | Bin 0 -> 6148 bytes 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 .DS_Store create mode 100644 scripts/init-config.js create mode 100644 src/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..05108cd51098df62a4671092a7040838087805d9 GIT binary patch literal 6148 zcmeHLy-ve05I(no{xHyyF*5_ul_^v~OiX2h4)h1LNUaj}XGM7gSeSVS9)J-cp$Zl@ z7!VJ@#)QP3?WT6pFd|glN%oic?tEXqHg;VA5Vc9C3Qz%nA~r&&jNJkwKed$Q^vDLH zpgH>8YP}r{!c-&=umY^We^h|pT?e+H3+FJl-rvH@hv^#xzTfHxEgUNzHnul=llwi} z---PXSB+^m;SYPp+E8*a6$-Pu(1QuItm?2bO-GmNrnhq)?@Ukd<*BU0LW8 zijdWD+?C-VJcZn|0<3_oKwjNeX#d~OKL6WEe8&o~0!yWUaQwPo!$;D4YwF=>uXVAV sVk4utNTE!@PH)HZg0^D%UqKrBT)IH?G)4+>1dV?PNEx_e1^!flA52`&?EnA( literal 0 HcmV?d00001 diff --git a/Dockerfile b/Dockerfile index b4798b9..7412c13 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,4 +22,4 @@ RUN mkdir -p /app/config EXPOSE 3000 -CMD sh -c "node ./scripts/start.js start --key $NSECBUNKER_KEY" +CMD sh -c "node ./scripts/init-config.js && node ./scripts/start.js start --key $NSECBUNKER_KEY" diff --git a/scripts/init-config.js b/scripts/init-config.js new file mode 100644 index 0000000..153f443 --- /dev/null +++ b/scripts/init-config.js @@ -0,0 +1,58 @@ +const fs = require('fs'); +const path = require('path'); + +const configPath = '/app/config/nsecbunker.json'; + +// Default config with nip46 relay +const defaultConfig = { + "nostr": { + "relays": [ + "wss://nip46.stevennoack.de" + ] + }, + "admin": { + "npubs": [ + "npub1cxa0fa6vmq5evwpgk8dg6ul99ny5e2nd3hy5fa72g598t39nxy0surzuva" + ], + "adminRelays": [ + "wss://nip46.stevennoack.de" + ] + }, + "database": "sqlite://nsecbunker.db", + "logs": "./nsecbunker.log", + "keys": {}, + "verbose": true, + "version": "0.10.5" +}; + +// Check if config exists +if (!fs.existsSync(configPath)) { + console.log('📝 Creating default config...'); + fs.mkdirSync(path.dirname(configPath), { recursive: true }); + fs.writeFileSync(configPath, JSON.stringify(defaultConfig, null, 2)); + console.log('✅ Config created at', configPath); +} else { + console.log('✅ Config exists at', configPath); +} + +// Load existing config +const config = JSON.parse(fs.readFileSync(configPath, 'utf8')); + +// Add key if env vars are set and key doesn't exist +const keyName = process.env.NSECBUNKER_KEY; +const keyIv = process.env.NSECBUNKER_KEY_IV; +const keyData = process.env.NSECBUNKER_KEY_DATA; + +if (keyName && keyIv && keyData && !config.keys[keyName]) { + console.log(`🔑 Adding key "${keyName}" from env vars...`); + config.keys[keyName] = { + iv: keyIv, + data: keyData + }; + fs.writeFileSync(configPath, JSON.stringify(config, null, 2)); + console.log(`✅ Key "${keyName}" added`); +} else if (keyName && config.keys[keyName]) { + console.log(`✅ Key "${keyName}" already exists`); +} + +console.log('📋 Current keys:', Object.keys(config.keys)); diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..25ec9f9852c9e3689d71b48def8a9300dcd1ce49 GIT binary patch literal 6148 zcmeHKJ5B>J5FLjQMIfP+l-qEC)D$eyasZSLC?Ht~NZB|Nq~8;84{iVj5*;0)=N$CB z@i@D7J`xo|(M)7NuV==7`=of*L}Yriyi3#}qBa_1a|hiDV?VbgYxo&XHg1h8nov&n z<59Q26s;4gfGY6c6p#a8NR|rxg8%Q(7E>X6@Ct0xLQG+^Y%sP1_Sw(#kJ0S?cy(O< ztGMZHw_op>Vkv65JtuTScQoQNrS|WgF8V`0hhG(+XpO?wT-L?JJQCrNLz!#nV`&oe z_wMNKeT};HoyfKe$n$ZKa7|RJ;tI>Fjy&;E}vx-BIA2L`S z5$*5l15;4jAO%pf+1k5;+N%PpfGSWaz~@7P#+Z661>Mns&Rqe3O-wt(m_I2vC-Ini zECu0#8A%07s_|D0<4cW^bof&rUkXY(8Miam@jDxTLosf5%qK3KOe(0oDxeC)3T(+^ zhwJ~z`ul&Jq))1VDzH%sm}b_`dUz#YTbEvrYi)vdiN?lprJzee=gYAha4FtLa|U0+ W17Pa06vPZnKLnf%+NlD6s=yEJ&5m*a literal 0 HcmV?d00001