groups:
- name: Blindspark Configuration
description: Configure the HiveRelay appliance
- name: Network Configuration
description: Configure networking for Blindspark
- name: Storage Configuration
description: Configure persistent HiveRelay storage
- name: Labels Configuration
description: Configure container labels
- name: Resources Configuration
description: Configure resource limits
questions:
- variable: TZ
group: Blindspark Configuration
label: Timezone
schema:
type: string
default: Etc/UTC
required: true
$ref:
- definitions/timezone
- variable: blindspark
label: ""
group: Blindspark Configuration
schema:
type: dict
attrs:
- variable: api_key
label: Management API Key
description: |
Secret used to authenticate HiveRelay management requests.</br>
Use a unique random value of at least 32 characters and store it in a password manager.
schema:
type: string
default: ""
min_length: 32
required: true
private: true
- variable: accept_mode
label: Incoming Seed Request Mode
description: Controls how new requests to store data are handled.
schema:
type: string
default: review
required: true
enum:
- value: review
description: Queue requests for operator review (Recommended)
- value: open
description: Accept valid requests automatically
- value: allowlist
description: Accept requests only from configured publishers
- value: closed
description: Reject new incoming seed requests
- variable: max_storage_gb
label: First-Boot Storage Cap (GB)
description: |
Maximum storage made available to HiveRelay on first boot.</br>
A value saved later from the HiveRelay management interface takes precedence on subsequent restarts.
schema:
type: int
default: 10
min: 1
max: 102400
required: true
- variable: log_level
label: Log Level
schema:
type: string
default: info
required: true
enum:
- value: error
description: Errors only
- value: warn
description: Warnings and errors
- value: info
description: Normal operational messages
- value: debug
description: Verbose diagnostics
- variable: simple_dashboard
label: Use the Simple Blindspark Dashboard
description: Show the appliance-focused status dashboard instead of the full operator interface.
schema:
type: boolean
default: true
- variable: expose_token
label: Expose Management Token in Dashboard
description: |
Embeds the management token in dashboard pages so browser controls can authenticate.</br>
Leave disabled unless the published port is restricted to a trusted network or protected by an authenticating reverse proxy.
schema:
type: boolean
default: false
- variable: holesail
label: Enable Holesail Transport
description: Enable the optional Holesail transport for additional NAT traversal support.
schema:
type: boolean
default: false
- variable: additional_envs
label: Additional Environment Variables
schema:
type: list
default: []
items:
- variable: env
label: Environment Variable
schema:
type: dict
attrs:
- variable: name
label: Name
schema:
type: string
required: true
- variable: value
label: Value
schema:
type: string
- variable: network
label: ""
group: Network Configuration
schema:
type: dict
attrs:
- variable: web_port
label: Dashboard and API Port
schema:
type: dict
attrs:
- variable: bind_mode
label: Port Bind Mode
description: |
The port bind mode.</br>
- Publish: Publish the port on the TrueNAS host.</br>
- Expose: Expose the port only to joined container networks.</br>
- None: Do not publish or explicitly expose the port.</br>
The image still declares its internal API port.
schema:
type: string
default: published
enum:
- value: published
description: Publish port on the host for external access
- value: exposed
description: Expose port for inter-container communication
- value: ""
description: None
- variable: port_number
label: Port Number
schema:
type: int
default: 30452
show_if: [["bind_mode", "=", "published"]]
min: 1
max: 65535
required: true
- variable: host_ips
label: Host IPs
description: IP addresses on the TrueNAS host where the port is published.
schema:
type: list
show_if: [["bind_mode", "=", "published"]]
default: []
items:
- variable: host_ip
label: Host IP
schema:
type: string
required: true
$ref:
- definitions/node_bind_ip
- variable: networks
label: Networks
description: Existing Docker networks for the Blindspark container to join.
schema:
type: list
show_if: [["host_network", "=", false]]
default: []
items:
- variable: network
label: Network
schema:
type: dict
attrs:
- variable: name
label: Name
schema:
type: string
default: ""
required: true
- variable: containers
label: Containers
schema:
type: list
items:
- variable: container
label: Container
schema:
type: dict
attrs:
- variable: name
label: Container Name
schema:
type: string
required: true
enum:
- value: blindspark
description: blindspark
- variable: config
label: Container Network Configuration
schema:
type: dict
attrs:
- variable: aliases
label: Aliases
schema:
type: list
default: []
items:
- variable: alias
label: Alias
schema:
type: string
- variable: interface_name
label: Interface Name
schema:
type: string
- variable: mac_address
label: MAC Address
schema:
type: string
- variable: ipv4_address
label: IPv4 Address
schema:
type: string
- variable: ipv6_address
label: IPv6 Address
schema:
type: string
- variable: gw_priority
label: Gateway Priority
schema:
type: int
"null": true
- variable: priority
label: Priority
schema:
type: int
"null": true
- variable: host_network
label: Host Network
description: Bind directly to the TrueNAS host network. Bridge networking is recommended.
schema:
type: boolean
default: false
- variable: storage
label: ""
group: Storage Configuration
schema:
type: dict
attrs:
- variable: data
label: HiveRelay Data Storage
description: Stores the relay identity, configuration, Hypercores, and seeded content.
schema:
type: dict
attrs:
- variable: type
label: Type
description: |
ixVolume: A dataset created automatically by TrueNAS.</br>
Host Path: A path that already exists on the TrueNAS system.
schema:
type: string
required: true
default: ix_volume
enum:
- value: host_path
description: Host Path (Path that already exists on the system)
- value: ix_volume
description: ixVolume (Dataset created automatically by the system)
- variable: ix_volume_config
label: ixVolume Configuration
schema:
type: dict
show_if: [["type", "=", "ix_volume"]]
$ref:
- normalize/ix_volume
attrs:
- variable: acl_enable
label: Enable ACL
schema:
type: boolean
default: false
- variable: dataset_name
label: Dataset Name
schema:
type: string
required: true
hidden: true
default: data
- variable: acl_entries
label: ACL Configuration
schema:
type: dict
show_if: [["acl_enable", "=", true]]
attrs: []
- variable: host_path_config
label: Host Path Configuration
schema:
type: dict
show_if: [["type", "=", "host_path"]]
attrs:
- variable: acl_enable
label: Enable ACL
schema:
type: boolean
default: false
- variable: acl
label: ACL Configuration
schema:
type: dict
show_if: [["acl_enable", "=", true]]
attrs: []
$ref:
- normalize/acl
- variable: path
label: Host Path
schema:
type: hostpath
show_if: [["acl_enable", "=", false]]
required: true
- variable: labels
label: ""
group: Labels Configuration
schema:
type: list
default: []
items:
- variable: label
label: Label
schema:
type: dict
attrs:
- variable: key
label: Key
schema:
type: string
required: true
- variable: value
label: Value
schema:
type: string
required: true
- variable: containers
label: Containers
description: Containers where the label is applied.
schema:
type: list
items:
- variable: container
label: Container
schema:
type: string
required: true
enum:
- value: blindspark
description: blindspark
- variable: resources
label: ""
group: Resources Configuration
schema:
type: dict
attrs:
- variable: limits
label: Limits
schema:
type: dict
attrs:
- variable: cpus
label: CPUs
description: Maximum CPUs available to Blindspark.
schema:
type: int
default: 2
required: true
- variable: memory
label: Memory (MB)
description: Maximum memory available to Blindspark.
schema:
type: int
default: 2048
required: true