Enable Holesail tunnels by default; keep holesail as required dep
CI / test (push) Successful in 9m59s
CI / test (push) Successful in 9m59s
Holesail is on unless ENABLE_HOLESAIL=0/false/off. The holesail package remains a required dependency; docs and UI copy match the new default.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* Holesail tunnel RPC handlers.
|
||||
* Gated by ENABLE_HOLESAIL=1.
|
||||
* On by default; opt out with ENABLE_HOLESAIL=0.
|
||||
*/
|
||||
import {
|
||||
isHolesailEnabled,
|
||||
@@ -17,13 +17,15 @@ import logger from '../utils/logger.js'
|
||||
|
||||
function assertHolesail() {
|
||||
if (!isHolesailEnabled()) {
|
||||
const err = new Error('Holesail tunnels disabled. Set ENABLE_HOLESAIL=1 to enable.')
|
||||
const err = new Error(
|
||||
'Holesail tunnels disabled. Remove ENABLE_HOLESAIL=0 (enabled by default).'
|
||||
)
|
||||
err.code = 'FEATURE_DISABLED'
|
||||
throw err
|
||||
}
|
||||
if (!isHolesailAvailable()) {
|
||||
const err = new Error(
|
||||
'Holesail package is not available on this server. Install dependency "holesail".'
|
||||
'Holesail package is not available. Ensure dependency "holesail" is installed (required).'
|
||||
)
|
||||
err.code = 'FEATURE_DISABLED'
|
||||
throw err
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ if (isHolesailEnabled()) {
|
||||
` Holesail tunnels: ${hs.available ? 'enabled' : 'enabled but package missing'} (max ${hs.max})`
|
||||
)
|
||||
} else {
|
||||
console.log(' Holesail tunnels: off (set ENABLE_HOLESAIL=1 to enable)')
|
||||
console.log(' Holesail tunnels: off (ENABLE_HOLESAIL=0)')
|
||||
}
|
||||
console.log('═══════════════════════════════════════════════════════════')
|
||||
console.log('')
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
* peardock control plane: HyperDHT + protomux-rpc
|
||||
* Data plane tunnels: Holesail L4 TCP/UDP reverse proxy (hs:// keys)
|
||||
*
|
||||
* Gated by ENABLE_HOLESAIL=1. Package: holesail (AGPL-3.0).
|
||||
* Enabled by default. Set ENABLE_HOLESAIL=0 to disable.
|
||||
* Package: holesail (AGPL-3.0) — required dependency.
|
||||
*
|
||||
* @see https://github.com/holesail/holesail
|
||||
* @see docs/HOLESAIL.md
|
||||
@@ -62,8 +63,14 @@ function loadHolesail() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holesail tunnels are on by default.
|
||||
* Opt out with ENABLE_HOLESAIL=0 / false / off / no.
|
||||
*/
|
||||
export function isHolesailEnabled() {
|
||||
return process.env.ENABLE_HOLESAIL === '1' || process.env.ENABLE_HOLESAIL === 'true'
|
||||
const v = String(process.env.ENABLE_HOLESAIL ?? '1').trim().toLowerCase()
|
||||
if (v === '0' || v === 'false' || v === 'off' || v === 'no') return false
|
||||
return true
|
||||
}
|
||||
|
||||
export function isHolesailAvailable() {
|
||||
@@ -219,7 +226,7 @@ export function getTunnel(id) {
|
||||
*/
|
||||
export async function createTunnel(opts = {}) {
|
||||
if (!isHolesailEnabled()) {
|
||||
const err = new Error('Holesail tunnels disabled. Set ENABLE_HOLESAIL=1 to enable.')
|
||||
const err = new Error('Holesail tunnels disabled. Remove ENABLE_HOLESAIL=0 to re-enable (on by default).')
|
||||
err.code = 'FEATURE_DISABLED'
|
||||
throw err
|
||||
}
|
||||
|
||||
@@ -89,8 +89,10 @@ export function getMetricsSnapshot(extra = {}) {
|
||||
features: {
|
||||
swarm: process.env.ENABLE_SWARM === '1' || process.env.ENABLE_SWARM === 'true',
|
||||
plugins: process.env.ENABLE_PLUGINS === '1' || process.env.ENABLE_PLUGINS === 'true',
|
||||
holesail:
|
||||
process.env.ENABLE_HOLESAIL === '1' || process.env.ENABLE_HOLESAIL === 'true',
|
||||
holesail: (() => {
|
||||
const v = String(process.env.ENABLE_HOLESAIL ?? '1').trim().toLowerCase()
|
||||
return !(v === '0' || v === 'false' || v === 'off' || v === 'no')
|
||||
})(),
|
||||
peerAllowlist:
|
||||
process.env.PEARDOCK_PEER_ALLOWLIST === '1' ||
|
||||
process.env.PEARDOCK_PEER_ALLOWLIST === 'true',
|
||||
|
||||
Reference in New Issue
Block a user