Skip to content

Welcome to Forkspacer

Forkspacer is an open-source platform that lets you create, fork, and hibernate entire Kubernetes or VM-based environments. Developers can clone full setups, test changes in isolation, and automatically hibernate idle workspaces to save resources—all declaratively, with GitOps-style reproducibility. Perfect for teams where each developer needs a personal, forked environment from a shared baseline.

Create a Workspace

A Workspace is an isolated Kubernetes environment that can be hibernated and forked. Workspaces can automatically hibernate on a schedule to save costs.

apiVersion: batch.forkspacer.com/v1
kind: Workspace
metadata:
name: default
namespace: default
spec:
type: kubernetes
connection:
type: in-cluster
autoHibernation:
enabled: true
schedule: "0 42 18 * * *"
wakeSchedule: "0 42 19 * * *"

Auto-hibernation? Workspaces can automatically sleep during off-hours (like nights and weekends) to reduce cloud costs, then wake up when needed. Learn more →

Deploy a Module

Manage your environments via Helm charts or custom containerized modules.

apiVersion: batch.forkspacer.com/v1
kind: Module
metadata:
name: redis
namespace: default
config:
- name: "Redis Version"
alias: "version"
option:
default: "21.2.7"
values: ["21.2.9", "21.2.7"]
spec:
helm:
chart:
repo:
url: https://charts.bitnami.com/bitnami
chart: redis
version: "{{.config.version}}"
namespace: default
values:
- raw:
image:
repository: bitnamilegacy/redis
global:
security:
allowInsecureImages: true
workspace:
name: default
namespace: default
config:
version: "21.2.7"

Understand Core Concepts

Learn about Workspaces, Modules, Module Definitions, and how Forkspacer manages environments with hibernation and forking.

Learn core concepts →

Get Started

Install Forkspacer in your cluster and create your first workspace in 5 minutes.

Installation guide →

Module Examples

Helm module example
apiVersion: batch.forkspacer.com/v1
kind: Module
metadata:
name: redis
namespace: default
config:
- name: "Redis Version"
alias: "version"
option:
editable: true
required: false
default: "21.2.9"
values:
- "21.2.9"
- "21.2.7"
- "21.2.6"
- name: "Replica Count"
alias: "replicaCount"
integer:
editable: true
required: false
default: 1
min: 0
max: 5
spec:
helm:
chart:
repo:
url: https://charts.bitnami.com/bitnami
chart: redis
version: "{{.config.version}}"
namespace: default
values:
- raw:
replica:
replicaCount: "{{.config.replicaCount}}"
image:
repository: bitnamilegacy/redis
global:
security:
allowInsecureImages: true
outputs:
- name: "Redis Password"
valueFrom:
secret:
name: "{{.releaseName}}"
key: redis-password
namespace: default
- name: "Redis Port"
value: 6379
cleanup:
removePVCs: true
workspace:
name: default
config:
version: "21.2.9"
replicaCount: 1
Custom module example
apiVersion: batch.forkspacer.com/v1
kind: Module
metadata:
name: custom-installer
namespace: default
config:
- name: "Environment"
alias: "env"
option:
default: "production"
values: ["development", "staging", "production"]
spec:
custom:
image: "my-registry/custom-module:v1.0.0"
permissions:
- workspace
workspace:
name: default
config:
env: "production"