{ "stable": true, "versions": { "0.1.0": { "manifest": { "id": "io.github.orcvole.langfuse", "title": "Langfuse", "author": "OrcVole", "tagline": "Open-source LLM observability, tracing, evals and prompt management", "description": "Langfuse is an open-source LLM engineering platform. It gives you observability and tracing for LLM\napplications, evaluations, prompt management, a prompt playground, datasets, and usage/cost metrics —\nall self-hosted on your own Cloudron.\n\nThis package runs the **open-source (MIT)** edition. It integrates with OpenTelemetry, the OpenAI SDK,\nLangChain, LiteLLM, LlamaIndex, and most LLM tooling, so it can act as the observability sink for the\nrest of your stack.\n\n**On this Cloudron:**\n\n* Langfuse keeps its **own login** (email/password plus optional single sign-on through your Cloudron\n users via OIDC). It is *not* fronted by the Cloudron SSO proxy.\n* Trace ingestion uses **Langfuse project API keys** (a public/secret key pair you create in the UI),\n sent to the open `/api/public/*` endpoints — including the OpenTelemetry endpoint\n `/api/public/otel/v1/traces`.\n* ClickHouse and MinIO are **bundled and managed for you**; PostgreSQL and Redis come from Cloudron\n addons. All trace data and object storage live in the app's backed-up data directory.\n\nThe enterprise (`/ee`) features (RBAC, audit logs, data retention policies, SCIM) are intentionally\nnot included.\n", "changelog": "[0.1.0]\n\n* Initial Cloudron package of Langfuse v3.199.0 (open-source / MIT).\n* Four-process topology under Supervisor: ClickHouse + MinIO bundled; langfuse-web + langfuse-worker.\n* PostgreSQL and Redis via Cloudron addons; SSO via the OIDC addon (Langfuse keeps its own login).\n* Public ingestion API left open for Langfuse project API keys.", "icon": "file://logo.png", "tags": [ "notes", "project" ], "version": "0.1.0", "upstreamVersion": "3.199.0", "healthCheckPath": "/api/public/health", "httpPort": 3000, "addons": { "localstorage": {}, "postgresql": {}, "redis": {}, "oidc": { "loginRedirectUri": "/api/auth/callback/custom" }, "sendmail": { "optional": true, "supportsDisplayName": true } }, "httpPorts": { "LANGFUSE_BLOB_DOMAIN": { "title": "Langfuse Media Storage", "description": "Presigned S3 endpoint for multimodal trace attachments (images, audio, files). Public — not behind Cloudron login; secured by S3 request signatures and a private bucket.", "containerPort": 9100, "defaultValue": "langfuse-blob" } }, "memoryLimit": 5368709120, "configurePath": "/", "optionalSso": true, "postInstallMessage": "## Langfuse is installed 🎉\n\n**This is a full web app with its own login.** Open the app and create your account.\n\n\nYou can sign in with your Cloudron account (single sign-on via OIDC), or create a Langfuse-native\nemail/password account. The first user to sign up becomes the owner.\n\n\nCreate the first Langfuse account by signing up at the app's URL. The first user to sign up becomes\nthe owner.\n\n\n### Sending traces (integrations)\n\nTrace ingestion does **not** use Cloudron login — it uses **Langfuse project API keys**:\n\n1. In Langfuse, create an Organization → Project.\n2. In **Project settings → API keys**, create a key pair (public `pk-…` + secret `sk-…`).\n3. Point your SDK / OpenTelemetry exporter at this app's URL with that key pair. The OTLP endpoint is\n `…/api/public/otel/v1/traces`.\n\nThe public API (`/api/public/*`) is intentionally reachable without Cloudron SSO so that integrations\ncan ingest with their API keys.\n\n### Media (multimodal traces)\n\nImage / audio / file attachments on traces are stored in the bundled object storage and served to your\nbrowser from a separate **media subdomain** (you assign it at install). That subdomain is public by\ndesign and secured by signed, expiring URLs over a private bucket — it has no browseable listing and no\nCloudron login in front of it (a login wall would break the signed-URL flow).\n", "manifestVersion": 2, "minBoxVersion": "9.1.0", "website": "https://langfuse.com", "documentationUrl": "https://langfuse.com/docs", "packagerName": "OrcVole", "packagerUrl": "https://github.com/OrcVole/langfuse-cloudron", "contactEmail": "Most+github@OrcadianVole.com", "iconUrl": "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png", "dockerImage": "ghcr.io/orcvole/langfuse-cloudron@sha256:3e1388815ef1d0faecd9f4571e174d8ffa0e2d2a01a658119629c62d5e501dbb", "mediaLinks": [ "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png" ] }, "creationDate": "2026-06-26T18:55:00.000Z", "ts": 1782500100000, "publishState": "published" }, "0.2.0": { "manifest": { "id": "io.github.orcvole.langfuse", "title": "Langfuse", "author": "OrcVole", "tagline": "Open-source LLM observability, tracing, evals and prompt management", "description": "Langfuse is an open-source LLM engineering platform. It gives you observability and tracing for LLM\napplications, evaluations, prompt management, a prompt playground, datasets, and usage/cost metrics —\nall self-hosted on your own Cloudron.\n\nThis package runs the **open-source (MIT)** edition. It integrates with OpenTelemetry, the OpenAI SDK,\nLangChain, LiteLLM, LlamaIndex, and most LLM tooling, so it can act as the observability sink for the\nrest of your stack.\n\n**On this Cloudron:**\n\n* Langfuse keeps its **own login** (email/password plus optional single sign-on through your Cloudron\n users via OIDC). It is *not* fronted by the Cloudron SSO proxy.\n* Trace ingestion uses **Langfuse project API keys** (a public/secret key pair you create in the UI),\n sent to the open `/api/public/*` endpoints — including the OpenTelemetry endpoint\n `/api/public/otel/v1/traces`.\n* ClickHouse and MinIO are **bundled and managed for you**; PostgreSQL and Redis come from Cloudron\n addons. All trace data and object storage live in the app's backed-up data directory.\n\nThe enterprise (`/ee`) features (RBAC, audit logs, data retention policies, SCIM) are intentionally\nnot included.\n", "changelog": "[0.2.0]\n* Fixes a defect where this app could abort the **whole server's** backup run. The bundled ClickHouse\n and MinIO stores move out of `/app/data` into `persistentDirs`, which are excluded from Cloudron's\n filesystem backup walk, so their constant temporary-directory churn can no longer make the backup\n syncer trip. The data stays fully backed up and restorable through `backupCommand`/`restoreCommand`.\n* **Updating from 0.1.0 performs a one-time data migration on first boot.** It copies the existing\n ClickHouse store to its new location, verifies the copy, and only then removes the old one, so the\n first boot after updating takes noticeably longer than usual. The migration is resumable: if it is\n interrupted, the next boot continues it rather than starting over or booting on partial data. Take\n the update deliberately, just after a known-good backup, rather than leaving it to run overnight.\n* **In-place restore now behaves differently for ClickHouse.** An in-place restore preserves\n `persistentDirs`, so it restores your Postgres data and the ClickHouse dump but leaves the live\n ClickHouse store as it is. See `KNOWN-ISSUES.md` for the recipe that makes an in-place restore\n actually roll ClickHouse back.\n* Restores of pre-0.2.0 backups onto 0.2.0 are supported: the migration recognises the restored legacy\n data and relocates it.", "icon": "file://logo.png", "tags": [ "notes", "project" ], "version": "0.2.0", "upstreamVersion": "3.199.0", "healthCheckPath": "/api/public/health", "httpPort": 3000, "persistentDirs": [ "/var/lib/clickhouse", "/var/lib/minio" ], "backupCommand": "/app/code/conf/backup-clickhouse.sh", "restoreCommand": "/app/code/conf/restore-clickhouse.sh", "addons": { "localstorage": {}, "postgresql": {}, "redis": {}, "oidc": { "loginRedirectUri": "/api/auth/callback/custom" }, "sendmail": { "optional": true, "supportsDisplayName": true } }, "httpPorts": { "LANGFUSE_BLOB_DOMAIN": { "title": "Langfuse Media Storage", "description": "Presigned S3 endpoint for multimodal trace attachments (images, audio, files). Public — not behind Cloudron login; secured by S3 request signatures and a private bucket.", "containerPort": 9100, "defaultValue": "langfuse-blob" } }, "memoryLimit": 5368709120, "configurePath": "/", "optionalSso": true, "postInstallMessage": "## Langfuse is installed 🎉\n\n**This is a full web app with its own login.** Open the app and create your account.\n\n\nYou can sign in with your Cloudron account (single sign-on via OIDC), or create a Langfuse-native\nemail/password account. The first user to sign up becomes the owner.\n\n\nCreate the first Langfuse account by signing up at the app's URL. The first user to sign up becomes\nthe owner.\n\n\n### Sending traces (integrations)\n\nTrace ingestion does **not** use Cloudron login — it uses **Langfuse project API keys**:\n\n1. In Langfuse, create an Organization → Project.\n2. In **Project settings → API keys**, create a key pair (public `pk-…` + secret `sk-…`).\n3. Point your SDK / OpenTelemetry exporter at this app's URL with that key pair. The OTLP endpoint is\n `…/api/public/otel/v1/traces`.\n\nThe public API (`/api/public/*`) is intentionally reachable without Cloudron SSO so that integrations\ncan ingest with their API keys.\n\n### Media (multimodal traces)\n\nImage / audio / file attachments on traces are stored in the bundled object storage and served to your\nbrowser from a separate **media subdomain** (you assign it at install). That subdomain is public by\ndesign and secured by signed, expiring URLs over a private bucket — it has no browseable listing and no\nCloudron login in front of it (a login wall would break the signed-URL flow).\n\n### Backups and restores (please read once)\n\nThis app keeps its analytics database and object storage outside the ordinary backed-up folder, so\nthat their constant background file churn cannot abort your **whole server's** backup run. They are\nstill fully backed up and restorable: the app writes a consistent copy of both into the backup at\nbackup time.\n\nOne consequence is worth knowing before you need it. **An in-place restore does not roll the analytics\ndatabase back.** Restoring this app in place brings back its Postgres data and the saved copy, but the\nlive analytics store is preserved as it is. If you want a true point-in-time copy, **clone** the app\ninstead, which rebuilds everything from the backup. If you specifically need an in-place restore to\nroll the analytics data back too, `docs/KNOWN-ISSUES.md` has the short recipe.\n\nIf you are updating from 0.1.0, the first boot performs a one-time data migration and takes noticeably\nlonger than usual. It is resumable, so an interrupted update continues rather than starting over.\n", "manifestVersion": 2, "minBoxVersion": "9.1.0", "website": "https://langfuse.com", "documentationUrl": "https://langfuse.com/docs", "packagerName": "OrcVole", "packagerUrl": "https://github.com/OrcVole/langfuse-cloudron", "contactEmail": "Most+github@OrcadianVole.com", "iconUrl": "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png", "dockerImage": "ghcr.io/orcvole/langfuse-cloudron@sha256:fa87d516af9c7423837d03209dce1ebe517e4b68e46a9ac0a49a94f9d5e4adfe", "mediaLinks": [ "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png" ] }, "creationDate": "2026-08-01T15:00:00.000Z", "ts": 1785596400000, "publishState": "published" }, "0.2.1": { "manifest": { "id": "io.github.orcvole.langfuse", "title": "Langfuse", "author": "OrcVole", "tagline": "Open-source LLM observability, tracing, evals and prompt management", "description": "Langfuse is an open-source LLM engineering platform. It gives you observability and tracing for LLM\napplications, evaluations, prompt management, a prompt playground, datasets, and usage/cost metrics —\nall self-hosted on your own Cloudron.\n\nThis package runs the **open-source (MIT)** edition. It integrates with OpenTelemetry, the OpenAI SDK,\nLangChain, LiteLLM, LlamaIndex, and most LLM tooling, so it can act as the observability sink for the\nrest of your stack.\n\n**On this Cloudron:**\n\n* Langfuse keeps its **own login** (email/password plus optional single sign-on through your Cloudron\n users via OIDC). It is *not* fronted by the Cloudron SSO proxy.\n* Trace ingestion uses **Langfuse project API keys** (a public/secret key pair you create in the UI),\n sent to the open `/api/public/*` endpoints — including the OpenTelemetry endpoint\n `/api/public/otel/v1/traces`.\n* ClickHouse and MinIO are **bundled and managed for you**; PostgreSQL and Redis come from Cloudron\n addons. All trace data and object storage live in the app's backed-up data directory.\n\nThe enterprise (`/ee`) features (RBAC, audit logs, data retention policies, SCIM) are intentionally\nnot included.\n", "changelog": "[0.2.1]\n* Bounds ClickHouse's own telemetry tables, which previously grew without limit. On a five-week idle\n install they had reached 176 million rows and 3.9 GB against 19.7 kB of application data, starved\n every analytics query of memory (dashboards erroring while the app reported healthy), and burned\n several CPU cores continuously on background merges. Ten internal log tables are now disabled;\n `query_log` and `error_log` are kept with a three-day retention.\n* **Updating an existing install needs a one-time cleanup**, done together with the update rather\n than deferred: the removed tables' data is not reclaimed by disabling them, and the two kept tables\n are renamed to `query_log_0`/`error_log_0` when the retention is added. See `docs/KNOWN-ISSUES.md`\n for the exact statements. A fresh install needs nothing.", "icon": "file://logo.png", "tags": [ "notes", "project" ], "version": "0.2.1", "upstreamVersion": "3.199.0", "healthCheckPath": "/api/public/health", "httpPort": 3000, "persistentDirs": [ "/var/lib/clickhouse", "/var/lib/minio" ], "backupCommand": "/app/code/conf/backup-clickhouse.sh", "restoreCommand": "/app/code/conf/restore-clickhouse.sh", "addons": { "localstorage": {}, "postgresql": {}, "redis": {}, "oidc": { "loginRedirectUri": "/api/auth/callback/custom" }, "sendmail": { "optional": true, "supportsDisplayName": true } }, "httpPorts": { "LANGFUSE_BLOB_DOMAIN": { "title": "Langfuse Media Storage", "description": "Presigned S3 endpoint for multimodal trace attachments (images, audio, files). Public — not behind Cloudron login; secured by S3 request signatures and a private bucket.", "containerPort": 9100, "defaultValue": "langfuse-blob" } }, "memoryLimit": 5368709120, "configurePath": "/", "optionalSso": true, "postInstallMessage": "## Langfuse is installed 🎉\n\n**This is a full web app with its own login.** Open the app and create your account.\n\n\nYou can sign in with your Cloudron account (single sign-on via OIDC), or create a Langfuse-native\nemail/password account. The first user to sign up becomes the owner.\n\n\nCreate the first Langfuse account by signing up at the app's URL. The first user to sign up becomes\nthe owner.\n\n\n### Sending traces (integrations)\n\nTrace ingestion does **not** use Cloudron login — it uses **Langfuse project API keys**:\n\n1. In Langfuse, create an Organization → Project.\n2. In **Project settings → API keys**, create a key pair (public `pk-…` + secret `sk-…`).\n3. Point your SDK / OpenTelemetry exporter at this app's URL with that key pair. The OTLP endpoint is\n `…/api/public/otel/v1/traces`.\n\nThe public API (`/api/public/*`) is intentionally reachable without Cloudron SSO so that integrations\ncan ingest with their API keys.\n\n### Media (multimodal traces)\n\nImage / audio / file attachments on traces are stored in the bundled object storage and served to your\nbrowser from a separate **media subdomain** (you assign it at install). That subdomain is public by\ndesign and secured by signed, expiring URLs over a private bucket — it has no browseable listing and no\nCloudron login in front of it (a login wall would break the signed-URL flow).\n\n### Backups and restores (please read once)\n\nThis app keeps its analytics database and object storage outside the ordinary backed-up folder, so\nthat their constant background file churn cannot abort your **whole server's** backup run. They are\nstill fully backed up and restorable: the app writes a consistent copy of both into the backup at\nbackup time.\n\nOne consequence is worth knowing before you need it. **An in-place restore does not roll the analytics\ndatabase back.** Restoring this app in place brings back its Postgres data and the saved copy, but the\nlive analytics store is preserved as it is. If you want a true point-in-time copy, **clone** the app\ninstead, which rebuilds everything from the backup. If you specifically need an in-place restore to\nroll the analytics data back too, `docs/KNOWN-ISSUES.md` has the short recipe.\n\nIf you are updating from 0.1.0, the first boot performs a one-time data migration and takes noticeably\nlonger than usual. It is resumable, so an interrupted update continues rather than starting over.\n", "manifestVersion": 2, "minBoxVersion": "9.1.0", "website": "https://langfuse.com", "documentationUrl": "https://langfuse.com/docs", "packagerName": "OrcVole", "packagerUrl": "https://github.com/OrcVole/langfuse-cloudron", "contactEmail": "Most+github@OrcadianVole.com", "iconUrl": "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png", "dockerImage": "ghcr.io/orcvole/langfuse-cloudron@sha256:321eb0ef8ad0204967a7e4d4ff8a8af3dca9aee81a492e2f8becfbbe06e47cf4", "mediaLinks": [ "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png" ] }, "creationDate": "2026-08-01T18:15:00.000Z", "ts": 1785608100000, "publishState": "published" }, "0.3.0": { "manifest": { "id": "io.github.orcvole.langfuse", "title": "Langfuse", "author": "OrcVole", "tagline": "Open-source LLM observability, tracing, evals and prompt management", "description": "4.2.0\n\nLangfuse is an open-source LLM engineering platform. It gives you observability and tracing for LLM\napplications, evaluations, prompt management, a prompt playground, datasets, and usage/cost metrics —\nall self-hosted on your own Cloudron.\n\nThis package runs the **open-source (MIT)** edition. It integrates with OpenTelemetry, the OpenAI SDK,\nLangChain, LiteLLM, LlamaIndex, and most LLM tooling, so it can act as the observability sink for the\nrest of your stack.\n\n**On this Cloudron:**\n\n* Langfuse keeps its **own login** (email/password plus optional single sign-on through your Cloudron\n users via OIDC). It is *not* fronted by the Cloudron SSO proxy.\n* Trace ingestion uses **Langfuse project API keys** (a public/secret key pair you create in the UI),\n sent to the open `/api/public/*` endpoints — including the OpenTelemetry endpoint\n `/api/public/otel/v1/traces`.\n* ClickHouse and MinIO are **bundled and managed for you**; PostgreSQL and Redis come from Cloudron\n addons. All trace data and object storage live in the app's backed-up data directory.\n\nThe enterprise (`/ee`) features (RBAC, audit logs, data retention policies, SCIM) are intentionally\nnot included.\n", "changelog": "* **Langfuse v3.199.0 to v4.2.0 (major), and bundled ClickHouse 25.3 to 26.4** (langfuse v4's\n recommended version; v4 requires at least 25.12). The ClickHouse store upgrades its on-disk\n format in place on first boot; the v4 schema migrations then create the new `events` tables\n automatically. Nothing to do on update, but take it deliberately, just after a known-good backup.\n* **All v3 API and SDK surfaces keep working.** This package pins langfuse's migration write mode\n to `dual` (writes go to both the v3 tables and the new v4 events tables), so old SDKs, the legacy\n ingestion endpoints, and the legacy read APIs all continue to function. Langfuse's own default\n for fresh v4 installs (`events_only`) would reject ingestion from Python SDK 2.x and JS/TS SDK\n 3.x and earlier.\n* Langfuse's background backfill converts existing traces into the new v4 data model automatically.\n* **New: `/app/data/env.sh`** is sourced on every boot, after all package defaults. Use it to cut\n over to the pure v4 data model (`LANGFUSE_MIGRATION_V4_WRITE_MODE=events_only`) once every SDK\n and integration pointing at this install is v4-compatible. Until then the safe `dual` default\n costs a little duplicate write volume and nothing else.\n* ClickHouse telemetry bounds re-verified against 26.4: `latency_log` no longer exists there; the\n new `histogram_metric_log` and `background_schedule_pool_log` are disabled, along with the rest\n of 26.4's active-by-default internal log tables (notably `query_views_log`, which would fire on\n every ingest under v4's materialised-view data path).\n* **Memory limit raised from 5 GiB to 6 GiB.** Langfuse v4's web process does not fit the v3-era\n 768 MB Node heap (it fails at boot); it now gets 1536 MB, and the app's total limit moves up\n with it. Existing installs pick the new limit up automatically on update.\n", "icon": "file://logo.png", "tags": [ "notes", "project" ], "version": "0.3.0", "upstreamVersion": "4.2.0", "healthCheckPath": "/api/public/health", "httpPort": 3000, "persistentDirs": [ "/var/lib/clickhouse", "/var/lib/minio" ], "backupCommand": "/app/code/conf/backup-clickhouse.sh", "restoreCommand": "/app/code/conf/restore-clickhouse.sh", "addons": { "localstorage": {}, "postgresql": {}, "redis": {}, "oidc": { "loginRedirectUri": "/api/auth/callback/custom" }, "sendmail": { "optional": true, "supportsDisplayName": true } }, "httpPorts": { "LANGFUSE_BLOB_DOMAIN": { "title": "Langfuse Media Storage", "description": "Presigned S3 endpoint for multimodal trace attachments (images, audio, files). Public — not behind Cloudron login; secured by S3 request signatures and a private bucket.", "containerPort": 9100, "defaultValue": "langfuse-blob" } }, "memoryLimit": 6442450944, "configurePath": "/", "optionalSso": true, "postInstallMessage": "## Langfuse is installed 🎉\n\n**This is a full web app with its own login.** Open the app and create your account.\n\n\nYou can sign in with your Cloudron account (single sign-on via OIDC), or create a Langfuse-native\nemail/password account. The first user to sign up becomes the owner.\n\n\nCreate the first Langfuse account by signing up at the app's URL. The first user to sign up becomes\nthe owner.\n\n\n### Sending traces (integrations)\n\nTrace ingestion does **not** use Cloudron login — it uses **Langfuse project API keys**:\n\n1. In Langfuse, create an Organization → Project.\n2. In **Project settings → API keys**, create a key pair (public `pk-…` + secret `sk-…`).\n3. Point your SDK / OpenTelemetry exporter at this app's URL with that key pair. The OTLP endpoint is\n `…/api/public/otel/v1/traces`.\n\nThe public API (`/api/public/*`) is intentionally reachable without Cloudron SSO so that integrations\ncan ingest with their API keys.\n\n### Media (multimodal traces)\n\nImage / audio / file attachments on traces are stored in the bundled object storage and served to your\nbrowser from a separate **media subdomain** (you assign it at install). That subdomain is public by\ndesign and secured by signed, expiring URLs over a private bucket — it has no browseable listing and no\nCloudron login in front of it (a login wall would break the signed-URL flow).\n\n### Backups and restores (please read once)\n\nThis app keeps its analytics database and object storage outside the ordinary backed-up folder, so\nthat their constant background file churn cannot abort your **whole server's** backup run. They are\nstill fully backed up and restorable: the app writes a consistent copy of both into the backup at\nbackup time.\n\nOne consequence is worth knowing before you need it. **An in-place restore does not roll the analytics\ndatabase back.** Restoring this app in place brings back its Postgres data and the saved copy, but the\nlive analytics store is preserved as it is. If you want a true point-in-time copy, **clone** the app\ninstead, which rebuilds everything from the backup. If you specifically need an in-place restore to\nroll the analytics data back too, `docs/KNOWN-ISSUES.md` has the short recipe.\n\nIf you are updating from 0.1.0, the first boot performs a one-time data migration and takes noticeably\nlonger than usual. It is resumable, so an interrupted update continues rather than starting over.\n", "manifestVersion": 2, "minBoxVersion": "9.1.0", "website": "https://langfuse.com", "documentationUrl": "https://langfuse.com/docs", "packagerName": "OrcVole", "packagerUrl": "https://github.com/OrcVole/langfuse-cloudron", "contactEmail": "Most+github@OrcadianVole.com", "iconUrl": "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png", "mediaLinks": [ "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png" ], "dockerImage": "ghcr.io/orcvole/langfuse-cloudron@sha256:fa6b06b5d8e7027c7645ea08c50da4873c6e6763abe0056d7fb77601cb8d984b" }, "creationDate": "Sun, 02 Aug 2026 23:47:51 GMT", "ts": 1785714471000, "publishState": "published" }, "0.4.0": { "manifest": { "id": "io.github.orcvole.langfuse", "title": "Langfuse", "author": "OrcVole", "tagline": "Open-source LLM observability, tracing, evals and prompt management", "description": "4.3.0\n\nLangfuse is an open-source LLM engineering platform. It gives you observability and tracing for LLM\napplications, evaluations, prompt management, a prompt playground, datasets, and usage/cost metrics —\nall self-hosted on your own Cloudron.\n\nThis package runs the **open-source (MIT)** edition. It integrates with OpenTelemetry, the OpenAI SDK,\nLangChain, LiteLLM, LlamaIndex, and most LLM tooling, so it can act as the observability sink for the\nrest of your stack.\n\n**On this Cloudron:**\n\n* Langfuse keeps its **own login** (email/password plus optional single sign-on through your Cloudron\n users via OIDC). It is *not* fronted by the Cloudron SSO proxy.\n* Trace ingestion uses **Langfuse project API keys** (a public/secret key pair you create in the UI),\n sent to the open `/api/public/*` endpoints — including the OpenTelemetry endpoint\n `/api/public/otel/v1/traces`.\n* ClickHouse and MinIO are **bundled and managed for you**; PostgreSQL and Redis come from Cloudron\n addons. All trace data and object storage live in the app's backed-up data directory.\n\nThe enterprise (`/ee`) features (RBAC, audit logs, data retention policies, SCIM) are intentionally\nnot included.\n", "changelog": "* **Langfuse v4.2.0 to v4.3.0.** A routine upstream minor: no schema migrations, no new required\n configuration, and no change to the bundled ClickHouse or MinIO.\n* Fixes to the v4 compatibility surface that this package's `dual` write mode relies on: legacy\n dataset-run GET APIs are detected correctly again, and dashboards keep working against legacy\n v4 traces.\n* The sidebar's background-migration indicator no longer lights up for migrations that are\n switched off by configuration and will never run.\n* Upstream hardening: the signup API route now rejects non-POST methods with 405 rather than\n returning an empty response.\n", "icon": "file://logo.png", "tags": [ "notes", "project" ], "version": "0.4.0", "upstreamVersion": "4.3.0", "healthCheckPath": "/api/public/health", "httpPort": 3000, "persistentDirs": [ "/var/lib/clickhouse", "/var/lib/minio" ], "backupCommand": "/app/code/conf/backup-clickhouse.sh", "restoreCommand": "/app/code/conf/restore-clickhouse.sh", "addons": { "localstorage": {}, "postgresql": {}, "redis": {}, "oidc": { "loginRedirectUri": "/api/auth/callback/custom" }, "sendmail": { "optional": true, "supportsDisplayName": true } }, "httpPorts": { "LANGFUSE_BLOB_DOMAIN": { "title": "Langfuse Media Storage", "description": "Presigned S3 endpoint for multimodal trace attachments (images, audio, files). Public — not behind Cloudron login; secured by S3 request signatures and a private bucket.", "containerPort": 9100, "defaultValue": "langfuse-blob" } }, "memoryLimit": 6442450944, "configurePath": "/", "optionalSso": true, "postInstallMessage": "## Langfuse is installed 🎉\n\n**This is a full web app with its own login.** Open the app and create your account.\n\n\nYou can sign in with your Cloudron account (single sign-on via OIDC), or create a Langfuse-native\nemail/password account. The first user to sign up becomes the owner.\n\n\nCreate the first Langfuse account by signing up at the app's URL. The first user to sign up becomes\nthe owner.\n\n\n### Sending traces (integrations)\n\nTrace ingestion does **not** use Cloudron login — it uses **Langfuse project API keys**:\n\n1. In Langfuse, create an Organization → Project.\n2. In **Project settings → API keys**, create a key pair (public `pk-…` + secret `sk-…`).\n3. Point your SDK / OpenTelemetry exporter at this app's URL with that key pair. The OTLP endpoint is\n `…/api/public/otel/v1/traces`.\n\nThe public API (`/api/public/*`) is intentionally reachable without Cloudron SSO so that integrations\ncan ingest with their API keys.\n\n### Media (multimodal traces)\n\nImage / audio / file attachments on traces are stored in the bundled object storage and served to your\nbrowser from a separate **media subdomain** (you assign it at install). That subdomain is public by\ndesign and secured by signed, expiring URLs over a private bucket — it has no browseable listing and no\nCloudron login in front of it (a login wall would break the signed-URL flow).\n\n### Backups and restores (please read once)\n\nThis app keeps its analytics database and object storage outside the ordinary backed-up folder, so\nthat their constant background file churn cannot abort your **whole server's** backup run. They are\nstill fully backed up and restorable: the app writes a consistent copy of both into the backup at\nbackup time.\n\nOne consequence is worth knowing before you need it. **An in-place restore does not roll the analytics\ndatabase back.** Restoring this app in place brings back its Postgres data and the saved copy, but the\nlive analytics store is preserved as it is. If you want a true point-in-time copy, **clone** the app\ninstead, which rebuilds everything from the backup. If you specifically need an in-place restore to\nroll the analytics data back too, `docs/KNOWN-ISSUES.md` has the short recipe.\n\nIf you are updating from 0.1.0, the first boot performs a one-time data migration and takes noticeably\nlonger than usual. It is resumable, so an interrupted update continues rather than starting over.\n", "manifestVersion": 2, "minBoxVersion": "9.1.0", "website": "https://langfuse.com", "documentationUrl": "https://langfuse.com/docs", "packagerName": "OrcVole", "packagerUrl": "https://github.com/OrcVole/langfuse-cloudron", "contactEmail": "Most+github@OrcadianVole.com", "iconUrl": "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png", "mediaLinks": [ "https://raw.githubusercontent.com/OrcVole/langfuse-cloudron/main/logo.png" ], "dockerImage": "ghcr.io/orcvole/langfuse-cloudron@sha256:8d84e8c579650c3add48e34cf3bdf64d50ba2435f33a4ed2fa818942fc19c8b1" }, "creationDate": "Mon, 03 Aug 2026 11:14:45 GMT", "ts": 1785755685000, "publishState": "published" } } }