Installation
fyaml can be installed using several methods. Choose the one that best fits your environment.
Quick Install (Linux/macOS)
The fastest way to install fyaml on Linux or macOS:
This script downloads the latest release for your platform and installs it to $HOME/.local/bin/fyaml by default. You can override the installation directory by setting the DESTDIR environment variable:
DESTDIR=/usr/local/bin curl -sSL https://raw.githubusercontent.com/jksmth/fyaml/main/install.sh | bash
Note: This command downloads and executes a script. If you prefer to verify the script before execution, see the Verification section below for steps to verify releases.
From Source (Go)
If you have Go installed, you can install fyaml directly:
This installs the latest version to $GOPATH/bin or $HOME/go/bin (depending on your Go version).
Requirements
- Go 1.25 or later
From Pre-built Binaries
Download the latest release from the GitHub releases page.
Linux/macOS
# Download and extract
curl -L https://github.com/jksmth/fyaml/releases/latest/download/fyaml_linux_amd64.tar.gz | tar xz
# Make executable
chmod +x fyaml
# Move to PATH (optional)
sudo mv fyaml /usr/local/bin/
# Verify installation
fyaml --version
Windows
- Download the
.zipfile from the releases page - Extract the archive
- Add the extracted directory to your PATH
- Verify installation:
fyaml --version
Docker
Run Directly
You can run fyaml using Docker without installing it locally:
Use in Multi-stage Builds
Include fyaml in your Dockerfile for build-time configuration compilation:
# Build stage - copy fyaml binary
FROM ghcr.io/jksmth/fyaml:latest AS fyaml
# Your application stage
FROM your-base-image:latest
# For scratch-based image, binary is at /fyaml
COPY --from=fyaml /fyaml /usr/local/bin/fyaml
# For alpine-based image, use: COPY --from=fyaml /usr/local/bin/fyaml /usr/local/bin/fyaml
# Use fyaml in your build process
COPY config/ /config/
RUN fyaml /config > /app/config.yml
Available Tags
Two image variants are available:
Scratch-based (default) - Minimal image with no shell or utilities:
- latest - Latest stable release
- v1.0.0 - Specific version (replace with desired version)
Alpine-based - Includes Alpine Linux with shell access:
- latest-alpine - Latest stable release
- v1.0.0-alpine - Specific version (replace with desired version)
Use the Alpine variant when you need shell access, debugging capabilities, or standard Linux utilities. The scratch variant is smaller and more secure for production use.
Verify Installation
After installation, verify that fyaml is working:
You should see output like:
Verification
All fyaml releases are cryptographically signed with cosign using keyless signing. To verify a binary or Docker image:
# Verify binary checksums
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/jksmth/fyaml' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
checksums.txt \
--bundle checksums.txt.sigstore.json
# Verify Docker image
cosign verify \
--certificate-identity-regexp '^https://github.com/jksmth/fyaml' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
ghcr.io/jksmth/fyaml:v1.0.0
Troubleshooting
Command Not Found
If you get a "command not found" error:
-
Check installation location: Verify where fyaml was installed
-
Add to PATH: Ensure the installation directory is in your PATH
-
Restart terminal: Close and reopen your terminal after modifying PATH
Permission Denied
If you get a permission error:
Docker Issues
If Docker commands fail:
- Ensure Docker is running:
docker ps - Check image availability:
docker pull ghcr.io/jksmth/fyaml:latest - Verify volume mount syntax for your OS (Windows uses different path format)