v1.1.1|Open Source

Build, verify, and bootstrap CI/CD

for Dockerized apps with one CLI.

Detect frameworks, generate Docker assets, verify locally, and ship through GitHub Actions or GitLab CI.

linux/amd64linux/arm64darwin/arm64darwin/amd64windows/amd64

By Ing Muyleang · KhmerStack

kforge — terminal
building...
0%
10+
Frameworks
6
New commands
3
Deploy targets

Features

End-to-end Docker workflow — from detection to deployment.

Project Detection

Auto-detect Next.js, React, Vue, NestJS, Spring Boot, FastAPI, Flask, Django, Node.js, and HTML.

Dockerfile Generation

Generate optimized Dockerfile, .dockerignore, and kforge.hcl for your detected project type.

Local Verification

Build and run your container locally with health checks before pushing to any registry.

CI/CD Generation

Generate GitHub Actions and GitLab CI pipelines that install kforge and run your full workflow.

Deploy Bootstrap

Generate docker-compose.yml, render.yaml, and fly.toml deploy configs in one command.

Multi-Platform Build

Build linux/amd64, linux/arm64 and more simultaneously, standalone or as docker kforge.

Quickstart

From zero to a Dockerized, CI-ready project in six steps.

01

Check Environment

Verify Docker, Buildx, and QEMU are ready.

$kforge doctor
✓ Docker running v27.3.1
✓ Buildx ready v0.18.0
✓ QEMU enabled
02

Detect Framework

Auto-detect your project type from source files.

$kforge detect
✓ Flask (app.py)
framework: flask
port: 5000
03

Generate Docker Assets

Create Dockerfile, .dockerignore, and kforge.hcl.

$kforge init --detect
✓ Dockerfile written
✓ .dockerignore written
✓ kforge.hcl written
04

Verify Locally

Build and run the container, check health.

$kforge verify
building image...
starting container...
✓ healthy port 5000
05

Generate CI Pipeline

Output a GitHub Actions or GitLab CI workflow.

$kforge ci init --target github
✓ .github/workflows/
kforge.yml written
06

Generate Deploy Config

Bootstrap Compose, Render, or Fly deploy files.

$kforge deploy init --target compose
✓ docker-compose.yml written

Installation

Get kforge up and running in under a minute. v1.1.1 release page.

# Option 1 — tar.gz (terminal install)$ curl -Lo kforge.tar.gz https://github.com/MuyleangIng/kforge/releases/download/v1.1.1/kforge_1.1.1_darwin_arm64.tar.gz$ tar -xzf kforge.tar.gz$ sudo mv kforge /usr/local/bin/ # macOS Gatekeeper bypass — run once after install$ sudo xattr -d com.apple.quarantine /usr/local/bin/kforge # Verify$ kforge version # Option 2 — DMG installer (GUI)$ curl -Lo kforge.dmg https://github.com/MuyleangIng/kforge/releases/download/v1.1.1/kforge_v1.1.1_darwin_arm64.dmg$ open kforge.dmg

macOS Gatekeeper: After tar.gz install, run sudo xattr -d com.apple.quarantine /usr/local/bin/kforge once. The DMG handles this automatically.

Verify with SHA256 from checksums.txt

Prerequisites

  • Docker Desktop or Docker Engine installed and running
  • Go 1.21+ (only required for building from source or Docker plugin)
  • QEMU (installed automatically via kforge setup)

Command Reference

All top-level kforge commands.

New in v1.1.1

kforge doctor

Check environment: Docker, Buildx, and QEMU readiness.

$ kforge doctor
kforge detect

Detect project framework from source files. Use --json for structured output.

$ kforge detect$ kforge detect --json
kforge init

Generate Dockerfile, .dockerignore, and kforge.hcl for your project.

$ kforge init --detect$ kforge init --framework flask
kforge verify

Build and run the container locally, check health endpoint.

$ kforge verify$ kforge verify .
kforge ci init

Generate a CI/CD pipeline that installs kforge, verifies, and pushes.

$ kforge ci init --target github$ kforge ci init --target gitlab
kforge deploy init

Generate deploy bootstrap configs for Compose, Render, or Fly.

$ kforge deploy init --target compose$ kforge deploy init --target render$ kforge deploy init --target fly

Existing commands

kforge build

Multi-platform BuildKit build.

kforge push

Build and push to a registry in one command.

kforge bake

Declarative build via kforge.hcl or kforge.json.

kforge login

Authenticate to a container registry.

kforge builder

Manage BuildKit builder instances.

kforge setup

Interactive setup wizard for QEMU and multi-node.

kforge version

Print the installed kforge version.

Supported Frameworks

kforge auto-detects and generates optimized Docker assets for all of these.

Frontend

Next.jsTypeScript / JavaScript
ReactTypeScript / JavaScript
VueTypeScript / JavaScript
HTMLStatic / Nginx

Backend

NestJSTypeScript / Node.js
Node.jsJavaScript
Spring BootJava
FastAPIPython
FlaskPython
DjangoPython

Project config — .kforge.yml

Override detected settings by adding a .kforge.yml file to your project root.

frameworkimageporthealthchecknodepythonjavaapp_modulesettings_modulestart_commandenvverify.*ci.*deploy.*
i

GHCR image names: Generated workflows lowercase the GitHub owner. Use ghcr.io/muyleanging/app:latest, not uppercase.

Cache Backends

Speed up builds with flexible caching strategies.

Registry

type=registry,ref=muyleangin/app:cache

Local

type=local,dest=/tmp/cache

GitHub Actions

type=gha

S3

type=s3,bucket=mybucket,region=us-east-1

Azure Blob

type=azblob,account=myaccount,name=mycache

Multi-Architecture Pipeline

BuildKit builds both platforms in parallel — one command, two targets.

linux/amd64
building

current step

Initializing builder...

Base image
Dependencies
App code
Final image
progress0%
BuildKit
linux/arm64
building

current step

Initializing builder...

Base image
Dependencies
App code
Final image
progress0%
linux/amd64+linux/arm64→ waiting…
kforge commandv1.1.1
$ kforge build --platform linux/amd64,linux/arm64 --push -t muyleangin/myapp:latest .
$ kforge bake --file kforge.hcl                  # declarative multi-target build

CI / CD Pipeline

Every push. Verified and shipped.

kforge plugs into GitHub Actions and GitLab CI — detect, verify, build, and push in two jobs.

push → main
check
waiting
·Checkout source
·Set up QEMU
·Set up Docker Buildx
·Install kforge
·Resolve image name
·kforge detect
·kforge verify

needs: check

needscheck
publish
waiting
·Checkout source
·Set up QEMU
·Set up Docker Buildx
·Install kforge
·Resolve image name
·Log in to GHCR
·kforge build --push

needs: check

kforge ci initv1.1.1
$ kforge ci init --target github  # generates .github/workflows/kforge-ci.yml
$ kforge ci init --target gitlab                  # or GitLab CI

Project Structure & Architecture

Clean, modular Go codebase — one binary that works standalone or as a Docker CLI plugin.

~/kforge — tree
kforge/Go 1.24.0 · MIT
├── .github/
└── workflows/
├── ci.yml
└── release.yml
├── cmd/
└── main.go
├── commands/
├── build.go
├── bake.go
├── builder.go
├── ci.go
├── detect.go
├── deploy.go
├── doctor.go
├── init.go
├── verify.go
└── version.go
├── internal/
├── project/
│ │ ├── detect.go
│ │ └── templates/
└── meta/
└── meta.go
├── builder/
└── builder.go
├── bake/
└── bake.go
├── util/
└── progress/
└── progress.go
├── .goreleaser.yml
├── docker-kforge
└── go.mod
10 Commands6 Packages1.24 Go versionMIT License