whatisgithub

What is fn?

fnproject/fn — explained in plain English

Analysis updated 2026-06-26

5,935GoAudience · ops devopsComplexity · 4/5Setup · moderate

In one sentence

Fn is an open-source Functions-as-a-Service platform that runs code in Docker containers on your own server or any cloud, supporting Go, Node.js, Python, Java, and AWS Lambda imports with no server management.

Mindmap

mindmap
  root((Fn FaaS))
    Core concept
      Docker containers
      Any language
      Self-hostable
    Supported languages
      Go
      Node.js
      Python
      Java
    Features
      Lambda import
      Flow chaining
      Web UI
      Load balancer
    Audience
      DevOps engineers
      Backend developers
      Self-hosters
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Deploy serverless functions on your own server instead of a cloud provider, using any programming language Docker supports.

USE CASE 2

Import and run existing AWS Lambda functions on Fn without rewriting them using Fn's Lambda compatibility layer.

USE CASE 3

Build a workflow that chains multiple Fn functions together using the Fn Flow companion project.

What is it built with?

GoDocker

How does it compare?

fnproject/fnprojectdiscovery/naabugo-flutter-desktop/go-flutter
Stars5,9355,9355,933
LanguageGoGoGo
Setup difficultymoderatemoderatemoderate
Complexity4/53/53/5
Audienceops devopsops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Docker installed and running locally or on your server before any functions can be deployed.

So what is it?

Fn is an open-source platform that lets you run small, self-contained pieces of code called functions without managing the underlying servers yourself. This concept is called Functions-as-a-Service (FaaS): instead of running a full application server around the clock, you write a function that does one specific thing, deploy it, and the platform handles running it when needed. The platform is built around Docker containers, which are a standard way of packaging software so it runs consistently across different machines. Because every function runs inside a container, you can write your function in any programming language that Docker supports, including Go, Node.js, Java, Python, and others. Fn can run on your own computer, on a private server, or on any cloud provider, and it can also import functions written for Amazon's Lambda service and run them without changes. Getting started involves installing a small command-line tool, starting an Fn server locally, and then creating a function with one command that generates the project scaffold in your chosen language. From there, you create an app (which groups related functions together), deploy the function to that app, and invoke it. The whole cycle from setup to running a first function takes only a few minutes according to the quickstart guide. Fn is written in Go and is designed to be extensible. It ships with an embedded database and message queue for simple setups, with configuration options available for more complex deployments. Companion projects include a web UI, a flow system for chaining functions together, and a load balancer component. The project has a Slack community, a YouTube channel with tutorials, and documentation covering both developer and operator workflows.

Copy-paste prompts

Prompt 1
Walk me through setting up Fn locally, creating a Node.js function, deploying it to a local Fn server, and invoking it from the command line.
Prompt 2
How do I import an existing AWS Lambda function into Fn and run it on my own server without changing the function code?
Prompt 3
Show me how to create an Fn app that groups three related Python functions together and configure Fn to use an external database instead of the embedded one.
Prompt 4
Set up Fn with Docker on a Linux VPS to run a Go function and show me how to check the logs after it executes.

Frequently asked questions

What is fn?

Fn is an open-source Functions-as-a-Service platform that runs code in Docker containers on your own server or any cloud, supporting Go, Node.js, Python, Java, and AWS Lambda imports with no server management.

What language is fn written in?

Mainly Go. The stack also includes Go, Docker.

How hard is fn to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is fn for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.