src.nth.io/

summaryrefslogtreecommitdiff
path: root/openhop/repeater/templates
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2026-07-26 10:36:29 -0500
committerLuke Hoersten <[email protected]>2026-07-26 10:36:29 -0500
commit38323823b85b2ae8deef788a0f49e36c789c12f4 (patch)
tree94a3227a737ba0198dd06d3b7e001f219fe32bdc /openhop/repeater/templates
parent1aaf4479d72edbd0c716d2e9122a7b613626bf12 (diff)
openhop/repeater: add MeshCore repeater role
Deploys the openHop MeshCore repeater on a Raspberry Pi with a RAK6421 WisMesh Pi HAT: installs the daemon into a venv from a versioned git tag, templates config.yaml and a systemd unit, and loads board pin maps and RF region presets by name from vars/. identity_file is configurable and defaults to null (daemon generates its own keypair).
Diffstat (limited to 'openhop/repeater/templates')
-rw-r--r--openhop/repeater/templates/config.yaml.j253
-rw-r--r--openhop/repeater/templates/openhop-repeater.service.j218
2 files changed, 71 insertions, 0 deletions
diff --git a/openhop/repeater/templates/config.yaml.j2 b/openhop/repeater/templates/config.yaml.j2
new file mode 100644
index 0000000..ddd2772
--- /dev/null
+++ b/openhop/repeater/templates/config.yaml.j2
@@ -0,0 +1,53 @@
+# Managed by Ansible (openhop/repeater role) — do not edit by hand.
+
+repeater:
+ node_name: "{{ repeater_node_name }}"
+ latitude: {{ repeater_latitude }}
+ longitude: {{ repeater_longitude }}
+ identity_file: {{ ('"' + repeater_identity_file + '"') if repeater_identity_file else 'null' }}
+ owner_info: "{{ repeater_owner_info }}"
+ cache_ttl: 3600
+ max_flood_hops: 64
+ use_score_for_tx: false
+ score_threshold: 0.3
+ send_advert_interval_hours: 10
+ allow_discovery: true
+
+radio_type: sx1262
+
+sx1262:
+ bus_id: {{ repeater_sx1262_bus_id }}
+ cs_id: {{ repeater_sx1262_cs_id }}
+ cs_pin: {{ repeater_sx1262_cs_pin }}
+ reset_pin: {{ repeater_sx1262_reset_pin }}
+ busy_pin: {{ repeater_sx1262_busy_pin }}
+ irq_pin: {{ repeater_sx1262_irq_pin }}
+ txen_pin: {{ repeater_sx1262_txen_pin }}
+ rxen_pin: {{ repeater_sx1262_rxen_pin }}
+ en_pin: -1
+ txled_pin: -1
+ rxled_pin: -1
+ use_dio3_tcxo: {{ repeater_sx1262_use_dio3_tcxo | string | lower }}
+ dio3_tcxo_voltage: {{ repeater_sx1262_dio3_tcxo_voltage }}
+ use_dio2_rf: {{ repeater_sx1262_use_dio2_rf | string | lower }}
+ is_waveshare: {{ repeater_sx1262_is_waveshare | string | lower }}
+
+radio:
+ frequency: {{ repeater_frequency_hz }}
+ tx_power: {{ repeater_tx_power_dbm }}
+ bandwidth: {{ repeater_bandwidth_hz }}
+ spreading_factor: {{ repeater_spreading_factor }}
+ coding_rate: {{ repeater_coding_rate }}
+ preamble_length: {{ repeater_preamble_length }}
+ implicit_header: false
+
+# Observer/telemetry disabled — repeater-only deployment.
+mqtt_brokers:
+ iata_code: "Test"
+ status_interval: 300
+ brokers: []
+
+glass:
+ enabled: false
+ base_url: "http://localhost:8080"
+ inform_interval_seconds: 30
diff --git a/openhop/repeater/templates/openhop-repeater.service.j2 b/openhop/repeater/templates/openhop-repeater.service.j2
new file mode 100644
index 0000000..53aa737
--- /dev/null
+++ b/openhop/repeater/templates/openhop-repeater.service.j2
@@ -0,0 +1,18 @@
+[Unit]
+Description=openHop MeshCore Repeater
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User={{repeater_user}}
+Group={{repeater_user}}
+WorkingDirectory={{repeater_data_dir}}
+ExecStart={{repeater_venv_dir}}/bin/python -m repeater.main --config {{repeater_config_dir}}/config.yaml
+Restart=always
+RestartSec=5
+StandardOutput=journal
+StandardError=journal
+
+[Install]
+WantedBy=multi-user.target