confd provides native packages for Debian/Ubuntu (.deb) and RHEL/Fedora/CentOS (.rpm). These packages include systemd integration with security hardening.
# 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"# 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"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 |
-
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"
-
Create template resources and templates in
/etc/confd/conf.d/and/etc/confd/templates/ -
Enable and start the service:
sudo systemctl enable confd sudo systemctl start confd
See Service Deployment Guide for advanced systemd configuration.
confd ships binaries for OS X, Linux, and Windows for both amd64 and arm64 architectures. You can download the latest release from GitHub.
# 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/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/Download the appropriate .zip file from the releases page and extract confd.exe to a directory in your PATH.
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 --onetimeAvailable image tags:
latest- Latest stable releasev0.41.2- Specific versionv0.41.2-amd64,v0.41.2-arm64- Architecture-specific images
See Docker documentation for complete usage examples including Docker Compose and Kubernetes.
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 --versionBuilding 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 installBuild confd using Docker for a reproducible build environment:
docker build -t confd:local -f docker/Dockerfile.build .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/confdGet up and running with the Quick Start Guide.