Documentation

Learn how to use Launchly to manage PostgreSQL on Kubernetes with CloudNativePG.

What is Launchly?

Launchly is a simple UI for CloudNativePG. It provides a web interface to create, monitor, and manage PostgreSQL clusters running on Kubernetes — without writing YAML or running kubectl commands.

Why Launchly?

CloudNativePG is the best way to run PostgreSQL on Kubernetes. It's production-ready and battle-tested. But it's built for platform engineers who think in CRDs and kubectl. For teams that just want to run Postgres, the learning curve is steep.

You could use a managed database service, but then your data lives on someone else's infrastructure. Costs scale unpredictably. You're locked into a provider.

Launchly gives you the simplicity of a managed service while keeping your data in your cluster.

How it works

You install a lightweight agent in your Kubernetes cluster. The agent connects to Launchly over a secure WebSocket. When you create a cluster or configure backups in our UI, we send commands to the agent, and the agent applies the changes in your cluster.

Your data never leaves your infrastructure. Database credentials, backup storage credentials, SMTP settings — everything stays in your cluster. We're a remote control for CloudNativePG, not a database host.

Want the full story? Read about why we built Launchly.

Getting Started

Get up and running with Launchly in three steps.

1

Create an account

Sign up at launchly.io to get your unique agent token.

2

Install the agent

Deploy the Launchly agent to your Kubernetes cluster using the command from your dashboard.

3

Start managing databases

Once connected, you can create PostgreSQL clusters, run queries, and configure backups from the dashboard.

Agent Installation

The Launchly agent is a lightweight process that runs in your Kubernetes cluster and communicates with launchly.io over a secure WebSocket connection.

Prerequisites

  • A Kubernetes cluster (EKS, GKE, AKS, or any conformant cluster)
  • kubectl configured to access your cluster
  • CloudNativePG operator installed (the agent will prompt if missing)

Install with kubectl

After signing up, copy the install command from your dashboard:

kubectl apply -f https://api.launchly.io/install/<your-token>

This creates the launchly-system namespace and deploys the agent with your authentication token.

Verify installation

Check that the agent is running:

kubectl get pods -n launchly-system

Once running, your cluster will appear in the Launchly dashboard within a few seconds.

Managing Clusters

Create and manage PostgreSQL clusters through the Launchly dashboard.

Creating a cluster

  1. Navigate to your connected cluster in the dashboard
  2. Click "Create Database"
  3. Configure your cluster settings:
    • Name: A unique identifier for your cluster
    • Namespace: Kubernetes namespace to deploy in
    • Instances: Number of replicas (1 for dev, 3+ for production)
    • Storage: Persistent volume size
    • PostgreSQL version: 14, 15, or 16
  4. Click "Create" to deploy

Cluster status

Each cluster shows its current status:

HealthyAll instances running normally
DegradedSome instances unavailable
FailedCluster is not operational

Scaling

To scale your cluster, edit the cluster settings and change the number of instances. CloudNativePG handles adding or removing replicas automatically with zero downtime.

Databases & SQL

Browse your database schema and run SQL queries directly from the dashboard.

SQL Explorer

The SQL explorer lets you:

  • Write and execute SQL queries
  • View results in a table format
  • Browse tables and their schemas
  • View table data with pagination

Connection credentials

CloudNativePG automatically creates a Kubernetes secret with connection credentials. You can view and copy these from the cluster detail page:

  • Host: Internal cluster DNS name
  • Port: 5432 (default)
  • Username: Application user
  • Password: Auto-generated
  • Database: Default database name

Backups

Configure automated backups to protect your data. Provide your storage credentials through Launchly, and the agent will configure CloudNativePG to handle backups directly within your cluster. Your credentials stay in your cluster and backups go straight to your storage.

How it works

  1. Provide your object storage credentials in Launchly
  2. The agent creates a Kubernetes secret with your credentials
  3. The agent configures CloudNativePG to use your storage for backups
  4. Backups run directly from your cluster to your storage — no data passes through Launchly

Supported storage

Provide credentials for any of these destinations:

  • Amazon S3 — Access key ID and secret access key (or use IRSA)
  • Google Cloud Storage — Service account JSON key
  • Azure Blob Storage — Storage account name and key
  • S3-compatible storage — MinIO, DigitalOcean Spaces, Backblaze B2, etc.

Scheduled backups

Configure automated backups with cron expressions:

  • 0 0 * * * — Daily at midnight
  • 0 */6 * * * — Every 6 hours
  • 0 0 * * 0 — Weekly on Sunday

Manual backups

You can also trigger on-demand backups from the dashboard. Click "Backup Now" to create an immediate backup of your cluster.

Restore from backup

Coming Soon

Point-in-time recovery and restore from backup through the Launchly UI is coming soon.

Alerts

Launchly monitors your PostgreSQL clusters and can notify you when issues arise. Configure who gets notified and customize the notification content for each alert type.

Alert types

Launchly monitors for these conditions:

Connection limits

Triggered when active connections approach the configured maximum.

Storage usage

Triggered when disk usage exceeds safe thresholds.

Replication lag

Triggered when replica lag exceeds acceptable levels.

Cluster health

Triggered when cluster status changes to degraded or failed.

SMTP configuration

Alert emails are sent directly from the agent running in your cluster. You'll need to provide SMTP credentials so the agent can send emails on your behalf. Your credentials stay in your cluster and are never sent to Launchly.

  • SMTP host — Your email server (e.g., smtp.gmail.com)
  • Port — Usually 587 (TLS) or 465 (SSL)
  • Username & password — SMTP authentication credentials
  • From address — Sender email address

Configuring notifications

For each alert type, you can customize:

  • Recipients — Email addresses to notify
  • Subject — Custom email subject line
  • Body — Custom message content

Go to your cluster's "Alerts" tab to configure SMTP and notification settings.

Troubleshooting

Common issues and how to resolve them.

Agent not connecting

If your cluster doesn't appear in the dashboard:

  1. Check agent pod status: kubectl get pods -n launchly-system
  2. View agent logs: kubectl logs -n launchly-system deploy/launchly-agent
  3. Ensure outbound WebSocket connections to api.launchly.io:443 are allowed

CloudNativePG not installed

Launchly requires CloudNativePG to be installed in your cluster:

kubectl apply --server-side -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/main/releases/cnpg-1.22.1.yaml

Cluster stuck in provisioning

If a PostgreSQL cluster is stuck:

  1. Check CNPG operator logs: kubectl logs -n cnpg-system deploy/cnpg-controller-manager
  2. Verify PVC provisioning: kubectl get pvc -n <namespace>
  3. Ensure your cluster has a default StorageClass

Need more help?

Can't find what you're looking for? We're here to help.