A 1985 Hans Christian 38T; heavy displacement, cutter rigged, blue-water cruiser. Seattle, WA is her home.
For setting up SV Symphony's devices and computer systems.
Inspired by meri-imperiumi/curiosity
Two paths. Which one you want depends on whether you need the boat's secrets.
Contributing — no secrets, no key, nothing to provision.
git clone https://github.com/mark-brannan/symphony.git && cd symphony
bash scripts/check_clone_setup.sh # what this clone has wired, and what to do about what it doesn't
bash scripts/dev_stack.sh up # InfluxDB + Grafana locally, throwaway credentialsCommits work without sops, age or a key. The secret-bearing files stay
ciphertext on disk; you don't need to read them. .github/workflows/validate.yml
is the enforcement boundary — it needs no secrets and runs on every push and
pull request, so local hooks are fast feedback rather than the gate.
Maintaining — the boat's hosts, or anything that touches a secret.
bash scripts/setup-git-filters.sh # git filters, pre-commit hooks, decrypt in placeWants sops, age, python3 and an age key. RUNBOOK.md § Bringing up a host
covers installing them and provisioning the key. Safe to re-run at any time.
Either way, if a hook blocks a commit: bash scripts/check_clone_setup.sh first,
then RUNBOOK.md § When a hook blocks your commit.
Working log of deferred maintenance, in-progress work, and planned improvements.
priorities.md— current triage: In Progress / Blocked / Backlog / Someday-Maybe. Physical boat work is tracked in Evernote instead; this file is authoritative only for the SignalK / IoT section.log.md— chronological ship's-log record, oldest entry first, real append (tail-friendly)systems/— one file per system, empty for now; populate as it makes sensereference/specs.md— vessel identity, registration, and physical particularsreference/vendors-parts.md— vendor contacts and parts sourcing
- Append to
log.md; use whatever date precision is actually known (day, month, or year) — don't force false precision - Move items between In Progress / Blocked / Backlog / Someday-Maybe in
priorities.mdas status changes; keep In Progress small systems/*.mdare living reference, edited in place — git tracks the history
- Electrical/IoT sensor and SignalK-integration tasks live in the SignalK / IoT section of
priorities.md, separate from the physical-work items above them. Those physical items are the historical copy; Evernote is the authoritative list now, and they get pruned from here over time. - Physical specs that also live as SignalK config (calibration curves, sensor mappings) aren't yet reconciled between this repo and the boat's running SignalK. (The "SignalK/Ansible repo" this used to point at is
tkurki/marinepi-provisioning, which is upstream and not ours — seereference/host_provisioning.md.)
