Node Red¶
| Description / name | Input element |
|---|---|
| Your domain name |
Overview¶
Node Red is a flow-based development tool for visual programming developed originally by IBM for wiring together hardware devices, APIs and online services as part of the Internet of Things.
Deployment¶
sb install sandbox-node-red
Usage¶
Visit https://node-red.iYOUR_DOMAIN_NAMEi.
Basics¶
Addons and/or plugins can be installed to Node Red to add functionality. In Node Red they are called palettes. To install a palette, go to the menu in the upper right corner (the hamburger, 3 little horizontal lines), select Manage palette, then Install. You can search for a palette by name, or you can install a palette by pasting the URL of the palette into the Install tab.
Add this palette to connect to Home Assistant. (Requires Home Assistant to be installed and running, and HACS to be installed in Home Assistant.) For more information, see the Home Assistant page.
Role Defaults¶
Use the Inventory to customize variables. (1)
-
This role supports multiple instances via
node_red_instances.Example override
node_red_role_web_subdomain: "custom"Applies to all instances of node_red
node_red2_web_subdomain: "custom2"Applies to the instance named node_red2
Avoid overriding variables ending in
_defaultWhen overriding variables that end in
_default(likenode_red_docker_envs_default), you replace the entire default configuration. Future updates that add new default values will not be applied to your setup, potentially breaking functionality.Instead, use the corresponding
_customvariable (likenode_red_docker_envs_custom) to add your changes. Custom values are merged with defaults, ensuring you receive updates.
node_red_instances
# Type: list
node_red_instances: ["node-red"]
Example Override
# Type: list
node_red_instances: ["node_red", "node_red2"]
node_red_role_web_subdomainnode_red2_web_subdomain
# Type: string
node_red_role_web_subdomain: "{{ node_red_name }}"
# Type: string
node_red2_web_subdomain: "{{ node_red_name }}"
node_red_role_web_domainnode_red2_web_domain
# Type: string
node_red_role_web_domain: "{{ user.domain }}"
# Type: string
node_red2_web_domain: "{{ user.domain }}"
node_red_role_web_portnode_red2_web_port
# Type: string
node_red_role_web_port: "1880"
# Type: string
node_red2_web_port: "1880"
node_red_role_web_urlnode_red2_web_url
# Type: string
node_red_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='node_red') + '.' + lookup('role_var', '_web_domain', role='node_red')
if (lookup('role_var', '_web_subdomain', role='node_red') | length > 0)
else lookup('role_var', '_web_domain', role='node_red')) }}"
# Type: string
node_red2_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='node_red') + '.' + lookup('role_var', '_web_domain', role='node_red')
if (lookup('role_var', '_web_subdomain', role='node_red') | length > 0)
else lookup('role_var', '_web_domain', role='node_red')) }}"
node_red_role_dns_recordnode_red2_dns_record
# Type: string
node_red_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='node_red') }}"
# Type: string
node_red2_dns_record: "{{ lookup('role_var', '_web_subdomain', role='node_red') }}"
node_red_role_dns_zonenode_red2_dns_zone
# Type: string
node_red_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='node_red') }}"
# Type: string
node_red2_dns_zone: "{{ lookup('role_var', '_web_domain', role='node_red') }}"
node_red_role_dns_proxynode_red2_dns_proxy
# Type: bool (true/false)
node_red_role_dns_proxy: "{{ dns_proxied }}"
# Type: bool (true/false)
node_red2_dns_proxy: "{{ dns_proxied }}"
node_red_role_traefik_sso_middlewarenode_red2_traefik_sso_middleware
# Type: string
node_red_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"
# Type: string
node_red2_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"
node_red_role_traefik_middleware_defaultnode_red2_traefik_middleware_default
# Type: string
node_red_role_traefik_middleware_default: "{{ traefik_default_middleware }}"
# Type: string
node_red2_traefik_middleware_default: "{{ traefik_default_middleware }}"
node_red_role_traefik_middleware_customnode_red2_traefik_middleware_custom
# Type: string
node_red_role_traefik_middleware_custom: ""
# Type: string
node_red2_traefik_middleware_custom: ""
node_red_role_traefik_certresolvernode_red2_traefik_certresolver
# Type: string
node_red_role_traefik_certresolver: "{{ traefik_default_certresolver }}"
# Type: string
node_red2_traefik_certresolver: "{{ traefik_default_certresolver }}"
node_red_role_traefik_enablednode_red2_traefik_enabled
# Type: bool (true/false)
node_red_role_traefik_enabled: true
# Type: bool (true/false)
node_red2_traefik_enabled: true
node_red_role_traefik_api_enablednode_red2_traefik_api_enabled
# Type: bool (true/false)
node_red_role_traefik_api_enabled: true
# Type: bool (true/false)
node_red2_traefik_api_enabled: true
node_red_role_traefik_api_endpointnode_red2_traefik_api_endpoint
# Type: string
node_red_role_traefik_api_endpoint: "PathPrefix(`/auth`) || PathPrefix(`/settings`) || PathPrefix(`/flows`) || PathPrefix(`/flow`) || PathPrefix(`/nodes`)"
# Type: string
node_red2_traefik_api_endpoint: "PathPrefix(`/auth`) || PathPrefix(`/settings`) || PathPrefix(`/flows`) || PathPrefix(`/flow`) || PathPrefix(`/nodes`)"
Container
node_red_role_docker_containernode_red2_docker_container
# Type: string
node_red_role_docker_container: "{{ node_red_name }}"
# Type: string
node_red2_docker_container: "{{ node_red_name }}"
Image
node_red_role_docker_image_pullnode_red2_docker_image_pull
# Type: bool (true/false)
node_red_role_docker_image_pull: true
# Type: bool (true/false)
node_red2_docker_image_pull: true
node_red_role_docker_image_reponode_red2_docker_image_repo
# Type: string
node_red_role_docker_image_repo: "nodered/node-red"
# Type: string
node_red2_docker_image_repo: "nodered/node-red"
node_red_role_docker_image_tagnode_red2_docker_image_tag
# Type: string
node_red_role_docker_image_tag: "latest"
# Type: string
node_red2_docker_image_tag: "latest"
node_red_role_docker_imagenode_red2_docker_image
# Type: string
node_red_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='node_red') }}:{{ lookup('role_var', '_docker_image_tag', role='node_red') }}"
# Type: string
node_red2_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='node_red') }}:{{ lookup('role_var', '_docker_image_tag', role='node_red') }}"
Envs
node_red_role_docker_envs_defaultnode_red2_docker_envs_default
# Type: dict
node_red_role_docker_envs_default:
TZ: "{{ tz }}"
# Type: dict
node_red2_docker_envs_default:
TZ: "{{ tz }}"
node_red_role_docker_envs_customnode_red2_docker_envs_custom
# Type: dict
node_red_role_docker_envs_custom: {}
# Type: dict
node_red2_docker_envs_custom: {}
Volumes
node_red_role_docker_volumes_defaultnode_red2_docker_volumes_default
# Type: list
node_red_role_docker_volumes_default:
- "{{ lookup('role_var', '_paths_location', role='node_red') }}:/data"
# Type: list
node_red2_docker_volumes_default:
- "{{ lookup('role_var', '_paths_location', role='node_red') }}:/data"
node_red_role_docker_volumes_customnode_red2_docker_volumes_custom
# Type: list
node_red_role_docker_volumes_custom: []
# Type: list
node_red2_docker_volumes_custom: []
Hostname
node_red_role_docker_hostnamenode_red2_docker_hostname
# Type: string
node_red_role_docker_hostname: "{{ node_red_name }}"
# Type: string
node_red2_docker_hostname: "{{ node_red_name }}"
Networks
node_red_role_docker_networks_aliasnode_red2_docker_networks_alias
# Type: string
node_red_role_docker_networks_alias: "{{ node_red_name }}"
# Type: string
node_red2_docker_networks_alias: "{{ node_red_name }}"
node_red_role_docker_networks_defaultnode_red2_docker_networks_default
# Type: list
node_red_role_docker_networks_default: []
# Type: list
node_red2_docker_networks_default: []
node_red_role_docker_networks_customnode_red2_docker_networks_custom
# Type: list
node_red_role_docker_networks_custom: []
# Type: list
node_red2_docker_networks_custom: []
Restart Policy
node_red_role_docker_restart_policynode_red2_docker_restart_policy
# Type: string
node_red_role_docker_restart_policy: unless-stopped
# Type: string
node_red2_docker_restart_policy: unless-stopped
State
node_red_role_docker_statenode_red2_docker_state
# Type: string
node_red_role_docker_state: started
# Type: string
node_red2_docker_state: started
User
node_red_role_docker_usernode_red2_docker_user
# Type: string
node_red_role_docker_user: "{{ uid }}:{{ gid }}"
# Type: string
node_red2_docker_user: "{{ uid }}:{{ gid }}"
The following advanced options are available via create_docker_container but are not defined in the role. See: docker_container module
Resource Limits
node_red_role_docker_blkio_weightnode_red2_docker_blkio_weight
# Type: int
node_red_role_docker_blkio_weight:
# Type: int
node_red2_docker_blkio_weight:
node_red_role_docker_cpu_periodnode_red2_docker_cpu_period
# Type: int
node_red_role_docker_cpu_period:
# Type: int
node_red2_docker_cpu_period:
node_red_role_docker_cpu_quotanode_red2_docker_cpu_quota
# Type: int
node_red_role_docker_cpu_quota:
# Type: int
node_red2_docker_cpu_quota:
node_red_role_docker_cpu_sharesnode_red2_docker_cpu_shares
# Type: int
node_red_role_docker_cpu_shares:
# Type: int
node_red2_docker_cpu_shares:
node_red_role_docker_cpusnode_red2_docker_cpus
# Type: string
node_red_role_docker_cpus:
# Type: string
node_red2_docker_cpus:
node_red_role_docker_cpuset_cpusnode_red2_docker_cpuset_cpus
# Type: string
node_red_role_docker_cpuset_cpus:
# Type: string
node_red2_docker_cpuset_cpus:
node_red_role_docker_cpuset_memsnode_red2_docker_cpuset_mems
# Type: string
node_red_role_docker_cpuset_mems:
# Type: string
node_red2_docker_cpuset_mems:
node_red_role_docker_kernel_memorynode_red2_docker_kernel_memory
# Type: string
node_red_role_docker_kernel_memory:
# Type: string
node_red2_docker_kernel_memory:
node_red_role_docker_memorynode_red2_docker_memory
# Type: string
node_red_role_docker_memory:
# Type: string
node_red2_docker_memory:
node_red_role_docker_memory_reservationnode_red2_docker_memory_reservation
# Type: string
node_red_role_docker_memory_reservation:
# Type: string
node_red2_docker_memory_reservation:
node_red_role_docker_memory_swapnode_red2_docker_memory_swap
# Type: string
node_red_role_docker_memory_swap:
# Type: string
node_red2_docker_memory_swap:
node_red_role_docker_memory_swappinessnode_red2_docker_memory_swappiness
# Type: int
node_red_role_docker_memory_swappiness:
# Type: int
node_red2_docker_memory_swappiness:
node_red_role_docker_shm_sizenode_red2_docker_shm_size
# Type: string
node_red_role_docker_shm_size:
# Type: string
node_red2_docker_shm_size:
Security & Devices
node_red_role_docker_cap_dropnode_red2_docker_cap_drop
# Type: list
node_red_role_docker_cap_drop:
# Type: list
node_red2_docker_cap_drop:
node_red_role_docker_cgroupns_modenode_red2_docker_cgroupns_mode
# Type: string
node_red_role_docker_cgroupns_mode:
# Type: string
node_red2_docker_cgroupns_mode:
node_red_role_docker_device_cgroup_rulesnode_red2_docker_device_cgroup_rules
# Type: list
node_red_role_docker_device_cgroup_rules:
# Type: list
node_red2_docker_device_cgroup_rules:
node_red_role_docker_device_read_bpsnode_red2_docker_device_read_bps
# Type: list
node_red_role_docker_device_read_bps:
# Type: list
node_red2_docker_device_read_bps:
node_red_role_docker_device_read_iopsnode_red2_docker_device_read_iops
# Type: list
node_red_role_docker_device_read_iops:
# Type: list
node_red2_docker_device_read_iops:
node_red_role_docker_device_requestsnode_red2_docker_device_requests
# Type: list
node_red_role_docker_device_requests:
# Type: list
node_red2_docker_device_requests:
node_red_role_docker_device_write_bpsnode_red2_docker_device_write_bps
# Type: list
node_red_role_docker_device_write_bps:
# Type: list
node_red2_docker_device_write_bps:
node_red_role_docker_device_write_iopsnode_red2_docker_device_write_iops
# Type: list
node_red_role_docker_device_write_iops:
# Type: list
node_red2_docker_device_write_iops:
node_red_role_docker_devicesnode_red2_docker_devices
# Type: list
node_red_role_docker_devices:
# Type: list
node_red2_docker_devices:
node_red_role_docker_devices_defaultnode_red2_docker_devices_default
# Type: string
node_red_role_docker_devices_default:
# Type: string
node_red2_docker_devices_default:
node_red_role_docker_groupsnode_red2_docker_groups
# Type: list
node_red_role_docker_groups:
# Type: list
node_red2_docker_groups:
node_red_role_docker_privilegednode_red2_docker_privileged
# Type: bool (true/false)
node_red_role_docker_privileged:
# Type: bool (true/false)
node_red2_docker_privileged:
node_red_role_docker_security_optsnode_red2_docker_security_opts
# Type: list
node_red_role_docker_security_opts:
# Type: list
node_red2_docker_security_opts:
node_red_role_docker_userns_modenode_red2_docker_userns_mode
# Type: string
node_red_role_docker_userns_mode:
# Type: string
node_red2_docker_userns_mode:
Networking
node_red_role_docker_dns_optsnode_red2_docker_dns_opts
# Type: list
node_red_role_docker_dns_opts:
# Type: list
node_red2_docker_dns_opts:
node_red_role_docker_dns_search_domainsnode_red2_docker_dns_search_domains
# Type: list
node_red_role_docker_dns_search_domains:
# Type: list
node_red2_docker_dns_search_domains:
node_red_role_docker_dns_serversnode_red2_docker_dns_servers
# Type: list
node_red_role_docker_dns_servers:
# Type: list
node_red2_docker_dns_servers:
node_red_role_docker_domainnamenode_red2_docker_domainname
# Type: string
node_red_role_docker_domainname:
# Type: string
node_red2_docker_domainname:
node_red_role_docker_exposed_portsnode_red2_docker_exposed_ports
# Type: list
node_red_role_docker_exposed_ports:
# Type: list
node_red2_docker_exposed_ports:
node_red_role_docker_hostsnode_red2_docker_hosts
# Type: dict
node_red_role_docker_hosts:
# Type: dict
node_red2_docker_hosts:
node_red_role_docker_hosts_use_commonnode_red2_docker_hosts_use_common
# Type: bool (true/false)
node_red_role_docker_hosts_use_common:
# Type: bool (true/false)
node_red2_docker_hosts_use_common:
node_red_role_docker_ipc_modenode_red2_docker_ipc_mode
# Type: string
node_red_role_docker_ipc_mode:
# Type: string
node_red2_docker_ipc_mode:
node_red_role_docker_linksnode_red2_docker_links
# Type: list
node_red_role_docker_links:
# Type: list
node_red2_docker_links:
node_red_role_docker_network_modenode_red2_docker_network_mode
# Type: string
node_red_role_docker_network_mode:
# Type: string
node_red2_docker_network_mode:
node_red_role_docker_pid_modenode_red2_docker_pid_mode
# Type: string
node_red_role_docker_pid_mode:
# Type: string
node_red2_docker_pid_mode:
node_red_role_docker_portsnode_red2_docker_ports
# Type: list
node_red_role_docker_ports:
# Type: list
node_red2_docker_ports:
node_red_role_docker_utsnode_red2_docker_uts
# Type: string
node_red_role_docker_uts:
# Type: string
node_red2_docker_uts:
Storage
node_red_role_docker_keep_volumesnode_red2_docker_keep_volumes
# Type: bool (true/false)
node_red_role_docker_keep_volumes:
# Type: bool (true/false)
node_red2_docker_keep_volumes:
node_red_role_docker_mountsnode_red2_docker_mounts
# Type: list
node_red_role_docker_mounts:
# Type: list
node_red2_docker_mounts:
node_red_role_docker_storage_optsnode_red2_docker_storage_opts
# Type: dict
node_red_role_docker_storage_opts:
# Type: dict
node_red2_docker_storage_opts:
node_red_role_docker_tmpfsnode_red2_docker_tmpfs
# Type: list
node_red_role_docker_tmpfs:
# Type: list
node_red2_docker_tmpfs:
node_red_role_docker_volume_drivernode_red2_docker_volume_driver
# Type: string
node_red_role_docker_volume_driver:
# Type: string
node_red2_docker_volume_driver:
node_red_role_docker_volumes_fromnode_red2_docker_volumes_from
# Type: list
node_red_role_docker_volumes_from:
# Type: list
node_red2_docker_volumes_from:
node_red_role_docker_volumes_globalnode_red2_docker_volumes_global
# Type: bool (true/false)
node_red_role_docker_volumes_global:
# Type: bool (true/false)
node_red2_docker_volumes_global:
node_red_role_docker_working_dirnode_red2_docker_working_dir
# Type: string
node_red_role_docker_working_dir:
# Type: string
node_red2_docker_working_dir:
Monitoring & Lifecycle
node_red_role_docker_auto_removenode_red2_docker_auto_remove
# Type: bool (true/false)
node_red_role_docker_auto_remove:
# Type: bool (true/false)
node_red2_docker_auto_remove:
node_red_role_docker_cleanupnode_red2_docker_cleanup
# Type: bool (true/false)
node_red_role_docker_cleanup:
# Type: bool (true/false)
node_red2_docker_cleanup:
node_red_role_docker_force_killnode_red2_docker_force_kill
# Type: string
node_red_role_docker_force_kill:
# Type: string
node_red2_docker_force_kill:
node_red_role_docker_healthchecknode_red2_docker_healthcheck
# Type: dict
node_red_role_docker_healthcheck:
# Type: dict
node_red2_docker_healthcheck:
node_red_role_docker_healthy_wait_timeoutnode_red2_docker_healthy_wait_timeout
# Type: int
node_red_role_docker_healthy_wait_timeout:
# Type: int
node_red2_docker_healthy_wait_timeout:
node_red_role_docker_initnode_red2_docker_init
# Type: bool (true/false)
node_red_role_docker_init:
# Type: bool (true/false)
node_red2_docker_init:
node_red_role_docker_kill_signalnode_red2_docker_kill_signal
# Type: string
node_red_role_docker_kill_signal:
# Type: string
node_red2_docker_kill_signal:
node_red_role_docker_log_drivernode_red2_docker_log_driver
# Type: string
node_red_role_docker_log_driver:
# Type: string
node_red2_docker_log_driver:
node_red_role_docker_log_optionsnode_red2_docker_log_options
# Type: dict
node_red_role_docker_log_options:
# Type: dict
node_red2_docker_log_options:
node_red_role_docker_oom_killernode_red2_docker_oom_killer
# Type: bool (true/false)
node_red_role_docker_oom_killer:
# Type: bool (true/false)
node_red2_docker_oom_killer:
node_red_role_docker_oom_score_adjnode_red2_docker_oom_score_adj
# Type: int
node_red_role_docker_oom_score_adj:
# Type: int
node_red2_docker_oom_score_adj:
node_red_role_docker_output_logsnode_red2_docker_output_logs
# Type: bool (true/false)
node_red_role_docker_output_logs:
# Type: bool (true/false)
node_red2_docker_output_logs:
node_red_role_docker_pausednode_red2_docker_paused
# Type: bool (true/false)
node_red_role_docker_paused:
# Type: bool (true/false)
node_red2_docker_paused:
node_red_role_docker_recreatenode_red2_docker_recreate
# Type: bool (true/false)
node_red_role_docker_recreate:
# Type: bool (true/false)
node_red2_docker_recreate:
node_red_role_docker_restart_retriesnode_red2_docker_restart_retries
# Type: int
node_red_role_docker_restart_retries:
# Type: int
node_red2_docker_restart_retries:
node_red_role_docker_stop_timeoutnode_red2_docker_stop_timeout
# Type: int
node_red_role_docker_stop_timeout:
# Type: int
node_red2_docker_stop_timeout:
Other Options
node_red_role_docker_capabilitiesnode_red2_docker_capabilities
# Type: list
node_red_role_docker_capabilities:
# Type: list
node_red2_docker_capabilities:
node_red_role_docker_cgroup_parentnode_red2_docker_cgroup_parent
# Type: string
node_red_role_docker_cgroup_parent:
# Type: string
node_red2_docker_cgroup_parent:
node_red_role_docker_commandsnode_red2_docker_commands
# Type: list
node_red_role_docker_commands:
# Type: list
node_red2_docker_commands:
node_red_role_docker_create_timeoutnode_red2_docker_create_timeout
# Type: int
node_red_role_docker_create_timeout:
# Type: int
node_red2_docker_create_timeout:
node_red_role_docker_entrypointnode_red2_docker_entrypoint
# Type: string
node_red_role_docker_entrypoint:
# Type: string
node_red2_docker_entrypoint:
node_red_role_docker_env_filenode_red2_docker_env_file
# Type: string
node_red_role_docker_env_file:
# Type: string
node_red2_docker_env_file:
node_red_role_docker_labelsnode_red2_docker_labels
# Type: dict
node_red_role_docker_labels:
# Type: dict
node_red2_docker_labels:
node_red_role_docker_labels_use_commonnode_red2_docker_labels_use_common
# Type: bool (true/false)
node_red_role_docker_labels_use_common:
# Type: bool (true/false)
node_red2_docker_labels_use_common:
node_red_role_docker_read_onlynode_red2_docker_read_only
# Type: bool (true/false)
node_red_role_docker_read_only:
# Type: bool (true/false)
node_red2_docker_read_only:
node_red_role_docker_runtimenode_red2_docker_runtime
# Type: string
node_red_role_docker_runtime:
# Type: string
node_red2_docker_runtime:
node_red_role_docker_sysctlsnode_red2_docker_sysctls
# Type: list
node_red_role_docker_sysctls:
# Type: list
node_red2_docker_sysctls:
node_red_role_docker_ulimitsnode_red2_docker_ulimits
# Type: list
node_red_role_docker_ulimits:
# Type: list
node_red2_docker_ulimits:
node_red_role_autoheal_enablednode_red2_autoheal_enabled
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
node_red_role_autoheal_enabled: true
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
node_red2_autoheal_enabled: true
node_red_role_depends_onnode_red2_depends_on
# List of container dependencies that must be running before containers start
# Type: string
node_red_role_depends_on: ""
# List of container dependencies that must be running before containers start
# Type: string
node_red2_depends_on: ""
node_red_role_depends_on_delaynode_red2_depends_on_delay
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
node_red_role_depends_on_delay: "0"
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
node_red2_depends_on_delay: "0"
node_red_role_depends_on_healthchecksnode_red2_depends_on_healthchecks
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
node_red_role_depends_on_healthchecks:
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
node_red2_depends_on_healthchecks:
node_red_role_diun_enablednode_red2_diun_enabled
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
node_red_role_diun_enabled: true
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
node_red2_diun_enabled: true
node_red_role_dns_enablednode_red2_dns_enabled
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
node_red_role_dns_enabled: true
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
node_red2_dns_enabled: true
node_red_role_docker_controllernode_red2_docker_controller
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
node_red_role_docker_controller: true
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
node_red2_docker_controller: true
node_red_role_docker_image_reponode_red2_docker_image_repo
# Type: string
node_red_role_docker_image_repo:
# Type: string
node_red2_docker_image_repo:
node_red_role_docker_image_tagnode_red2_docker_image_tag
# Type: string
node_red_role_docker_image_tag:
# Type: string
node_red2_docker_image_tag:
node_red_role_docker_volumes_downloadnode_red2_docker_volumes_download
# Type: bool (true/false)
node_red_role_docker_volumes_download:
# Type: bool (true/false)
node_red2_docker_volumes_download:
node_red_role_paths_locationnode_red2_paths_location
# Type: string
node_red_role_paths_location:
# Type: string
node_red2_paths_location:
node_red_role_themepark_addonsnode_red2_themepark_addons
# Type: string
node_red_role_themepark_addons:
# Type: string
node_red2_themepark_addons:
node_red_role_themepark_appnode_red2_themepark_app
# Type: string
node_red_role_themepark_app:
# Type: string
node_red2_themepark_app:
node_red_role_themepark_themenode_red2_themepark_theme
# Type: string
node_red_role_themepark_theme:
# Type: string
node_red2_themepark_theme:
node_red_role_traefik_api_endpointnode_red2_traefik_api_endpoint
# Type: dict/omit
node_red_role_traefik_api_endpoint:
# Type: dict/omit
node_red2_traefik_api_endpoint:
node_red_role_traefik_api_middlewarenode_red2_traefik_api_middleware
# Type: string
node_red_role_traefik_api_middleware:
# Type: string
node_red2_traefik_api_middleware:
node_red_role_traefik_api_middleware_httpnode_red2_traefik_api_middleware_http
# Type: string
node_red_role_traefik_api_middleware_http:
# Type: string
node_red2_traefik_api_middleware_http:
node_red_role_traefik_autodetect_enablednode_red2_traefik_autodetect_enabled
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
node_red_role_traefik_autodetect_enabled: false
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
node_red2_traefik_autodetect_enabled: false
node_red_role_traefik_certresolvernode_red2_traefik_certresolver
# Type: string
node_red_role_traefik_certresolver:
# Type: string
node_red2_traefik_certresolver:
node_red_role_traefik_crowdsec_enablednode_red2_traefik_crowdsec_enabled
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
node_red_role_traefik_crowdsec_enabled: false
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
node_red2_traefik_crowdsec_enabled: false
node_red_role_traefik_error_pages_enablednode_red2_traefik_error_pages_enabled
# Enable custom error pages middleware for containers
# Type: bool (true/false)
node_red_role_traefik_error_pages_enabled: false
# Enable custom error pages middleware for containers
# Type: bool (true/false)
node_red2_traefik_error_pages_enabled: false
node_red_role_traefik_gzip_enablednode_red2_traefik_gzip_enabled
# Enable gzip compression middleware for containers
# Type: bool (true/false)
node_red_role_traefik_gzip_enabled: false
# Enable gzip compression middleware for containers
# Type: bool (true/false)
node_red2_traefik_gzip_enabled: false
node_red_role_traefik_middleware_httpnode_red2_traefik_middleware_http
# Type: string
node_red_role_traefik_middleware_http:
# Type: string
node_red2_traefik_middleware_http:
node_red_role_traefik_middleware_http_api_insecurenode_red2_traefik_middleware_http_api_insecure
# Type: bool (true/false)
node_red_role_traefik_middleware_http_api_insecure:
# Type: bool (true/false)
node_red2_traefik_middleware_http_api_insecure:
node_red_role_traefik_middleware_http_insecurenode_red2_traefik_middleware_http_insecure
# Type: bool (true/false)
node_red_role_traefik_middleware_http_insecure:
# Type: bool (true/false)
node_red2_traefik_middleware_http_insecure:
node_red_role_traefik_prioritynode_red2_traefik_priority
# Type: string
node_red_role_traefik_priority:
# Type: string
node_red2_traefik_priority:
node_red_role_traefik_robot_enablednode_red2_traefik_robot_enabled
# Enable robots.txt middleware for containers
# Type: bool (true/false)
node_red_role_traefik_robot_enabled: true
# Enable robots.txt middleware for containers
# Type: bool (true/false)
node_red2_traefik_robot_enabled: true
node_red_role_traefik_tailscale_enablednode_red2_traefik_tailscale_enabled
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
node_red_role_traefik_tailscale_enabled: false
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
node_red2_traefik_tailscale_enabled: false
node_red_role_traefik_wildcard_enablednode_red2_traefik_wildcard_enabled
# Enable wildcard certificate for containers
# Type: bool (true/false)
node_red_role_traefik_wildcard_enabled: true
# Enable wildcard certificate for containers
# Type: bool (true/false)
node_red2_traefik_wildcard_enabled: true
node_red_role_web_domainnode_red2_web_domain
# Type: string
node_red_role_web_domain:
# Type: string
node_red2_web_domain:
node_red_role_web_fqdn_overridenode_red2_web_fqdn_override
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
node_red_role_web_fqdn_override:
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
node_red2_web_fqdn_override:
Example Override
node_red_role_web_fqdn_override:
- "{{ traefik_host }}"
- "node_red2.{{ user.domain }}"
- "node_red.otherdomain.tld"
Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries
Example Override
node_red2_web_fqdn_override:
- "{{ traefik_host }}"
- "node_red2.{{ user.domain }}"
- "node_red.otherdomain.tld"
Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries
node_red_role_web_host_overridenode_red2_web_host_override
# Override the Traefik web host configuration for containers
# Type: string
node_red_role_web_host_override:
# Override the Traefik web host configuration for containers
# Type: string
node_red2_web_host_override:
Example Override
node_red_role_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'node_red2.' + user.domain }}`)"
Note: Use {{ traefik_host }} to include the default host configuration in your custom rule
Example Override
node_red2_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'node_red2.' + user.domain }}`)"
Note: Use {{ traefik_host }} to include the default host configuration in your custom rule
node_red_role_web_http_portnode_red2_web_http_port
# Type: string (quoted number)
node_red_role_web_http_port:
# Type: string (quoted number)
node_red2_web_http_port:
node_red_role_web_http_schemenode_red2_web_http_scheme
# Type: string ("http"/"https")
node_red_role_web_http_scheme:
# Type: string ("http"/"https")
node_red2_web_http_scheme:
node_red_role_web_http_serverstransportnode_red2_web_http_serverstransport
# Type: dict/omit
node_red_role_web_http_serverstransport:
# Type: dict/omit
node_red2_web_http_serverstransport:
node_red_role_web_schemenode_red2_web_scheme
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
node_red_role_web_scheme:
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
node_red2_web_scheme:
node_red_role_web_serverstransportnode_red2_web_serverstransport
# Type: dict/omit
node_red_role_web_serverstransport:
# Type: dict/omit
node_red2_web_serverstransport:
node_red_role_web_subdomainnode_red2_web_subdomain
# Type: string
node_red_role_web_subdomain:
# Type: string
node_red2_web_subdomain: