Skip to content

Latest commit

 

History

History
195 lines (136 loc) · 5.36 KB

File metadata and controls

195 lines (136 loc) · 5.36 KB

Installation

Linux Packages (Recommended)

confd provides native packages for Debian/Ubuntu (.deb) and RHEL/Fedora/CentOS (.rpm). These packages include systemd integration with security hardening.

Debian / Ubuntu

# Download the latest release (replace VERSION and ARCH as needed)
VERSION=0.41.2
ARCH=amd64  # or arm64

curl -LO "https://github.com/abtreece/confd/releases/download/v${VERSION}/confd_${VERSION}_linux_${ARCH}.deb"
sudo dpkg -i "confd_${VERSION}_linux_${ARCH}.deb"

RHEL / Fedora / CentOS

# Download the latest release (replace VERSION and ARCH as needed)
VERSION=0.41.2
ARCH=x86_64  # or aarch64

curl -LO "https://github.com/abtreece/confd/releases/download/v${VERSION}/confd-${VERSION}-1.${ARCH}.rpm"
sudo rpm -i "confd-${VERSION}-1.${ARCH}.rpm"

Package Contents

The packages install:

Path Description
/usr/bin/confd Binary
/usr/lib/systemd/system/confd.service Systemd service with security hardening
/etc/confd/confd.toml Default configuration file
/etc/confd/conf.d/ Template resource directory
/etc/confd/templates/ Template directory
/etc/default/confd Environment file (Debian)
/etc/sysconfig/confd Environment file (RHEL)
/var/lib/confd/ State directory

Post-Installation Setup

  1. Configure the backend and options in the environment file:

    # Debian/Ubuntu
    sudo vi /etc/default/confd
    
    # RHEL/Fedora
    sudo vi /etc/sysconfig/confd

    Example configuration:

    CONFD_BACKEND="etcd"
    CONFD_OPTS="--watch --systemd-notify --watchdog-interval 30s --log-level info"
  2. Create template resources and templates in /etc/confd/conf.d/ and /etc/confd/templates/

  3. Enable and start the service:

    sudo systemctl enable confd
    sudo systemctl start confd

See Service Deployment Guide for advanced systemd configuration.


Binary Download

confd ships binaries for OS X, Linux, and Windows for both amd64 and arm64 architectures. You can download the latest release from GitHub.

OS X

# For Intel Macs (amd64)
curl -SL https://github.com/abtreece/confd/releases/download/v0.41.2/confd-v0.41.2-darwin-amd64.tar.gz | tar -xz -C /usr/local/bin/

# For Apple Silicon (arm64)
curl -SL https://github.com/abtreece/confd/releases/download/v0.41.2/confd-v0.41.2-darwin-arm64.tar.gz | tar -xz -C /usr/local/bin/

Linux

Download and extract the binary:

# For amd64
curl -SL https://github.com/abtreece/confd/releases/download/v0.41.2/confd-v0.41.2-linux-amd64.tar.gz | tar -xz -C /usr/local/bin/

# For arm64
curl -SL https://github.com/abtreece/confd/releases/download/v0.41.2/confd-v0.41.2-linux-arm64.tar.gz | tar -xz -C /usr/local/bin/

Or manually:

wget https://github.com/abtreece/confd/releases/download/v0.41.2/confd-v0.41.2-linux-amd64.tar.gz
tar -xzf confd-v0.41.2-linux-amd64.tar.gz
mv confd /usr/local/bin/

Windows

Download the appropriate .zip file from the releases page and extract confd.exe to a directory in your PATH.

Docker

Official Docker images are available from Docker Hub and GitHub Container Registry:

# Pull from Docker Hub
docker pull abtreece/confd:latest

# Or from GitHub Container Registry
docker pull ghcr.io/abtreece/confd:latest

# Run with env backend
docker run --rm \
  -e MY_VAR=value \
  -v $(pwd)/conf.d:/etc/confd/conf.d:ro \
  -v $(pwd)/templates:/etc/confd/templates:ro \
  -v $(pwd)/output:/output \
  abtreece/confd:latest env --onetime

Available image tags:

  • latest - Latest stable release
  • v0.41.2 - Specific version
  • v0.41.2-amd64, v0.41.2-arm64 - Architecture-specific images

See Docker documentation for complete usage examples including Docker Compose and Kubernetes.

Installing in Dockerfile

To install confd in your own Docker image:

ARG CONFD_VERSION=0.41.2
RUN CONFD_ARCH=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \
    && curl -SL "https://github.com/abtreece/confd/releases/download/v${CONFD_VERSION}/confd-v${CONFD_VERSION}-linux-${CONFD_ARCH}.tar.gz" | tar -xz -C /usr/local/bin/ \
    && confd --version

Building from Source

Building from source requires the Go 1.26.3 toolchain. The module declares go 1.26 for language compatibility and toolchain go1.26.3 for the expected compiler patch version.

make build
make install

Building from Source with Docker

Build confd using Docker for a reproducible build environment:

docker build -t confd:local -f docker/Dockerfile.build .

Multi-Stage Build for Custom Images

Include confd in your own Docker image using a multi-stage build:

FROM golang:1.26.3-alpine AS confd-builder

RUN apk add --no-cache git
WORKDIR /src
RUN git clone https://github.com/abtreece/confd.git .
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o /confd ./cmd/confd

FROM your-base-image:latest

COPY --from=confd-builder /confd /usr/local/bin/confd

# Your application setup...

Or use the official image directly:

FROM abtreece/confd:latest AS confd

FROM your-base-image:latest
COPY --from=confd /usr/local/bin/confd /usr/local/bin/confd

Next Steps

Get up and running with the Quick Start Guide.