diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..05108cd Binary files /dev/null and b/.DS_Store differ 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 0000000..25ec9f9 Binary files /dev/null and b/src/.DS_Store differ