miabi

module
v1.6.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2026 License: AGPL-3.0

README

Miabi

Miabi

The open-source, self-hosted PaaS for shipping apps, not infrastructure.
Docker Compose isn't enough. Kubernetes is overkill. Miabi is the middle.
Multi-tenancy · GitOps · rolling & canary · built-in registry · analytics · monitoring · multi-node.

Live Demo · Quick Start · Features · Comparison · Architecture · CLI · Docs

CI Go Report Card Go Go Reference GitHub Release License Docker Pulls

Miabi dashboard


Table of Contents


Overview

Miabi is a self-hosted, developer-first Platform-as-a-Service for containerized apps. Push an app — from a Git repo, a Docker image, or a marketplace template — and Miabi handles the rest: build, deploy, domains, automatic SSL, databases, scaling, backups, monitoring, and analytics. All from one web interface, in minutes, without touching a single Docker command.

It is designed as a fully self-hostable alternative to platforms like Heroku, Render, and Railway — giving you complete ownership of your infrastructure, data, and runtime, on a VPS, dedicated box, homelab, or cloud VM.

The name. Miabi is Tshiluba (Kasai, DR Congo 🇨🇩) for the muabi trees — traditionally associated with blessing and growth. It joins the same family as its sibling projects Goma Gateway and Posta.


Why Miabi

Miabi is built for developers, teams, hosting providers, and organizations that want the simplicity of a modern Platform-as-a-Service without giving up control of their infrastructure.

Whether you're deploying a single application on a VPS, running a shared hosting platform for hundreds of customers, or building an internal developer platform, Miabi provides everything you need in one integrated platform.

The gap Miabi fills

Docker Compose isn't enough for production — no rolling updates, no rollback, no TLS, no multi-tenancy. Kubernetes is overkill — a service mesh just for canary, Argo CD or Flux just for GitOps, and a platform team to keep it all running. Miabi sits in the middle: production-ready deployments on plain Docker, with the strategies you actually need built in.

Docker Compose Miabi Kubernetes
Too little for production Just right Too much to operate

Developer-first experience

  • Deploy applications from Git repositories, Docker images, or Marketplace templates
  • No Kubernetes knowledge required
  • Modern web interface, REST API, and official CLI
  • Buildpacks for projects without Dockerfiles
  • One-click deployments, rollbacks, and zero-downtime updates

Built for multi-tenancy

Unlike most self-hosted PaaS platforms, Miabi was designed around workspaces from day one.

Every application, database, domain, volume, registry image, secret, backup, and deployment belongs to a workspace, making Miabi ideal for:

  • Shared hosting providers
  • Agencies managing client applications
  • SaaS platforms
  • Internal developer platforms
  • Universities and organizations

Docker without Kubernetes complexity

Miabi delivers a cloud platform experience while staying Docker-first.

  • Single-node and multi-node deployments
  • Optional Docker Swarm clustering
  • Rolling (zero-downtime) and canary deployments — no service mesh required
  • Built-in load balancing
  • Docker import for existing applications
  • No Kubernetes cluster to operate

Production-ready networking

Powered by Goma Gateway, Miabi includes:

  • Automatic HTTPS with Let's Encrypt and wildcard certificates
  • DNS provider integrations
  • Built-in load balancing and canary traffic splitting
  • Gateway middlewares
  • Custom domains with workspace-aware routing

Secure by design

Security is built into the platform — not added later.

  • Workspace isolation
  • Role-based access control (RBAC)
  • Encrypted secrets and audit logs
  • Two-factor authentication
  • OAuth / OpenID Connect
  • Enterprise SAML, LDAP, and Active Directory support

Automate everything

Miabi is API-first. Everything available in the web interface is also available through:

  • REST API with OpenAPI documentation
  • Official CLI
  • GitOps and CI/CD pipelines
  • Terraform / OpenTofu provider

Own your platform

Run Miabi on a VPS, dedicated server, bare metal, homelab, or private/public cloud. No vendor lock-in. No managed control plane. Your infrastructure, your data, your rules.


Core Features

Applications & deployments

  • Deploy from a Git repo (build), a Docker image (pull), or a marketplace template
  • Buildpack builds (no Dockerfile required) with configurable memory/time limits
  • Releases with one-click rollback and full deployment history
  • Zero-downtime updates with canary aliases and weighted traffic splitting
  • Env vars, a workspace secret vault, and per-app resource limits
  • Jobs — run one-off commands in an app's runtime context
  • Stacks — group related apps (compose-style); Environments — dev → staging → prod
  • Per-app timeline of lifecycle events
  • Built-in container registry — push & pull your own images with docker login <registry> -u <workspace-name> -p <api-token> (or your username); multi-tenant and namespaced per workspace, with local or S3/MinIO storage and an optional garbage-collector

Domains, networking & TLS

  • Domains with DNS-verified ownership
  • Routing via Goma Gateway (pluggable proxy) with workspace-owned middlewares
  • Automatic TLS — default HTTP-01 ACME (Let's Encrypt), managed wildcard / DNS-01 certs via a connected DNS provider (auto-renewed), and uploaded custom certs (encrypted)
  • Workspace-isolated Docker networks carved from a managed address pool (so a busy multi-tenant host never exhausts Docker's small default pool), a configurable roomy CIDR for the shared proxy network, per-node edge gateways, and on-demand port forwarding to managed databases

Data, storage & backups

  • Databases — provision PostgreSQL, MySQL, MariaDB, Redis, libSQL, and MongoDB with managed credentials and in-place version upgrades
  • Volumes — persistent Docker volumes owned by workspaces: node-local by default, or shared (RWX) storage a replicated cluster app can mount across nodes — NFS, CIFS/SMB, or a host-path bind to operator-managed storage under /mnt/* (a NAS mounted on every node; privileged workspaces)
  • Backups — scheduled + manual database backup/restore and volume archives, to local, MinIO, or S3

Multi-node & clustering

  • Nodes — add remote Docker hosts; the node agent dials the control plane over an outbound WebSocket tunnel (NAT/firewall friendly)
  • Cluster mode — optional, auto-detected Docker Swarm with encrypted overlay networks
  • Replicated service apps — when cluster mode is on, apps deploy as replicated Swarm services by default (opt out per app); stateful apps with node-local storage stay pinned to a container automatically
  • Cluster ingress — public traffic reaches a clustered app's tasks wherever the scheduler placed them, through the central gateway on a shared ingress overlay that survives gateway restarts; the app detail shows the real nodes replicas run on
  • Image distribution — built images are pushed to the internal registry so any node can pull them (credentials are distributed to worker tasks), making multi-node deploys and rollbacks of Git-built apps work across the cluster
  • Housekeeping — reconcile drift and reclaim disk; Docker import — adopt pre-existing containers/volumes/networks

CI/CD & GitOps

  • Pipelines — pipeline-as-code CI/CD
  • Build runners — dedicated build/pipeline machines that keep build load off app-hosting nodes; a co-located built-in runner ships for single-node/homelab, and an optional "builds require a runner" guarantee keeps builds off production nodes entirely
  • GitOps — declarative, pull-based reconciliation from miabi.io/v1 manifests, plus an imperative one-shot apply (with dry-run, diff & prune) — no separate controller to run (no Argo CD or Flux)
  • Git push deploy, stored Git + container-registry credentials, signed webhooks, and notifications
  • Automation — everything is REST + OpenAPI, plus a CLI and an official Terraform / OpenTofu provider

Identity, teams & access

  • Auth — registration, login with email or username, password reset, JWT sessions with Redis-backed revocation, API tokens, and 2FA (TOTP)
  • SSO & directory — OAuth 2.0 / OpenID Connect (GitHub, Google, generic OIDC); Enterprise adds SAML 2.0, SCIM provisioning, and LDAP / Active Directory sign-in (users log in with their directory credentials on the normal login form) with directory groups mapped onto platform-admin and per-workspace roles
  • Workspaces & teams — members, invitations, and organizations; each workspace has a unique name handle (its URL and docker login namespace) plus a free-text display name, and each user a unique username
  • RBAC — built-in roles Owner · Admin · Developer · Viewer, enforced in middleware and by workspace_id scoping; Enterprise adds custom roles (named permission sets) and per-resource policies (grant a role on a single app/domain/database)
  • Container security profiles — optional non-root ("restricted") profile runs app and job containers as a platform UID with no-new-privileges; outbound webhooks are SSRF-guarded
  • Plans & quotas, per-workspace encryption keys (keyring/DEK), key rotation, and crypto-shred on delete

Marketplace

Official, versioned templates: WordPress, Ghost, Nextcloud, n8n, Gitea, Forgejo, Umami, NGINX, pgAdmin, phpMyAdmin, mongo-express, libSQL, Posta, PostgreSQL, MySQL, Redis, and MongoDB.

Monitoring & operations

  • Container CPU/memory/disk metrics and workspace health with retained history
  • Prometheus integration and health endpoints
  • Log storage — deployment, pipeline, job, and backup logs are externalized from Postgres to a shared filesystem store with a bounded DB tail, retention, size caps, and full-log download (live tailing unchanged)
  • Append-only audit log of every mutating action, with optional SIEM streaming to an external pipeline (syslog / webhook, Enterprise)
  • Admin platform — nodes/cluster, users, plans, settings, OAuth providers, SSO (SAML / LDAP / Active Directory), license, and SIEM

Analytics

Every app gets HTTP traffic, performance, and privacy-first web analytics in the console — with zero instrumentation. Because every request already flows through Goma Gateway, there is no JS snippet, no SDK, and no code change to your app.

  • Traffic — requests/sec, status mix (2xx–5xx), bandwidth in/out, and your busiest routes
  • Performance — p50 / p95 / p99 latency, gateway-vs-upstream split ("is my app slow or the gateway?"), error rate, and Apdex
  • Web analytics — unique visitors, top pages, referrers, countries, and device/browser families
  • Privacy-first — cookieless, no consent banner, IPs never stored; unique visitors via HyperLogLog sketches, not per-person rows — first-party and GDPR-lean

Architecture

Browser / CLI / API clients
        │
        ▼
Goma Gateway (routing, TLS/ACME) ─▶ Miabi (Go/Okapi) ─▶ Docker Engine (local + remote via agent)
                                          │  serves API + web UI (single binary)
                                          │  └─ asynq worker (deploys, provisioning, backups)
                                          └─ PostgreSQL (GORM) · Redis (cache/queue)
Layer Technology
Backend Go 1.25+ (Okapi framework, REST + OpenAPI)
Frontend Vue 3 + Pinia + Vite (built and statically served by the binary)
Database PostgreSQL (GORM)
Queue / cache Redis + Asynq
Runtime Docker Engine via the Docker SDK for Go (optional Swarm)
Reverse proxy / TLS Goma Gateway
Metrics Prometheus

The web console source lives in web/ and is embedded into the Go binary, so a deployment is a single image. The node agent is a separate module, github.com/miabi-io/agent — a thin Docker proxy that needs only an outbound connection and the local Docker socket.


Requirements

  • Go 1.25+ (to build)
  • PostgreSQL
  • Redis
  • A reachable Docker socket

Quick Start

curl -fsSL https://get.miabi.io | sudo MIABI_DOMAIN=miabi.example.com \
  MIABI_ADMIN_EMAIL=you@example.com bash

Installs Docker if missing, brings up the stack, and prints the admin password. Then:

miabi-stack status
miabi-stack restart
miabi-stack update
miabi-stack uninstall

Without the script

The Miabi image is the installer — there is no binary to install:

docker run --rm -it \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /etc/miabi:/etc/miabi \
  miabi/miabi:1.4.0 install --domain miabi.example.com --admin-email you@example.com

install, update, restart, status and uninstall are the same command with a different verb.

Installation docs — options, the /etc/miabi/stack.yaml manifest, the built-in registry, custom gateway config, and running Miabi under Docker Compose instead.

Docker Compose

Prefer to drive Compose yourself? examples/compose/ brings up the same stack — see the installation docs.

Local development

git clone https://github.com/miabi-io/miabi.git
cd miabi

make run        # API server on :9000 (worker embedded)
make worker     # standalone background worker (optional)
make build-ui   # build the Vue console into the embedded assets
make test       # unit + integration tests

API Documentation

  • OpenAPI spec and interactive docs at /docs and /openapi.json on your instance
  • The spec is generated from code annotations — see internal/routes/

Live Demo

Try Miabi without installing anything — at https://demo.miabi.io.

The demo is seeded with two independent customers across three workspaces, so you can see Miabi's core ideas first-hand: shared hosting on Docker with true workspace isolation and role-based access — every app, database, domain, volume, and secret belongs to a workspace, one tenant can never see or reach another's resources, and a member only sees the workspaces and permissions their role grants.

Sign in as any of these (password: MiabiDemo2026):

Sign in as Workspaces Role Represents
admin@acme.demo.miabi.io Acme Inc Prod · Acme Inc Dev Owner one org running prod + dev in separate, isolated workspaces
dev@acme.demo.miabi.io Acme Inc Dev Developer a teammate scoped to a single workspace — can't see Acme Inc Prod, and has only Developer permissions
admin@startup.demo.miabi.io Startup Prod Owner a different tenant — its resources are invisible to Acme

Switch workspaces from the workspace picker to watch the entire console re-scope; sign in as the other customer to confirm the isolation boundary, or as dev@acme.demo.miabi.io to see a single-workspace, Developer-scoped view.

[!IMPORTANT] These are workspace accounts, not the platform admin. They can't see the admin platform (nodes/cluster, users, plans, settings, licensing). To explore the platform-admin features, install Miabi on your own server or local Docker — the first account you seed is the platform admin.

[!NOTE] Apps on the demo run under a restricted (non-root) security profile: each container runs as a dedicated, unprivileged user, not root. If you deploy a new app, make sure its image can run as a non-root user — for security, every new app on the demo is restricted from running as root, so images that require root will fail to start.


Screenshots

Miabi's web console manages every resource — deployments, domains, databases, backups, monitoring, marketplace, teams, and the admin platform.

Workspace dashboard
Workspace dashboard
Deploy an application
Deploy a new application from Git, image, or template
Login screen
Miabi login screen
Application overview & deployments
Application overview and deployment history
Canary deployment
GitOps deployment
CI/CD pipelines
CI/CD pipelines with live per-step logs
Marketplace
Marketplace templates
Domains, routes & TLS
Domains, routes, and automatic TLS
Managed databases
Managed databases
Backups
Scheduled and manual backups
Monitoring
Container and workspace monitoring
Analytics overview
Analytics overview
Analytics http traffic
Analytics http-traffic
Nodes & cluster
Multi-node and cluster management
Platform admin
Platform admin

Feature Comparison

Feature Miabi Coolify Dokploy CapRover
Self-hosted
Open Source
Web UI
Shared hosting
CLI
REST API Partial Limited
OpenAPI Documentation
Multi-tenancy
Workspace Isolation
Organizations & Teams Limited
RBAC Limited
Deploy from Git
Deploy Docker Images
Marketplace / Templates Limited
Buildpacks (No Dockerfile)
Built-in Container Registry
Managed Databases Limited
Automatic HTTPS (Let's Encrypt)
Canary Deployments
Zero-downtime Deployments Limited Limited Limited
Rollbacks Limited Limited
CI/CD Pipelines
GitOps
Multi-node Deployments Partial Partial Partial
Docker Swarm Support
Docker Import
Secrets Management Partial Partial Limited
Monitoring ✅ Built-in Basic Basic Basic
Built-in Analytics (privacy-first)
Scheduled Backups Partial Partial
Audit Logs
API Tokens
OAuth / OIDC Partial
SAML / LDAP (Enterprise)
Terraform Provider

Ecosystem

Miabi is part of a family of self-hosting tools by the same author:

  • Okapi — the Go web framework Miabi is built on
  • Goma Gateway — reverse proxy + TLS/ACME
  • miabi-cli — the official CLI
  • terraform-provider-miabi — official Terraform / OpenTofu provider for managing Miabi resources as code
  • agent — the outbound node agent for multi-node deployments
  • runner — dedicated build/pipeline runner
  • marketplace — official app templates catalog
  • Posta — self-hosted email delivery & inbound platform
  • pg-bkup / mysql-bkup — database backup tools

Documentation

  • API docs — /docs and /openapi.json on a running instance

Contributing

Contributions are welcome. Please open an issue before submitting a pull request.


Contact


License

Miabi core is free and open source under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later) — see LICENSE and NOTICE. A commercial license is available for uses that don't fit the AGPL (e.g. offering a modified Miabi as a hosted service without publishing your changes).

Enterprise features (everything under internal/enterprise/, built with the enterprise tag) are not AGPL: they are licensed under the Miabi Enterprise License — see internal/enterprise/LICENSE.md — and require a valid commercial license to use. See LICENSING.md for the full breakdown, and CONTRIBUTING.md for the contributor terms.

Copyright (c) 2026 Jonas Kaninda

Directories

Path Synopsis
cmd
miabi command
miabi-license command
internal
acme
Package acme issues TLS certificates via ACME DNS-01, backed by go-acme/lego.
Package acme issues TLS certificates via ACME DNS-01, backed by go-acme/lego.
cron
Package cron is a generic recurring-task scheduler over robfig/cron.
Package cron is a generic recurring-task scheduler over robfig/cron.
declarative
Package declarative is the shared declarative resource model for Miabi.
Package declarative is the shared declarative resource model for Miabi.
dns
Package dns abstracts a managed DNS host behind one small Provider interface, backed by libdns modules (Cloudflare, Route 53, DigitalOcean).
Package dns abstracts a managed DNS host behind one small Provider interface, backed by libdns modules (Cloudflare, Route 53, DigitalOcean).
docker
Package docker is the sole adapter over the Docker Engine SDK.
Package docker is the sole adapter over the Docker Engine SDK.
dotenv
Package dotenv parses .env-style KEY=VALUE text into ordered pairs, for bulk importing application and stack environment variables.
Package dotenv parses .env-style KEY=VALUE text into ordered pairs, for bulk importing application and stack environment variables.
dto
hostmount
Package hostmount defines the fixed, allow-listed set of host bind mounts a privileged workspace may attach to a container.
Package hostmount defines the fixed, allow-listed set of host bind mounts a privileged workspace may attach to a container.
hoststats
Package hoststats reads real host CPU and memory usage from a procfs directory.
Package hoststats reads real host CPU and memory usage from a procfs directory.
logstore
Package logstore is the shared store for execution logs (deployments, pipeline steps, jobs, …).
Package logstore is the shared store for execution logs (deployments, pipeline steps, jobs, …).
metrics
Package metrics exposes Prometheus collectors and the /metrics handler.
Package metrics exposes Prometheus collectors and the /metrics handler.
middlewares
Package middlewares holds HTTP middleware: authentication, workspace scoping, and role-based access control.
Package middlewares holds HTTP middleware: authentication, workspace scoping, and role-based access control.
mwcatalog
Package mwcatalog is the single source of truth for the curated Goma middleware types Miabi exposes as security policies.
Package mwcatalog is the single source of truth for the curated Goma middleware types Miabi exposes as security policies.
netguard
Package netguard provides SSRF-resistant HTTP clients for outbound requests to user-supplied URLs (webhooks).
Package netguard provides SSRF-resistant HTTP clients for outbound requests to user-supplied URLs (webhooks).
nodes
Package nodes manages the control plane's view of cluster nodes: the per-node Docker client registry and the agent connection manager.
Package nodes manages the control plane's view of cluster nodes: the per-node Docker client registry and the agent connection manager.
proxy
Package proxy abstracts the reverse proxy / gateway (Goma Gateway).
Package proxy abstracts the reverse proxy / gateway (Goma Gateway).
runners
Package runners maintains the live tunnels of connected build/pipeline runners.
Package runners maintains the live tunnels of connected build/pipeline runners.
selfcontainer
Package selfcontainer detects the Docker container ID of the running process, so Miabi can recognise its own container and refuse to stop or delete it from the admin containers list — which would take the platform offline.
Package selfcontainer detects the Docker container ID of the running process, so Miabi can recognise its own container and refuse to stop or delete it from the admin containers list — which would take the platform offline.
services/account
Package account orchestrates account-wide actions across a user's owned workspaces: stopping every app/database when an account is disabled, and cascade-deleting all of a user's data when the account is removed.
Package account orchestrates account-wide actions across a user's owned workspaces: stopping every app/database when an account is disabled, and cascade-deleting all of a user's data when the account is removed.
services/alerting
Package alerting turns the platform's signal stream (app events today; metrics, jobs, cert/DNS, nodes later) into a small set of deduplicated, lifecycle-managed alerts, and fans them out to per-user notifications.
Package alerting turns the platform's signal stream (app events today; metrics, jobs, cert/DNS, nodes later) into a small set of deduplicated, lifecycle-managed alerts, and fans them out to per-user notifications.
services/analytics
Package analytics turns Goma Gateway's per-request event stream into minute-bucketed rollups (models.AnalyticsRollup) and answers the Traffic, Performance and Web Analytics queries over them.
Package analytics turns Goma Gateway's per-request event stream into minute-bucketed rollups (models.AnalyticsRollup) and answers the Traffic, Performance and Web Analytics queries over them.
services/application
Package application manages applications, their config, and deployments.
Package application manages applications, their config, and deployments.
services/apply
Package apply is the imperative, one-shot sibling of GitOps.
Package apply is the imperative, one-shot sibling of GitOps.
services/audit
Package audit writes append-only audit-log entries for mutating actions.
Package audit writes append-only audit-log entries for mutating actions.
services/auth
Package auth handles user authentication: password hashing, JWT issuance with revocable sessions, and password resets.
Package auth handles user authentication: password hashing, JWT issuance with revocable sessions, and password resets.
services/backup
Package backup runs database backups and restores using the ecosystem pg-bkup / mysql-bkup tools as one-shot containers, to a per-workspace backup volume (local) or an S3-compatible bucket.
Package backup runs database backups and restores using the ecosystem pg-bkup / mysql-bkup tools as one-shot containers, to a per-workspace backup volume (local) or an S3-compatible bucket.
services/backupsettings
Package backupsettings manages a workspace's shared S3 backup target: the single bucket + credentials and the database/volume path prefixes that both database and volume backups draw from.
Package backupsettings manages a workspace's shared S3 backup target: the single bucket + credentials and the database/volume path prefixes that both database and volume backups draw from.
services/certificate
Package certificate manages workspace-scoped imported TLS certificates (bring-your-own; ACME is handled by Goma).
Package certificate manages workspace-scoped imported TLS certificates (bring-your-own; ACME is handled by Goma).
services/cluster
Package cluster auto-detects whether the manager's Docker engine is in swarm mode and, when it is, drives Docker Swarm as the internal implementation of Miabi's optional cluster mode.
Package cluster auto-detects whether the manager's Docker engine is in swarm mode and, when it is, drives Docker Swarm as the internal implementation of Miabi's optional cluster mode.
services/crypto
Package crypto provides AES-GCM encryption for secrets stored at rest.
Package crypto provides AES-GCM encryption for secrets stored at rest.
services/customrole
Package customrole manages admin-defined roles (permission sets) and enforces the cardinal RBAC rule: no privilege escalation.
Package customrole manages admin-defined roles (permission sets) and enforces the cardinal RBAC rule: no privilege escalation.
services/database
Package database provisions database server instances (PostgreSQL, MySQL, MariaDB, Redis) as containers and manages the logical databases they host, so a single instance can back many apps instead of one container per database.
Package database provisions database server instances (PostgreSQL, MySQL, MariaDB, Redis) as containers and manages the logical databases they host, so a single instance can back many apps instead of one container per database.
services/dbupgrade
Package dbupgrade adapts the application and backup services to the small interfaces the database version-upgrade orchestration depends on, so both the API server and the worker can wire them without the database package importing application/backup (which would cycle).
Package dbupgrade adapts the application and backup services to the small interfaces the database version-upgrade orchestration depends on, so both the API server and the worker can wire them without the database package importing application/backup (which would cycle).
services/directory
Package directory turns a successful LDAP/Active-Directory bind into a Miabi user: it just-in-time provisions the account and reconciles the user's directory groups onto platform-admin and per-workspace access.
Package directory turns a successful LDAP/Active-Directory bind into a Miabi user: it just-in-time provisions the account and reconciles the user's directory groups onto platform-admin and per-workspace access.
services/dnsprovider
Package dnsprovider manages workspace DNS provider connections: connect, test, list, delete.
Package dnsprovider manages workspace DNS provider connections: connect, test, list, delete.
services/dockerimport
Package dockerimport adopts pre-existing Docker resources (hand-run containers, compose stacks, volumes, networks) into Miabi without tearing down what is running.
Package dockerimport adopts pre-existing Docker resources (hand-run containers, compose stacks, volumes, networks) into Miabi without tearing down what is running.
services/domain
Package domain manages workspace-owned domains: registration, DNS-verified ownership, and the default TLS policy routes inherit.
Package domain manages workspace-owned domains: registration, DNS-verified ownership, and the default TLS policy routes inherit.
services/edgegateway
Package edgegateway provisions the Goma Gateway container that fronts an edge-gateway node's public ingress.
Package edgegateway provisions the Goma Gateway container that fronts an edge-gateway node's public ingress.
services/environment
Package environment manages promotion stages (dev → staging → prod) within a workspace.
Package environment manages promotion stages (dev → staging → prod) within a workspace.
services/eventbus
Package eventbus is a lightweight in-process publish/subscribe bus used to fan out live events (e.g.
Package eventbus is a lightweight in-process publish/subscribe bus used to fan out live events (e.g.
services/events
Package events records and serves application timeline events: lifecycle transitions, runtime container events, and configuration changes.
Package events records and serves application timeline events: lifecycle transitions, runtime container events, and configuration changes.
services/gitops
Package gitops is the declarative, pull-based half of Miabi's GitOps & CI/CD model.
Package gitops is the declarative, pull-based half of Miabi's GitOps & CI/CD model.
services/gitrepo
Package gitrepo manages stored Git credentials used to clone private repositories at build time.
Package gitrepo manages stored Git credentials used to clone private repositories at build time.
services/gpu
Package gpu inventories the physical GPUs on Miabi-managed nodes and resolves a running app's GPU request to concrete devices at deploy time.
Package gpu inventories the physical GPUs on Miabi-managed nodes and resolves a running app's GPU request to concrete devices at deploy time.
services/housekeeping
Package housekeeping reconciles a node's real Docker state against what Miabi intends.
Package housekeeping reconciles a node's real Docker state against what Miabi intends.
services/image
Package image manages the built-image catalog: provenance written by the pipeline build step, read APIs for the UI, and a retention GC that never collects a digest a live deployment or pinned release references.
Package image manages the built-image catalog: provenance written by the pipeline build step, read APIs for the UI, and a retention GC that never collects a digest a live deployment or pinned release references.
services/job
Package job runs one-off commands in an application's runtime context (a Job) and the schedules that spawn them (a CronJob).
Package job runs one-off commands in an application's runtime context (a Job) and the schedules that spawn them (a CronJob).
services/keyring
Package keyring manages per-workspace data-encryption keys (DEKs).
Package keyring manages per-workspace data-encryption keys (DEKs).
services/logintoken
Package logintoken issues the short-lived personal API token behind the web console's "Copy login command" flow (OpenShift-style).
Package logintoken issues the short-lived personal API token behind the web console's "Copy login command" flow (OpenShift-style).
services/mailer
Package mailer sends Miabi's own platform notification emails — password resets, workspace invitations, and account welcomes — over a system SMTP server.
Package mailer sends Miabi's own platform notification emails — password resets, workspace invitations, and account welcomes — over a system SMTP server.
services/managedcert
Package managedcert issues and renews TLS certificates via ACME DNS-01 using a workspace's connected DNS provider, storing the result in the workspace Certificates (Source=acme).
Package managedcert issues and renews TLS certificates via ACME DNS-01 using a workspace's connected DNS provider, storing the result in the workspace Certificates (Source=acme).
services/marketplace
Package marketplace provides the declarative template catalog (loaded from the embedded official source) and installs templates by orchestrating the application, database, storage and stack services.
Package marketplace provides the declarative template catalog (loaded from the embedded official source) and installs templates by orchestrating the application, database, storage and stack services.
services/marketplace/manifest
Package manifest defines the declarative Miabi template format (apiVersion miabi.io/v1, kind Template): a versioned bundle describing a whole stack of applications plus the databases and volumes they depend on.
Package manifest defines the declarative Miabi template format (apiVersion miabi.io/v1, kind Template): a versioned bundle describing a whole stack of applications plus the databases and volumes they depend on.
services/marketplace/remote
Package remote syncs the Miabi marketplace registry (official + community templates) from the standalone marketplace service into a local cache, so the in-Miabi catalog can serve them alongside the embedded official floor without a per-request round-trip.
Package remote syncs the Miabi marketplace registry (official + community templates) from the standalone marketplace service into a local cache, so the in-Miabi catalog can serve them alongside the embedded official floor without a per-request round-trip.
services/middleware
Package middleware manages Goma Gateway middlewares owned by workspaces and reconciles them into the proxy provider.
Package middleware manages Goma Gateway middlewares owned by workspaces and reconciles them into the proxy provider.
services/monitoring
Package monitoring exposes container metrics and workspace health overviews.
Package monitoring exposes container metrics and workspace health overviews.
services/netalloc
Package netalloc hands out non-overlapping subnets, carved from a single platform pool (MIABI_NETWORK_POOL_CIDR), for every Docker network Miabi creates.
Package netalloc hands out non-overlapping subnets, carved from a single platform pool (MIABI_NETWORK_POOL_CIDR), for every Docker network Miabi creates.
services/network
Package network manages Docker networks owned by workspaces.
Package network manages Docker networks owned by workspaces.
services/node
Package node manages Docker host (server) records and their reachability.
Package node manages Docker host (server) records and their reachability.
services/notify
Package notify turns persisted application events into outbound notifications: it fans an event out to a workspace's webhooks and channels, and renders/sends channel messages.
Package notify turns persisted application events into outbound notifications: it fans an event out to a workspace's webhooks and channels, and renders/sends channel messages.
services/oauth
Package oauth implements the OAuth 2.0 / OpenID Connect authorization-code login flow against admin-configured providers.
Package oauth implements the OAuth 2.0 / OpenID Connect authorization-code login flow against admin-configured providers.
services/pipeline
Package pipeline implements Miabi's CI/CD: pipeline-as-code (kind: Pipeline) versioned with the app, PipelineRun lifecycle, and the internal runner that executes steps in isolated containers.
Package pipeline implements Miabi's CI/CD: pipeline-as-code (kind: Pipeline) versioned with the app, PipelineRun lifecycle, and the internal runner that executes steps in isolated containers.
services/platformbackup
Package platformbackup is the admin-only disaster-recovery feature for Miabi's own control plane: it backs up and restores the platform database and platform/system Docker volumes.
Package platformbackup is the admin-only disaster-recovery feature for Miabi's own control plane: it backs up and restores the platform database and platform/system Docker volumes.
services/platformimage
Package platformimage is the deployment-config image catalog: the single source of truth for every container image the platform itself runs (database engines, backup tools, the gateway, internal helpers, the agent).
Package platformimage is the deployment-config image catalog: the single source of truth for every container image the platform itself runs (database engines, backup tools, the gateway, internal helpers, the agent).
services/platformstack
Package platformstack installs and updates Miabi's own stack — the network, the volumes, Postgres, Redis, the gateway and the control plane — directly against the Docker API, with every component tagged io.miabi.managed-by=miabi.
Package platformstack installs and updates Miabi's own stack — the network, the volumes, Postgres, Redis, the gateway and the control plane — directly against the Docker API, with every component tagged io.miabi.managed-by=miabi.
services/portbinding
Package portbinding manages host port binding requests.
Package portbinding manages host port binding requests.
services/portforward
Package portforward gives on-demand external access to a managed database without publishing a host port.
Package portforward gives on-demand external access to a managed database without publishing a host port.
services/quota
Package quota enforces per-workspace plan limits and capabilities.
Package quota enforces per-workspace plan limits and capabilities.
services/registry
Package registry manages stored container-registry credentials used to pull private images at deploy time.
Package registry manages stored container-registry credentials used to pull private images at deploy time.
services/registryserver
Package registryserver runs and authorizes the platform's built-in, multi-tenant Docker registry (CNCF distribution / registry:3).
Package registryserver runs and authorizes the platform's built-in, multi-tenant Docker registry (CNCF distribution / registry:3).
services/release
Package release turns the per-application Release (a deployed, rollback-able version) into a promotable artifact: a workspace-wide catalog with provenance, approval gates per environment, and promotion (re-pointing an application at a release) that the gate guards.
Package release turns the per-application Release (a deployed, rollback-able version) into a promotable artifact: a workspace-wide catalog with provenance, approval gates per environment, and promotion (re-pointing an application at a release) that the gate guards.
services/route
Package route manages Goma Gateway routes bound to applications and reconciles them into the proxy provider.
Package route manages Goma Gateway routes bound to applications and reconciles them into the proxy provider.
services/runner
Package runner manages build/pipeline runner records: their registration, scope (workspace-owned vs platform-shared), labels/concurrency, and reachability.
Package runner manages build/pipeline runner records: their registration, scope (workspace-owned vs platform-shared), labels/concurrency, and reachability.
services/saferollout
Package saferollout replaces a running container with a new image without a blind cutover.
Package saferollout replaces a running container with a new image without a blind cutover.
services/secret
Package secret is the Vault: workspace-scoped named secrets that env var values reference (`${{ secrets.NAME }}`) and that are resolved into a container's environment at deploy/job time.
Package secret is the Vault: workspace-scoped named secrets that env var values reference (`${{ secrets.NAME }}`) and that are resolved into a container's environment at deploy/job time.
services/session
Package session maintains a Redis-backed revocation list for JWT sessions, keyed by the token's jti claim.
Package session maintains a Redis-backed revocation list for JWT sessions, keyed by the token's jti claim.
services/settings
Package settings provides cached, typed access to platform-wide key/value settings stored in the database.
Package settings provides cached, typed access to platform-wide key/value settings stored in the database.
services/stack
Package stack groups related applications in a workspace.
Package stack groups related applications in a workspace.
services/storage
Package storage manages persistent (Docker) volumes owned by workspaces.
Package storage manages persistent (Docker) volumes owned by workspaces.
services/twofactor
Package twofactor wraps TOTP (RFC 6238) generation and validation for time-based two-factor authentication.
Package twofactor wraps TOTP (RFC 6238) generation and validation for time-based two-factor authentication.
services/updatecheck
Package updatecheck asks GitHub, once a day, whether a newer Miabi release exists and caches the answer for the dashboard to read.
Package updatecheck asks GitHub, once a day, whether a newer Miabi release exists and caches the answer for the dashboard to read.
services/volumebackup
Package volumebackup archives a managed volume's contents (compressed) to the workspace's S3 target using the ecosystem volume-bkup tool as a one-shot container, and restores it.
Package volumebackup archives a managed volume's contents (compressed) to the workspace's S3 target using the ecosystem volume-bkup tool as a one-shot container, and restores it.
services/webhook
Package webhook manages workspace webhooks and the signing/delivery of their JSON payloads.
Package webhook manages workspace webhooks and the signing/delivery of their JSON payloads.
services/workspace
Package workspace manages workspaces, memberships, and invitations.
Package workspace manages workspaces, memberships, and invitations.
siem
Package siem streams the audit log to external SIEM sinks (syslog, webhook) at-least-once.
Package siem streams the audit log to external SIEM sinks (syslog, webhook) at-least-once.
slug
Package slug derives URL/DNS-safe identifiers from human names.
Package slug derives URL/DNS-safe identifiers from human names.
storage/logbackfill
Package logbackfill migrates pre-existing large log rows out of Postgres into the shared log store (see plans/log-storage.md, sub-phase P6).
Package logbackfill migrates pre-existing large log rows out of Postgres into the shared log store (see plans/log-storage.md, sub-phase P6).
storage/migration/upgrade
Package upgrade runs ordered, versioned data-upgrade steps.
Package upgrade runs ordered, versioned data-upgrade steps.
web
Package web embeds the built frontend (the Vue SPA) into the Go binary so a single `miabi` executable serves both the API and the UI — no separate static files to ship or MIABI_WEB_DIR to configure.
Package web embeds the built frontend (the Vue SPA) into the Go binary so a single `miabi` executable serves both the API and the UI — no separate static files to ship or MIABI_WEB_DIR to configure.
worker
Package worker holds the asynq producer, task types, and handlers for background work (deploys, backups, metric scrapes, ...).
Package worker holds the asynq producer, task types, and handlers for background work (deploys, backups, metric scrapes, ...).
Package templates embeds a minimal offline floor of the official Miabi marketplace catalog — the core data/infra primitives — so the binary works out of the box without network access.
Package templates embeds a minimal offline floor of the official Miabi marketplace catalog — the core data/infra primitives — so the binary works out of the box without network access.
gen command
Command gen vendors the official templates from the marketplace registry's published export.json into miabi/templates/ — the embedded offline floor.
Command gen vendors the official templates from the marketplace registry's published export.json into miabi/templates/ — the embedded offline floor.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL