add config option to enable public REST endpoints

Co-authored-by: Nathan Fretz <nmfretz@gmail.com>
This commit is contained in:
Riccardo Casatta 2023-09-20 16:53:57 -07:00 committed by nmfretz
parent 7163f73f46
commit fd1cedbbd9
2 changed files with 32 additions and 0 deletions

View File

@ -15,6 +15,7 @@ const DEFAULT_ADVANCED_SETTINGS = {
incomingConnections: false, incomingConnections: false,
cacheSizeMB: 450, cacheSizeMB: 450,
mempoolFullRbf: false, mempoolFullRbf: false,
rest: false,
prune: { prune: {
enabled: false, enabled: false,
pruneSizeGB: 300, pruneSizeGB: 300,
@ -165,6 +166,15 @@ function settingsToMultilineConfString(settings) {
umbrelBitcoinConfig.push(`listenonion=${listen}`); umbrelBitcoinConfig.push(`listenonion=${listen}`);
umbrelBitcoinConfig.push(`i2pacceptincoming=${listen}`); umbrelBitcoinConfig.push(`i2pacceptincoming=${listen}`);
// [RPC]
umbrelBitcoinConfig.push("");
umbrelBitcoinConfig.push("# [rpc]");
if (settings.rest) {
umbrelBitcoinConfig.push("# Accept public REST requests.");
umbrelBitcoinConfig.push('rest=1');
}
umbrelBitcoinConfig.push("");
umbrelBitcoinConfig.push(`# Required to configure Tor control port properly`); umbrelBitcoinConfig.push(`# Required to configure Tor control port properly`);
umbrelBitcoinConfig.push(`[${settings.network}]`); umbrelBitcoinConfig.push(`[${settings.network}]`);
umbrelBitcoinConfig.push(`bind=0.0.0.0:8333`); umbrelBitcoinConfig.push(`bind=0.0.0.0:8333`);

View File

@ -187,6 +187,28 @@
<hr class="advanced-settings-divider" /> <hr class="advanced-settings-divider" />
<div>
<div class="d-flex justify-content-between align-items-center">
<div class="w-75">
<label class="mb-0" for="rest">
<p class="font-weight-bold mb-0">Enable REST API</p>
</label>
</div>
<div>
<toggle-switch
id="rest"
class="align-self-center"
:on="settings.rest"
@toggle="status => (settings.rest = status)"
></toggle-switch>
</div>
</div>
<small class="w-sm-75 d-block text-muted mt-1">
Accept public REST requests to your node. Be sure to understand the risks and limitations of an unauthenticated REST interface before enabling this feature.
</small>
</div>
<hr class="advanced-settings-divider" />
<div> <div>
<div class="d-flex justify-content-between align-items-center"> <div class="d-flex justify-content-between align-items-center">