Skip to content

zeitlos/lucity

Lucity

The PaaS you can leave.

Open-source PaaS on Kubernetes. Deploy like Railway. Eject to standard Helm & ArgoCD when you're ready.

CI License Go 1.26


Lucity is a self-hosted PaaS that deploys your apps to Kubernetes from a GitHub repo. It gives you the developer experience of Railway or Heroku with the control of owning your infrastructure. When you're ready to move on, lucity eject gives you standard Helm charts and ArgoCD configs — zero lock-in, zero vendor dependency.

Lucity demo — deploy in 60 seconds
Deploy in 60 seconds — watch the full demo

Why Lucity?

  • No lock-in. lucity eject produces real Helm charts and ArgoCD configs — the actual infrastructure-as-code, not a proprietary dump. Try asking Railway for that.
  • No database. The platform is stateless. All state lives in Git, Kubernetes, and your OCI registry. If Lucity goes down, your workloads keep running.
  • No magic. Built on Kubernetes, Helm, ArgoCD, Gateway API, and CloudNativePG. Standard kubectl works for everything. Nothing proprietary under the hood.
  • No compromise. Swiss-engineered, self-hostable anywhere, AGPL-licensed. Or let us host it in Switzerland.

Features

Deploy

  • Git push to deploy from any GitHub repo
  • Auto-detect language, framework, and port
  • Async builds with real-time log streaming
  • Rolling deployments with rollback

Environments

  • Development, staging, and production out of the box
  • Ephemeral PR preview environments
  • Promote between environments without rebuilding

Infrastructure

  • PostgreSQL databases via CloudNativePG
  • Redis instances
  • Cron jobs
  • Custom domains with DNS verification

Operations

  • Environment variables — shared, per-service, database refs
  • Database explorer with query execution
  • Deploy and service log streaming
  • Full GraphQL API

Ejectability

  • lucity eject exports your Helm charts and ArgoCD configs
  • Ejected output is fully self-contained — zero Lucity dependencies
  • Standard tools all the way down: Helm, ArgoCD, Gateway API, CloudNativePG

Architecture

flowchart LR
    GH["GitHub Repo"]
    WH["Webhook"]
    GW["Gateway"]
    BU["Builder"]
    PA["Packager"]
    DE["Deployer"]
    ZO["OCI Registry"]
    SS["Git Server"]
    AR["ArgoCD"]
    K8["Kubernetes"]
    UI["Dashboard"]

    GH -- "webhook" --> WH
    WH --> GW
    UI -- "GraphQL" --> GW
    GW -- "gRPC" --> BU
    GW -- "gRPC" --> PA
    GW -- "gRPC" --> DE
    BU -- "push image" --> ZO
    PA -- "commit values" --> SS
    DE -- "sync" --> AR
    AR -- "deploy" --> K8
    ZO -. "pull" .-> K8
    SS -. "watch" .-> AR
Loading

The platform is stateless — no central database. All state lives in Git (Soft-serve), Kubernetes, and the OCI registry (Zot). Your source repo is read-only to the platform; all managed configuration lives in a separate GitOps repo. If the platform goes down, your workloads keep running.

Concepts

Every Lucity concept maps to standard Kubernetes and GitOps primitives — no proprietary abstractions.

Concept Source of Truth Kubernetes
Project GitOps repo on Soft-serve Namespaces via lucity.dev/project label
Environment environments/{env}/values.yaml Namespace + ArgoCD Application
Service base/values.yamlservices.{name} Deployment + ClusterIP Service
Database base/values.yamldatabases.postgres.{name} CloudNativePG Cluster + Secret
Build OCI image in Zot registry Tagged with commit SHA
Deployment Git commit in GitOps repo ArgoCD sync → rolling update
Promotion Image tag copied between env values Same digest, no rebuild
Domain services.{name}.domains[] Gateway API HTTPRoute
Cron Job cronJobs.{name} in env values CronJob
Variables Helm values (shared, per-service, DB refs) ConfigMap, pod env, CNPG Secret

See Concepts in the docs for the full breakdown.

Quick Start

Install with Helm:

helm install lucity oci://ghcr.io/zeitlos/lucity/charts/lucity \
  --namespace lucity-system --create-namespace

For local development, see the Contributing guide.

Tech Stack

Component Technology
Runtime Kubernetes
Builds railpack
GitOps ArgoCD + Helm
Networking Gateway API (Envoy)
Databases CloudNativePG
Registry Zot (OCI)
Git Server Soft-serve
API GraphQL (gqlgen) + gRPC
Dashboard Vue 3 + Vite
Language Go 1.26

Documentation

Full documentation at lucity.cloud.

Lucity Cloud

Don't want to run Kubernetes yourself? Lucity Cloud is a managed version of everything above — same open-source platform, zero infrastructure to maintain.

Join the waitlist — or just self-host. We're cool either way.

Built by zeitlos

Lucity is made by zeitlos.software, a Swiss software company. If you're looking to adopt Kubernetes and want help beyond what a PaaS provides, we do that too.

Contributing

We welcome contributions! See CONTRIBUTING.md for development setup, architecture overview, and how to get started.

License

AGPL-3.0

About

A PaaS you can leave. GitOps-native, stateless, built on Kubernetes and Helm.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors