Skip to content

Releases

v0.1.11

Choose a tag to compare

@pascalgross pascalgross released this 21 Sep 20:10
c8e2559

Installing

curl -fsSL https://hostseal.io/apt/hostseal-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/hostseal-archive-keyring.gpg > /dev/null
curl -fsSL https://hostseal.io/apt/hostseal.sources \
  | sudo tee /etc/apt/sources.list.d/hostseal.sources > /dev/null
sudo apt-get update && sudo apt-get install hostseal-agent

The agent installs with no keys in /etc/hostseal/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Windows Server

hostseal-agent-windows-amd64.zip is attached. Unpack it on the host and run
Install-HostSealAgent.ps1 from an elevated session; docs/INSTALL.md has the commands in
full, and Fleet -> Add a host prints them with this control plane's own address filled
in. There is no repository to subscribe to, so an upgrade is the same archive over the same
installer, which keeps policy.toml and trusted-signers as they are.

A Windows host is read-only: inventory, services, pending updates and reboot state. It
applies no updates and reboots nothing, by design rather than by omission -- see
docs/SECURITY.md section 12.

The operator's CLI

hostseal is the tool an operator runs on their own machine: it signs destructive jobs
and bootstrap templates with a key the control plane does not hold, and hostseal signer
answers the web interface over loopback so a YubiKey can be used from the browser.

hostseal-linux-amd64, hostseal-linux-arm64 and hostseal-windows-amd64.zip are
attached. It is not a service and installs nothing; hostseal signer --install registers it
to start at your next logon, in your own session, and --uninstall removes that again.
docs/INSTALL.md has the details.

The agent .deb and the Windows agent archive carry the same binary, because hostseal enroll runs on the host being enrolled. Installing either of those on a workstation in
order to get the CLI is the wrong way round -- it puts an agent on it.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • Mint template tokens from the fleet page, list tokens, and sign a template from a terminal by @pascalgross in #107

Full Changelog: v0.1.10...v0.1.11

v0.1.10

Choose a tag to compare

@pascalgross pascalgross released this 21 Sep 16:45
da6c3c6

Installing

curl -fsSL https://hostseal.io/apt/hostseal-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/hostseal-archive-keyring.gpg > /dev/null
curl -fsSL https://hostseal.io/apt/hostseal.sources \
  | sudo tee /etc/apt/sources.list.d/hostseal.sources > /dev/null
sudo apt-get update && sudo apt-get install hostseal-agent

The agent installs with no keys in /etc/hostseal/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Windows Server

hostseal-agent-windows-amd64.zip is attached. Unpack it on the host and run
Install-HostSealAgent.ps1 from an elevated session; docs/INSTALL.md has the commands in
full, and Fleet -> Add a host prints them with this control plane's own address filled
in. There is no repository to subscribe to, so an upgrade is the same archive over the same
installer, which keeps policy.toml and trusted-signers as they are.

A Windows host is read-only: inventory, services, pending updates and reboot state. It
applies no updates and reboots nothing, by design rather than by omission -- see
docs/SECURITY.md section 12.

The operator's CLI

hostseal is the tool an operator runs on their own machine: it signs destructive jobs
and bootstrap templates with a key the control plane does not hold, and hostseal signer
answers the web interface over loopback so a YubiKey can be used from the browser.

hostseal-linux-amd64, hostseal-linux-arm64 and hostseal-windows-amd64.zip are
attached. It is not a service and installs nothing; hostseal signer --install registers it
to start at your next logon, in your own session, and --uninstall removes that again.
docs/INSTALL.md has the details.

The agent .deb and the Windows agent archive carry the same binary, because hostseal enroll runs on the host being enrolled. Installing either of those on a workstation in
order to get the CLI is the wrong way round -- it puts an agent on it.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • Fix sign-in rate limit by moving it to a dedicated router by @pascalgross in #105
  • Publish the operator's CLI, and let the signer start at logon by @pascalgross in #106

Full Changelog: v0.1.9...v0.1.10

v0.1.9

Choose a tag to compare

@pascalgross pascalgross released this 21 Sep 10:59
b822e9a

Installing

curl -fsSL https://hostseal.io/apt/hostseal-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/hostseal-archive-keyring.gpg > /dev/null
curl -fsSL https://hostseal.io/apt/hostseal.sources \
  | sudo tee /etc/apt/sources.list.d/hostseal.sources > /dev/null
sudo apt-get update && sudo apt-get install hostseal-agent

The agent installs with no keys in /etc/hostseal/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Windows Server

hostseal-agent-windows-amd64.zip is attached. Unpack it on the host and run
Install-HostSealAgent.ps1 from an elevated session; docs/INSTALL.md has the commands in
full, and Fleet -> Add a host prints them with this control plane's own address filled
in. There is no repository to subscribe to, so an upgrade is the same archive over the same
installer, which keeps policy.toml and trusted-signers as they are.

A Windows host is read-only: inventory, services, pending updates and reboot state. It
applies no updates and reboots nothing, by design rather than by omission -- see
docs/SECURITY.md section 12.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • Publish the Windows agent, and say how to install it by @pascalgross in #101
  • Stop the layout cropping icons, and give each page one content edge by @pascalgross in #102
  • Add template archival: retire names without deleting versions by @pascalgross in #103
  • Sign from the browser with a YubiKey, on Windows as well as Linux by @pascalgross in #104

Full Changelog: v0.1.8...v0.1.9

v0.1.8

Choose a tag to compare

@pascalgross pascalgross released this 20 Sep 15:59
40315cc

Installing

curl -fsSL https://hostseal.io/apt/hostseal-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/hostseal-archive-keyring.gpg > /dev/null
curl -fsSL https://hostseal.io/apt/hostseal.sources \
  | sudo tee /etc/apt/sources.list.d/hostseal.sources > /dev/null
sudo apt-get update && sudo apt-get install hostseal-agent

The agent installs with no keys in /etc/hostseal/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • Say who holds the rights, and stop claiming a trademark that is not registered by @pascalgross in #78
  • A Windows agent that reads, and cannot be asked to do anything else by @pascalgross in #82
  • Rename the project to HostSeal, and press a seal where the shoe was by @pascalgross in #85
  • Take the four Dependabot updates by hand, and fix what made them unmergeable by @pascalgross in #88
  • Take this week's three Dependabot updates by hand, one of which was broken by @pascalgross in #92
  • Report capacity and load, and let a host be found by its MAC address by @pascalgross in #98
  • Say so when the published APT repository predates the rename by @pascalgross in #100
  • Give a fleet a host limit and a suspension switch by @pascalgross in #93

Full Changelog: v0.1.7...v0.1.8

v0.1.7

Choose a tag to compare

@pascalgross pascalgross released this 29 Aug 07:18
cb1aacc

Installing

curl -fsSL https://farrier.tools/apt/farrier-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/farrier-archive-keyring.gpg > /dev/null
curl -fsSL https://farrier.tools/apt/farrier.sources \
  | sudo tee /etc/apt/sources.list.d/farrier.sources > /dev/null
sudo apt-get update && sudo apt-get install farrier-agent

The agent installs with no keys in /etc/farrier/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • A screen for the room, and the link that puts it on a wall by @pascalgross in #77

Full Changelog: v0.1.6...v0.1.7

v0.1.6

Choose a tag to compare

@pascalgross pascalgross released this 28 Aug 20:01
0835bfe

Installing

curl -fsSL https://farrier.tools/apt/farrier-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/farrier-archive-keyring.gpg > /dev/null
curl -fsSL https://farrier.tools/apt/farrier.sources \
  | sudo tee /etc/apt/sources.list.d/farrier.sources > /dev/null
sudo apt-get update && sudo apt-get install farrier-agent

The agent installs with no keys in /etc/farrier/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • Make enrolment work as documented: the CA, the ownership, and a way back by @pascalgross in #75

Full Changelog: v0.1.5...v0.1.6

v0.1.5

Choose a tag to compare

@pascalgross pascalgross released this 28 Aug 16:45
72d921f

Installing

curl -fsSL https://farrier.tools/apt/farrier-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/farrier-archive-keyring.gpg > /dev/null
curl -fsSL https://farrier.tools/apt/farrier.sources \
  | sudo tee /etc/apt/sources.list.d/farrier.sources > /dev/null
sudo apt-get update && sudo apt-get install farrier-agent

The agent installs with no keys in /etc/farrier/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • Close the twenty-eight open issues: the audit findings, the CSS regressions, and the two missing screens by @pascalgross in #74

Full Changelog: v0.1.4...v0.1.5

v0.1.4

Choose a tag to compare

@pascalgross pascalgross released this 26 Aug 09:42
9ccabb6

Installing

curl -fsSL https://farrier.tools/apt/farrier-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/farrier-archive-keyring.gpg > /dev/null
curl -fsSL https://farrier.tools/apt/farrier.sources \
  | sudo tee /etc/apt/sources.list.d/farrier.sources > /dev/null
sudo apt-get update && sudo apt-get install farrier-agent

The agent installs with no keys in /etc/farrier/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • Issue private server certificate for the agent hostname by @pascalgross in #71

Full Changelog: v0.1.3...v0.1.4

v0.1.3

Choose a tag to compare

@pascalgross pascalgross released this 26 Aug 07:51
8b1d98f

Installing

curl -fsSL https://farrier.tools/apt/farrier-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/farrier-archive-keyring.gpg > /dev/null
curl -fsSL https://farrier.tools/apt/farrier.sources \
  | sudo tee /etc/apt/sources.list.d/farrier.sources > /dev/null
sudo apt-get update && sudo apt-get install farrier-agent

The agent installs with no keys in /etc/farrier/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • Add an independent security audit of the guarantee and its enforcement by @pascalgross in #64
  • Operators are people, the shared token is gone, and the four ways the CSS was lying by @pascalgross in #70

Full Changelog: v0.1.2...v0.1.3

v0.1.2

Choose a tag to compare

@pascalgross pascalgross released this 25 Aug 14:20
9916db7

Installing

curl -fsSL https://farrier.tools/apt/farrier-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/farrier-archive-keyring.gpg > /dev/null
curl -fsSL https://farrier.tools/apt/farrier.sources \
  | sudo tee /etc/apt/sources.list.d/farrier.sources > /dev/null
sudo apt-get update && sudo apt-get install farrier-agent

The agent installs with no keys in /etc/farrier/trusted-signers and a policy that permits
security updates and nothing else. It will report on the host and keep it patched, and will
do nothing else until you say otherwise.

Verifying the build

The binaries are built with -trimpath and a pinned SOURCE_DATE_EPOCH, so rebuilding this
tag reproduces them byte for byte. SHA256SUMS is attached.

apt-repository.tar.gz is the signed repository exactly as published. The pages workflow
unpacks it under /apt; it is attached so that the published tree can be verified against
this release rather than taken on trust.

What's Changed

  • A cloud-init baseline, where signing keys come from, and a mark of our own by @pascalgross in #42

Full Changelog: v0.1.1...v0.1.2