Repository navigation
feat: add Langfuse LXC - #2448
steveonjava wants to merge 3 commits into
Conversation
- Create the admin, a Default project and its API keys through upstream's LANGFUSE_INIT_* variables on first start, save them to ~/langfuse.creds, then drop the one-time values from .env and keep sign-up disabled. - Update SeaweedFS and golang-migrate from their own releases. - Let langfuse-migrate want, not require, the local PostgreSQL, ClickHouse, Redis and SeaweedFS units, so an external server can replace one. - Explain the build-time DOCKER_BUILD flag and drop it from the runtime .env.
- Read var_admin_pass (declared in app_vars, exported from the ct script) and use it for the first-start admin account. - Generate a password when it is empty, or when it is shorter than Langfuse's 8-character minimum or holds spaces, quotes or backslashes that systemd's EnvironmentFile parser would alter.
Try this script
COMMUNITY_SCRIPTS_URL=https://raw.githubusercontent.com/steveonjava/ProxmoxVED/langfuse-native-lxc \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/steveonjava/ProxmoxVED/langfuse-native-lxc/ct/langfuse.sh)"
Against a core branch as wellAdd Useful flags while testing
|
|
✅ Requirements check passed. Thanks for fixing the description — the |
✍️ Description
New script: Langfuse, an open-source LLM engineering platform (tracing, evaluations, prompt management, metrics), installed natively without Docker.
/opt/langfuse_data/.envand survives updates.var_admin_email, defaultadmin@example.com;var_admin_pass, generated when empty), a Default project and its API keys through upstream'sLANGFUSE_INIT_*variables. The login and keys go to~/langfuse.creds, the one-time values are then removed from.env, and sign-up stays disabled.Wants=the local PostgreSQL, ClickHouse, Redis and SeaweedFS units, so any of them can be disabled in favour of an external server configured in.env.🔗 Related PR / Issue
Link: #2447
✅ Prerequisites (X in brackets)
🏗️ arm64 Support (X in brackets)
🖥️ Tested on (X in brackets)
🛠️ Type of Change (X in brackets)
README,AppName.md,CONTRIBUTING.md, or other docs.🔍 Code & Security Review (X in brackets)
CODE-AUDIT.md&CONTRIBUTING.mdguidelinesAppName.sh,AppName-install.sh,AppName.json)fetch_and_deploy_gh_release,fetch_and_deploy_codeberg_release,fetch_and_deploy_gl_release, orfetch_and_deploy_from_urlinstead ofgit pull.🤖 AI Assistance (X in brackets)
AGENTS.mdand.github/agents/pve-script-creator.agent.mdas guidance, and the output has been reviewed and corrected to match those guidelines.Please describe to which degree, if any, an LLM was used in creating this pull request. Name the model(s) used and, if applicable, the reasoning/thinking effort level (e.g. "Claude Sonnet 4.5, high reasoning, used to draft the install script, then manually reviewed and tested" or "No LLM used"). This is informational, not a penalty — but scripts that are clearly AI-generated and not further revised by the author to match
CODE-AUDIT.md/CONTRIBUTING.mdmay be closed without review.AI was used to generate the script, with careful attention to existing script patterns and contributor guidelines. The final script has been human-reviewed.
📋 Additional Information (optional)
Candidate branch: steveonjava/ProxmoxVED
langfuse-native-lxc(commit080a14a, on DevScriptsmainfd53441).Tested on Proxmox VE 9.2.21 (kernel 7.0.14) from a local checkout of
080a14awith core1ed2485(source-origin guide, variant 2). The run usedmode=mydefaults, withvar_disk=30because of the test host's free space, and suppliedvar_admin_emailand avar_admin_passcontaining# $ % ; & *.~/langfuse.credsis mode 600, and its login and API keys work; a wrong password gets no session;.envkeeps noLANGFUSE_INIT_*values;/api/public/v2/observations, with usage 1000/500 counted once and gpt-4o cost 0.0075 USD;.env, the S3 identity and the creds file stayed byte-identical; the new build started, and the marker advanced only after health passed..envpointed at another Redis andredis-servermasked, Langfuse started and kept working, including after a reboot.Langfuse v4 defaults to the
events_onlywrite mode, so OTLP and the v2 read APIs are the supported path. arm64 and Incus were not tested.📦 Application Requirements (for new scripts)
🌐 Source