Skip to content

Latest commit

 

History

173 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FuncHole logo

FuncHole is a self-hosted platform where coding agents can build and operate real app capabilities through MCP. It gives agents a place to create functions, compose flows, publish artifacts, expose routes, run test invocations, and inspect what they shipped.

FuncHole also gives humans the control plane around that workflow: domains, gateways, secrets, environments, databases, logs, and manual operations. The goal is simple: let the agent do the build work, while you keep the production controls.

Watch the demo

Join the Discord

Getting Started

Run the local development stack:

docker compose -f docker-compose.dev.yml up --build

Then open the control-plane web UI at http://localhost:3000. The controlplane API runs at http://localhost:7080, and the local Gateway listens at https://localhost.

For the full local workflow, see docs/development.md.

Self Hosting

The development stack includes the controlplane, web UI, raw Netty Gateway, Dispatcher, Runtime Registry, Node.js Runtime worker, PostgreSQL, OpenBao, NATS + JetStream, and RustFS.

Self-hosting is the main direction of the project. The current Docker Compose setup is intended for development and product validation; production hardening is still evolving. Configuration details are tracked in docs/environment-variables.md, and known limits are tracked in docs/limitations.md.

Community & Support

  • Join the FuncHole Discord for feedback, product discussion, and help.
  • Open issues for bugs, confusing workflows, and small improvement ideas.
  • Read CONTRIBUTING.md before making architecture, persistence, or runtime changes.

Building from Source

FuncHole uses Java 25 and Gradle:

./gradlew build

Docker Compose is recommended for daily development because it starts the supporting services alongside the Java modules.

Disclaimers

  • FuncHole is under active development.
  • Development certificates are self-signed, so browser warnings are expected.
  • Runtime Registry state is currently in-memory and not a distributed scheduler.
  • Custom local domains still require host-machine DNS setup.
  • FuncHole is licensed under FSL-1.1-Apache-2.0; see LICENSE.md.

Repository Layout

  • controlplane/ contains the Spring Boot API, MCP server, and build pipeline.
  • control-plane-web/ contains the Next.js control-plane UI.
  • gateway/ contains the raw Netty HTTPS ingress service.
  • invocation/ contains invocation persistence and immutable snapshots.
  • dispatcher/ consumes JetStream events and plans Flow step execution.
  • runtime-registry/ selects and reserves runtime capacity.
  • runtime/ contains the Node.js runtime worker.
  • artifact/ contains artifact publishing, fetching, and caching contracts.
  • certificate/ contains certificate contracts and generation support.
  • docs/ contains architecture, development, and operations notes.

About

Open-source platform for deploying and running functions behind your own Infra.

Topics

Resources

Contributing

Stars

55 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages