Introduction
SF

Documentation

Everything you need to use StackForge

📖Introduction

StackForge is a visual DevOps pipeline builder. Instead of reading dozens of docs and writing custom scripts, you drag tools onto a canvas, connect them, configure each node, and generate production-ready install scripts in seconds.

It supports 71 tools across 16 categories — from Kubernetes distributions and ingress controllers to CI/CD pipelines, secret managers, and cloud providers.

71+
Tools
16
Templates
8
Cloud Providers
3
Script Formats

🚀Quick Start

Build your first production-ready K3s stack in under 5 minutes:

1
Open the Pipeline Builder
Click Open Builder in the navbar, or go to /builder.
2
Drag DigitalOcean onto the canvas
From the left palette, find DigitalOcean under Cloud Providers and drag it anywhere.
3
Add K3s and connect it
Drag K3s from Orchestration. Hover K3s to see the handles — drag from the top handle to DigitalOcean's bottom handle to connect.
4
Add Traefik + Cert-Manager
Drop both, then connect them to K3s. A Smart Suggestion popup will appear automatically.
5
Configure each node
Click a node → the right panel shows region, instance type, version, and more.
6
Click Generate Scripts
Download install.sh, install.py, and playbook.yml — all ready to run.
Pro tip — use Auto Layout
After adding tools, click Auto Layout in the toolbar to automatically arrange nodes in clean installation order using a topological DAG layout.

Core Concepts

Nodes
A tool on the canvas — K3s, Docker, Traefik, ArgoCD, etc. Each node represents one thing to install or provision.
Edges
Connections between nodes. Dependency edges (blue) control installation order. Data (purple) and Network (green) edges are informational.
Config Panel
Click any node to configure it — region, version, CPU/RAM, CNI plugin, storage class, Git repo URL, and more.
Script Generator
Topologically sorts your pipeline by dependency edges and outputs Bash, Python, or Ansible scripts.
Auto Layout
Automatically arranges all nodes in a clean layered DAG — perfect for large pipelines.
Flow Preview
Professor Mode — steps through each tool in installation order, showing the exact commands with a live terminal animation.

🔧Builder Overview

The builder has four regions:

  • Left panel — Tool palette with search, category filter, and smart suggestions
  • Center canvas — ReactFlow drag-and-drop surface with dot/line grid background
  • Right panel — Config panel for the selected node (click any node)
  • Top toolbar — Home, Auto Layout, Preview, Save, Load, Undo/Redo, Generate

Dropping tools

Drag any tool from the left palette and drop it onto the canvas. A new node appears at the drop position. A Smart Suggestion popup will appear offering related tools to add and auto-connect.

Connecting nodes

Hover over a node to reveal the handles (small colored dots). Drag from the bottom (source) handle to the top (target) handle of another node to create an edge.

Mobile layout

On phones, the panels are hidden by default. Use the bottom tab bar (Tools / Layout / Preview / Generate / Config) to open panel overlays.

Auto LayoutNew

Auto Layout uses Kahn's topological sort (BFS-based) to assign each node to a layer based on its longest path from any root. Nodes at the same dependency depth are placed side-by-side, producing a clean top-to-bottom DAG.

How to use

  • Click Auto Layout in the toolbar (enabled when 2+ nodes exist)
  • Or tap Layout in the mobile bottom bar
  • The action is undoable — press Ctrl+Z to revert
💡
Best practice
Connect your nodes with dependency edges before using Auto Layout — the algorithm uses those edges to determine layer assignment. Nodes with no edges are placed in layer 0 (top row).

Flow Preview — Professor Mode✦ New

Flow Preview gives you a step-by-step installation walkthrough of your entire pipeline. Each step shows the exact terminal commands, estimated duration, and what the tool does — like a professor teaching you the stack.

Features

  • Topological sort determines the correct installation order automatically
  • Live terminal animation — commands appear line-by-line as if being typed
  • Play / Pause with configurable speed (½×, 1×, 2×)
  • Previous / Next step navigation
  • Each step shows duration estimate and "Up next" hint
  • 25+ tools have curated install commands (k3s, docker, ArgoCD, Prometheus, Vault, and more)

Keyboard controls (inside Preview)

← / ↑Previous step
→ / ↓Next step
SpacePlay / Pause auto-walk
EscClose preview

⌨️Keyboard Shortcuts

Delete / BackspaceRemove selected node or edge
Ctrl + ZUndo last action
Ctrl + YRedo last action
Ctrl + ScrollZoom in / out on canvas
Space + DragPan the canvas
← → (in Preview)Step through installation flow
Space (in Preview)Play / Pause auto-walk
EscClose any modal or overlay

Node Types

StackForge includes 71 tools across 13 categories. Each node has color-coded borders, a category badge, and a green dot when configured.

⚙️
Orchestration
K3s, Kubeadm, RKE2, K0s, MicroK8s, KinD, Nomad, Docker Swarm
📦
Container Runtime
Docker, Podman, containerd, runc
🔀
Ingress
Traefik, NGINX Ingress, HAProxy
🔐
Certificates
Cert-Manager, HashiCorp Vault, Let's Encrypt
📊
Monitoring
Prometheus + Grafana, Datadog, Loki, Jaeger, OpenTelemetry, Uptime Kuma
🔄
CI/CD
ArgoCD, Jenkins, GitHub Actions Runner, GitLab CI, Tekton, Argo Rollouts, Argo Workflows
🕸️
Service Mesh
Istio, Linkerd, Cilium
💾
Storage
Longhorn, OpenEBS, Rook-Ceph, NFS Provisioner
🛡️
Security
Falco, OPA/Gatekeeper, Kyverno, Keycloak, Sealed Secrets, External Secrets Operator, Trivy
☁️
Cloud Providers
AWS, DigitalOcean, GCP, Azure, Hetzner, Linode, Vultr, Bare Metal
📝
IaC
Terraform, Ansible
🖥️
Dashboard
K8s Dashboard, Rancher, Portainer, k9s, Lens
🗄️
Registry
Harbor, Gitea, Nexus

Edge Types

Dependency
Tool B depends on Tool A (solid blue). Controls installation order.
e.g. K3s → Traefik, Cloud → K3s
Data Flowanimated
Data flows between tools (animated purple). No ordering implication.
e.g. K3s → Prometheus (metrics)
Networkdashed
Network/routing relationship (dashed green). Informational.
e.g. MetalLB → Traefik (routes)

Smart Connections

When you drop a tool onto the canvas, StackForge shows a Smart Suggestion popup with curated companion tools. Click any suggestion to auto-add and auto-connect the tool with the correct edge type.

  • K3s suggests: Traefik, Cert-Manager, Prometheus, Longhorn, ArgoCD, Helm
  • Docker suggests: Traefik, Portainer, Prometheus, Harbor
  • ArgoCD suggests: Prometheus, Vault, Argo Rollouts, Argo Workflows
  • Vault suggests: External Secrets Operator, Cert-Manager

If a suggested tool is already on the canvas, it shows ⚡ connect (wire only) instead of + add & connect.

Script Generation

Click Generate Scripts in the toolbar. StackForge calls POST /api/generate, which:

  • Topologically sorts nodes by dependency edges
  • Generates tool-specific install commands per node
  • Outputs 3 formats: Bash, Python, Ansible

Shell Scripts (install.sh)

A production-grade Bash script with color logging, root checks, and error handling. Example snippet for K3s:

bash
#!/usr/bin/env bash
set -euo pipefail

GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m'
log()  { echo -e "$GREEN[StackForge]$NC $1"; }
info() { echo -e "$BLUE[INFO]$NC $1"; }

[ "$EUID" -ne 0 ] && { echo "Please run as root"; exit 1; }

install_k3s() {
  log "Installing K3s..."
  curl -sfL https://get.k3s.io | sh -
  kubectl wait --for=condition=Ready node --all --timeout=120s
  log "K3s installed successfully"
}

install_k3s

Ansible Playbooks (playbook.yml)

A complete Ansible project with variables, task blocks, and handlers:

yaml
---
- name: StackForge - Deploy K3s Stack
  hosts: all
  become: true
  vars:
    k3s_version: "{{ k3s_version | default('latest') }}"
    k3s_servers: 1
    k3s_agents: 2

  tasks:
    - name: Install K3s server
      shell: curl -sfL https://get.k3s.io | sh -
      args:
        creates: /usr/local/bin/k3s

    - name: Wait for K3s to be ready
      command: kubectl wait --for=condition=Ready node --all --timeout=120s
      retries: 5
      delay: 10

{ }POST /api/generate

Generates scripts from a pipeline definition.

Request

json
{
  "nodes": [
    {
      "id": "n1",
      "toolId": "k3s",
      "position": { "x": 200, "y": 200 },
      "config": { "version": "v1.29", "servers": 1, "agents": 2 }
    },
    {
      "id": "n2",
      "toolId": "traefik",
      "position": { "x": 400, "y": 380 },
      "config": {}
    }
  ],
  "edges": [
    { "id": "e1", "source": "n1", "target": "n2", "type": "dependency" }
  ]
}

Response

json
{
  "scripts": [
    { "filename": "install.sh",   "language": "shell",   "content": "#!/usr/bin/env bash..." },
    { "filename": "install.py",   "language": "python",  "content": "#!/usr/bin/env python3..." },
    { "filename": "playbook.yml", "language": "ansible", "content": "---\n- name: ..." }
  ],
  "nodeCount": 2
}

POST /api/validate

Validates a pipeline configuration — checks for dependency cycles, missing required config fields, and incompatible tool combinations.

json
// Request — same shape as /api/generate
{ "nodes": [...], "edges": [...] }

// Response
{
  "valid": true,
  "warnings": ["Traefik added but no cert-manager found — TLS will not auto-provision"],
  "errors": []
}

☁️DigitalOcean Setup

Drag DigitalOcean from Cloud Providers onto the canvas. In the config panel:

  • Region — nyc3, sfo3, ams3, sgp1, fra1, and more
  • Instance type — s-1vcpu-2gb ($12/mo) to s-8vcpu-16gb ($96/mo)
  • Node count — 1 to 10 droplets
  • SSH Key — key name or fingerprint from your DO account
  • API credentials — stored locally in your browser, never sent to any server

AWS Setup

Drag AWS from Cloud Providers. Configure region (us-east-1, us-west-2, etc.), instance type (t3.small → m5.xlarge), node count, and your API credentials. Generated scripts use Terraform to provision EC2 instances and VPCs.

Hetzner Setup

Drag Hetzner from Cloud Providers. Hetzner offers exceptional price/performance — cx22 (2 vCPU, 4GB) for just €3.79/mo. Configure region (nbg1, hel1, fsn1, ash), server type, and your Hetzner Cloud API token.

StackForge v1.0.0
by Ing Muyleang · KhmerStack · muyleanging.com