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.
Install the agent
Deploy the Launchly agent to your Kubernetes cluster using the command from your dashboard.
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-systemOnce 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
- Navigate to your connected cluster in the dashboard
- Click "Create Database"
- 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
- Click "Create" to deploy
Cluster status
Each cluster shows its current status:
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
- Provide your object storage credentials in Launchly
- The agent creates a Kubernetes secret with your credentials
- The agent configures CloudNativePG to use your storage for backups
- 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 midnight0 */6 * * *— Every 6 hours0 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 SoonPoint-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:
- Check agent pod status:
kubectl get pods -n launchly-system - View agent logs:
kubectl logs -n launchly-system deploy/launchly-agent - 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.yamlCluster stuck in provisioning
If a PostgreSQL cluster is stuck:
- Check CNPG operator logs:
kubectl logs -n cnpg-system deploy/cnpg-controller-manager - Verify PVC provisioning:
kubectl get pvc -n <namespace> - Ensure your cluster has a default StorageClass