Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ Deploy your own instance of LibreDB Studio with a single click on Koyeb, Render,

## Deployment (DevOps)

### Koyeb (Recommended for cloud deployment)
### Koyeb

1. **Fork this repository**
2. **Connect to Koyeb**: [app.koyeb.com](https://app.koyeb.com) → New → Blueprint
Expand Down Expand Up @@ -427,6 +427,18 @@ LibreDB Studio is published in the official [CapRover One-Click Apps](https://gi

The app runs the prebuilt `ghcr.io/libredb/libredb-studio` image. As with Railway, Docker-image templates require a manual version bump on each release.

### Kubero

LibreDB Studio is listed in the official
[Kubero template catalog](https://www.kubero.dev/templates) (a self-hosted
"Heroku alternative for Kubernetes"). From your Kubero dashboard, browse
**Templates**, search **LibreDB Studio**, fill in the credentials / `JWT_SECRET`,
and deploy. The template runs the prebuilt `ghcr.io/libredb/libredb-studio` image
with SQLite persistence on a 5Gi volume at `/app/data`. See
[`deploy/kubero/`](deploy/kubero/) for install and post-install details. As with
Railway and CapRover, Docker-image templates require a manual version bump on
each release.

### Render (Recommended for cloud deployment)

LibreDB Studio includes a `render.yaml` Blueprint for one-click deployment:
Expand Down
76 changes: 76 additions & 0 deletions deploy/kubero/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# LibreDB Studio on Kubero

[Kubero](https://www.kubero.dev) is a self-hosted, open-source PaaS — a
"Heroku alternative for Kubernetes" — that deploys 12-factor apps onto a cluster
from a built-in template catalog.

LibreDB Studio is listed in the official
[Kubero template catalog](https://www.kubero.dev/templates)
(merged in [kubero-dev/kubero#754](https://github.com/kubero-dev/kubero/pull/754)).
The canonical template lives in the Kubero repo at
[`services/libredb-studio/app.yaml`](https://github.com/kubero-dev/kubero/blob/main/services/libredb-studio/app.yaml)
as a `KuberoApp` custom resource; this folder is a documentation mirror, not the
source of truth.

## Install

From a running Kubero instance (see the
[Kubero install docs](https://docs.kubero.dev/docs/Getting-Started/Installation/)
to set one up):

1. **Open your Kubero dashboard** → create or pick a pipeline/app, then browse
**Templates**.
2. **Search** for **LibreDB Studio**.
3. **Fill in the variables** — admin/user credentials, a strong `JWT_SECRET`
(32+ chars), and any optional AI/storage settings.
4. **Deploy.**

## What the template does

- Runs the prebuilt `ghcr.io/libredb/libredb-studio` image (pinned tag, never
`:latest`) with the `docker` deployment strategy on container HTTP port `3000`.
- Persists saved connections & settings with **SQLite** (`STORAGE_PROVIDER=sqlite`)
on a `5Gi` ReadWriteOnce volume mounted at `/app/data`, surviving restarts and
redeploys — no external database required.
- Ships configurable `ADMIN_EMAIL` / `ADMIN_PASSWORD`, `USER_EMAIL` /
`USER_PASSWORD`, and `JWT_SECRET` env vars. The catalog defaults are
placeholders — set real values before deploying.

## First login

After deploy, open the app's public URL and log in:

- **Admin** (full access incl. maintenance tools): `admin@libredb.org` + your
`ADMIN_PASSWORD`.
- **User** (query execution only): `user@libredb.org` + your `USER_PASSWORD`.

## Environment variables

See the [main README environment table](../../README.md#environment-variables)
for the full list. Minimum required for a working Kubero deploy:

| Variable | Notes |
|----------|-------|
| `JWT_SECRET` | 32+ chars, set your own |
| `ADMIN_EMAIL` / `ADMIN_PASSWORD` | admin login |
| `USER_EMAIL` / `USER_PASSWORD` | standard user login |
| `STORAGE_PROVIDER` | `sqlite` (default here); `postgres` for an external backend |

## Post-install options

Add these variables on the app to extend the deployment:

- **SSO / OIDC** — `NEXT_PUBLIC_AUTH_PROVIDER=oidc`, `OIDC_ISSUER`,
`OIDC_CLIENT_ID`, `OIDC_CLIENT_SECRET`, `OIDC_ROLE_CLAIM`, `OIDC_ADMIN_ROLES`.
- **PostgreSQL storage backend** (multi-node) — `STORAGE_PROVIDER=postgres`,
`STORAGE_POSTGRES_URL=...`.
- **AI** — `LLM_PROVIDER` (`gemini` | `openai` | `ollama` | `custom`),
`LLM_API_KEY`, `LLM_MODEL`, `LLM_API_URL`.

## Version bumps

The catalog template pins a specific image tag. On each release, bump the tag in
the Kubero repo's `services/libredb-studio/app.yaml` (same manual-bump caveat as
the Railway and CapRover Docker-image templates).

More details and docs: https://github.com/libredb/libredb-studio
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@libredb/studio",
"version": "0.9.33",
"version": "0.9.34",
"private": false,
"publishConfig": {
"access": "public"
Expand Down
Loading