Install Etcha

How to install Etcha.

Installing Etcha depends on how you want to run it. Etcha is available as a binary or a container.

Binary

Rot binaries are available for various architectures and operating systems:

OSArchAssetsInstall
darwinamd64etcha_darwin_amd64.bom.json
etcha_darwin_amd64.gz
etcha_darwin_amd64.sha256
curl -L https://etcha.dev/releases/etcha_darwin_amd64.gz -O | gzip -d > etcha
chmod +x etcha
sha256sum etcha | grep $(curl -L https://etcha.dev/releases/etcha_darwin_amd64.sha256)
darwinarm64etcha_darwin_arm64.bom.json
etcha_darwin_arm64.gz
etcha_darwin_arm64.sha256
curl -L https://etcha.dev/releases/etcha_darwin_arm64.gz -O | gzip -d > etcha
chmod +x etcha
sha256sum etcha | grep $(curl -L https://etcha.dev/releases/etcha_darwin_arm64.sha256)
linuxamd64etcha_linux_amd64.bom.json
etcha_linux_amd64.gz
etcha_linux_amd64.sha256
curl -L https://etcha.dev/releases/etcha_linux_amd64.gz -O | gzip -d > etcha
chmod +x etcha
sha256sum etcha | grep $(curl -L https://etcha.dev/releases/etcha_linux_amd64.sha256)
linuxarmetcha_linux_arm.bom.json
etcha_linux_arm.gz
etcha_linux_arm.sha256
curl -L https://etcha.dev/releases/etcha_linux_arm.gz -O | gzip -d > etcha
chmod +x etcha
sha256sum etcha | grep $(curl -L https://etcha.dev/releases/etcha_linux_arm.sha256)
linuxarm64etcha_linux_arm64.bom.json
etcha_linux_arm64.gz
etcha_linux_arm64.sha256
curl -L https://etcha.dev/releases/etcha_linux_arm64.gz -O | gzip -d > etcha
chmod +x etcha
sha256sum etcha | grep $(curl -L https://etcha.dev/releases/etcha_linux_arm64.sha256)
windowsamd64etcha_windows_amd64.bom.json
etcha_windows_amd64.gz
etcha_windows_amd64.sha256
curl -L https://etcha.dev/releases/etcha_windows_amd64.gz -O | gzip -d > etcha
chmod +x etcha
sha256sum etcha | grep $(curl -L https://etcha.dev/releases/etcha_windows_amd64.sha256)

Etcha can be ran as a service:

  1. Download the Etcha binary to /usr/local/bin/etcha and mark it as executable.
  2. Create /etc/systemd/system/etcha.service with this content:
[Unit]
Description=Infinite scale configuration management for distributed platforms
Documentation=https://etcha.dev
After=network.target

[Service]
ExecStart=/usr/local/bin/etcha -c /etc/etcha.jsonnet run
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
  1. Start Etcha: systemctl enable --now etcha.service
  1. Download the Etcha binary to /usr/local/bin/etcha and mark it as executable.
  2. Create /Library/LaunchDaemons/dev.etcha.plist with this content:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.etcha</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/etcha</string>
        <string>-c</string>
        <string>/etc/etcha.jsonnet</string>
        <string>run</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/var/lib/etcha/etcha.log</string>
    <key>StandardErrorPath</key>
    <string>/var/lib/etcha/etcha.err</string>
    <key>WorkingDirectory</key>
    <string>/var/lib/etcha</string>
</dict>
</plist>
  1. Start Etcha: launchctl load /Library/LaunchDaemons/com.etcha.plist

Container

Etcha containers are available on GitHub.

You can create an alias to run Etcha as a container:

alias etcha='docker run -u $(id -u):$(id -g) -it --rm -v $(pwd):/work -w /work ghcr.io/candiddev/etcha:latest'

SBOM

Etcha ships with a Software Bill of Materials (SBOM) manifest generated using CycloneDX. The .bom.json manifest is available with the other Binary Assets.