ForgePod Self-hostable Platform-as-a-Service

Deploy apps to your own infrastructure with a single API call. Multi-node cluster with automatic load balancing. Powered by Podman.

⚙️
Control Plane
📦
Worker 1
📦
Worker 2
$ git clone <repo> forgepod && cd forgepod && sudo ./scripts/forgepod-cp-install.sh
Get Started View on GitHub Documentation

Core Features

Single API Deploy

Deploy containerized apps with a single POST request. Automatic image pulling, container creation, and Traefik routing.

Multi-Node Cluster

Scale across multiple worker nodes. Scheduler places containers on the least-loaded node automatically.

Podman Powered

Built on Podman v5 — daemonless, rootless-capable container engine. No Docker dependency required.

Traefik Reverse Proxy

Automatic wildcard routing via Traefik. Each app gets its own subdomain: app.apps.example.com.

Auto Scaling

Scale app replicas up or down via API or CLI. Containers are distributed across available worker nodes.

Swagger API Docs

Interactive Swagger UI at /docs. Full REST API for deploy, scale, logs, and node management.

Prometheus + Grafana

Built-in metrics collection with Prometheus. Visualize system and application metrics with Grafana dashboards.

CLI Tool

Full-featured CLI (forgepodctl) for deploy, scale, logs, apps, nodes — all from your terminal.

Secure by Design

Podman API is localhost-only. Containers never expose ports publicly — Traefik handles all external routing.

Architecture

Control Plane + Worker Node architecture — simple yet powerful

Internet
🌐 Traefik :80 / :443
⚙️ ForgePod API :9000 (FastAPI)
🗄️ PostgreSQL
Redis
📦 Worker 1 Podman v5 + Containers
📦 Worker 2 Podman v5 + Containers
Worker N Add more nodes

Tech Stack

OS
Ubuntu 24.04 LTS
Runtime
Podman v5
Build
Buildah
Proxy
Traefik
Database
PostgreSQL
Queue
Redis
Metrics
Prometheus + Grafana
API
FastAPI (Python)

Why ForgePod?

ForgePod is a lightweight, self-hostable PaaS designed for developers who want simplicity and control — powered by Podman instead of Docker.

Platform Comparison

Feature ForgePod Mist Coolify Dokku CapRover
Container Runtime Podman v5 Docker Docker Docker Docker
Multi-Node Built-in Single node Single node Single node Cluster support
API-First REST + Swagger REST REST ~ CLI based ~ CLI + API
Auto SSL Traefik + Let's Encrypt Let's Encrypt Let's Encrypt Let's Encrypt ~ Via plugins
Monitoring Prometheus + Grafana Built-in Built-in Manual ~ Basic
Load Balancing Traefik auto Nginx
CLI Tool forgepodctl Built-in ~ CLI only
Daemonless Runtime Podman Docker daemon Docker daemon Docker daemon Docker daemon
Learning Curve Easy Easy Easy Moderate Moderate
Maturity New (2025) New (2025) Established Mature Mature

What ForgePod Does Well

  • Podman-Native — No Docker daemon required. Lighter, more secure container runtime.
  • Multi-Node Out of the Box — Worker nodes auto-register and receive heartbeats every 30s.
  • API-First Design — Full REST API with Swagger docs. Deploy with a single curl command.
  • Automatic Load Balancing — Traefik distributes traffic across replicas. Least-loaded scheduler for placement.
  • Observability Built-In — Prometheus metrics + Grafana dashboards from day one.
  • Simple Architecture — Control plane + workers. No complex orchestration. Easy to understand and debug.

Current Limitations

  • No Web UI — Currently API and CLI only. Dashboard planned for future release.
  • No Git Integration — Deploy from pre-built images only. GitHub deploy pipeline is on the roadmap.
  • No Database Services — No one-click provisioning for databases (coming soon).
  • Early Stage — New project (2025). Smaller community compared to Dokku or CapRover.
  • Ubuntu Only — Currently tested on Ubuntu 24.04 LTS only.

🚀 Rapidly Evolving

ForgePod is actively developed with new features added continuously. We're building the PaaS we always wanted — lightweight, Podman-powered, and truly multi-node. Check the roadmap below for what's coming next.

Quick Start

1

Install Control Plane

git clone <repo> forgepod && cd forgepod
sudo ./scripts/forgepod-cp-install.sh

Installs PostgreSQL, Redis, Podman v5, Buildah, Traefik, and the FastAPI server.

2

Add Worker Nodes

sudo ./scripts/forgepod-worker-install.sh \
http://CONTROL_PLANE_IP:9000

Worker auto-registers with the control plane and sends heartbeats every 30s.

3

Deploy Your App

curl -X POST http://CP_IP:9000/deploy \
-H "Content-Type: application/json" \
-d '{"name":"demo","image":"nginx","replicas":2}'

Result: http://demo.apps.example.com

Roadmap

v1 — Single-node PaaS

Core container deployment with Podman on a single server.

v2 — GitHub Deploy + Build Pipeline

Git integration with automated builds via Buildah.

v3 — Multi-node Runtime

Worker node architecture with auto-registration and heartbeats.

v4 — Autoscaling + Metrics + CLI

Prometheus + Grafana monitoring, forgepodctl CLI, and replica scaling.

v5 — Edge Nodes + Global Routing

Edge node deployment with geo-aware traffic routing.

Community