mirror of
https://github.com/kind-0/nsecbunkerd.git
synced 2026-08-31 07:31:02 +00:00
Enable env variable for passphrase in decryption
Added support for using an environment variable as a passphrase for decryption, with fallback to interactive prompt.
This commit is contained in:
parent
e579d86946
commit
a907faa4d1
@ -167,23 +167,44 @@ async function startKey(key: string, keyData: KeyData, verbose: boolean): Promis
|
|||||||
|
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
if (keyData.iv && keyData.data) {
|
if (keyData.iv && keyData.data) {
|
||||||
rl.question(`Enter passphrase for ${key}: `, (passphrase: string) => {
|
// Check for environment variable first
|
||||||
|
const envPassphrase = process.env.NSECBUNKER_PASSPHRASE;
|
||||||
|
|
||||||
|
if (envPassphrase) {
|
||||||
try {
|
try {
|
||||||
const { iv, data } = keyData;
|
const { iv, data } = keyData;
|
||||||
const nsec = decryptNsec(iv!, data!, passphrase);
|
const nsec = decryptNsec(iv!, data!, envPassphrase);
|
||||||
|
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
console.log(`Starting ${key}...`);
|
console.log(`Starting ${key} (using env passphrase)...`);
|
||||||
}
|
}
|
||||||
|
|
||||||
rl.close();
|
rl.close();
|
||||||
|
|
||||||
resolve(nsec);
|
resolve(nsec);
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
console.log(e.message);
|
console.log(`Failed to decrypt with env passphrase: ${e.message}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
});
|
} else {
|
||||||
|
// Fallback to interactive prompt
|
||||||
|
rl.question(`Enter passphrase for ${key}: `, (passphrase: string) => {
|
||||||
|
try {
|
||||||
|
const { iv, data } = keyData;
|
||||||
|
const nsec = decryptNsec(iv!, data!, passphrase);
|
||||||
|
|
||||||
|
if (verbose) {
|
||||||
|
console.log(`Starting ${key}...`);
|
||||||
|
}
|
||||||
|
|
||||||
|
rl.close();
|
||||||
|
|
||||||
|
resolve(nsec);
|
||||||
|
} catch (e: any) {
|
||||||
|
console.log(e.message);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
} else if (keyData.key) {
|
} else if (keyData.key) {
|
||||||
const nsec = keyData.key;
|
const nsec = keyData.key;
|
||||||
|
|
||||||
@ -197,3 +218,9 @@ async function startKey(key: string, keyData: KeyData, verbose: boolean): Promis
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Commit und push. Railway baut neu. Dann sollte in den Logs stehen:
|
||||||
|
```
|
||||||
|
🔑 Starting keys ['steven']
|
||||||
|
Starting steven (using env passphrase)...
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user