feat(litellm): bare-metal LiteLLM proxy via uv, PostgreSQL and systemd - #1994
feat(litellm): bare-metal LiteLLM proxy via uv, PostgreSQL and systemd#1994aroldobossoni wants to merge 7 commits into
Conversation
Deploy from official GitHub release tarballs with setup_uv, setup_postgresql, prisma generate from schema.prisma, and systemd service. No Docker — aligned with ProxmoxVED AGENTS.md. Co-authored-by: Cursor <cursoragent@cursor.com>
Prisma spawns prisma-client-py via /bin/sh without the venv on PATH. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop temporary debug logs and redundant core-package deps (curl, gnupg, sudo) already installed by build.func. Restore standard build.func source. Co-authored-by: Cursor <cursoragent@cursor.com>
Set logo to upstream proxy logo.jpg, defaults to 1 CPU, 2 GB RAM, 10 GB disk. Co-authored-by: Cursor <cursoragent@cursor.com>
AGENTS.md requires logo as URL; Twemoji 1f685 renders the train emoji on the site. Co-authored-by: Cursor <cursoragent@cursor.com>
|
This looks good to me already |
| source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) | ||
| # Copyright (c) 2021-2026 community-scripts ORG | ||
| # Author: stout01 | ||
| # Co-Authors: MickLesk, tremor021 (prior pip/Prisma versions) |
There was a problem hiding this comment.
| # Co-Authors: MickLesk, tremor021 (prior pip/Prisma versions) | |
| # Co-Authors: MickLesk, tremor021 |
| DATABASE_URL=$(grep 'database_url:' /opt/litellm/litellm.yaml | awk '{print $2}') | ||
| export DATABASE_URL |
|
|
||
| # Copyright (c) 2021-2026 community-scripts ORG | ||
| # Author: stout01 | ||
| # Co-Authors: MickLesk, tremor021 (prior pip/Prisma versions) |
There was a problem hiding this comment.
| # Co-Authors: MickLesk, tremor021 (prior pip/Prisma versions) | |
| # Co-Authors: MickLesk, tremor021 |
| build-essential \ | ||
| python3-dev \ | ||
| libpq-dev \ | ||
| openssl |
There was a problem hiding this comment.
this is already installed i believe
| systemctl enable -q --now litellm | ||
| msg_ok "Created Service" | ||
|
|
||
| msg_info "Waiting for LiteLLM health check" |
There was a problem hiding this comment.
i dont believe a health check should be needed, it should just assume that it works.
| { | ||
| "text": "Uses PostgreSQL and Python (uv) with the official LiteLLM release tarball.", | ||
| "type": "info" | ||
| }, |
There was a problem hiding this comment.
| { | |
| "text": "Uses PostgreSQL and Python (uv) with the official LiteLLM release tarball.", | |
| "type": "info" | |
| }, |
|
@aroldobossoni Recent activity detected. Removing stale label. |
| "interface_port": 4000, | ||
| "documentation": "https://docs.litellm.ai/", | ||
| "website": "https://github.com/BerriAI/litellm", | ||
| "logo": "https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/72x72/1f685.png", |
| }, | ||
| { | ||
| "text": "LITELLM_SALT_KEY cannot be changed after models are added to the proxy.", | ||
| "type": "warning" | ||
| } |
There was a problem hiding this comment.
| }, | |
| { | |
| "text": "LITELLM_SALT_KEY cannot be changed after models are added to the proxy.", | |
| "type": "warning" | |
| } | |
| } |
having the notice in the file where they set litellm salt key is enough imo
|
One thing, and this is not related to the script here is, why did you lie in the PR Template regarding the use of AI? We are most certainly not against the use of AI, some of us use it ourself. But to tick the "I did not Use AI box" and then have cursor as a co author is just a blatant lie, wich I can not unterstand. Can you elaborate here @aroldobossoni what made you do that?!? |
|
Tested this PR on Proxmox VE 9.2.9 with the default Debian 13 LXC. The container creation and LiteLLM installation itself completed successfully, but the installation failed during the Prisma/initialization step with LiteLLM 1.96.0: This then causes the misleading follow-up error:
Pinning FastAPI to 0.140.6 fixes the LiteLLM import: uv pip install --python .venv/bin/python 'fastapi==0.140.6'After that: .venv/bin/litellm --versionworks correctly and reports LiteLLM 1.96.0. I also had to ensure the proxy extras/Prisma dependencies were installed and use the schema provided by So it may be worth:
|
Scripts which are clearly AI generated and not further revised by the Author of this PR (in terms of Coding Standards and Script Layout) may be closed without review.
✍️ Description
Re-adds LiteLLM as a bare-metal Community Script for ProxmoxVED.
ct/litellm.sh— LXC creation andupdate_script()usingcheck_for_gh_release+fetch_and_deploy_gh_releaseinstall/litellm-install.sh— PostgreSQL 16, Python 3.12 viasetup_uv, official release tarball, Prisma schema sync, systemd servicejson/litellm.json— metadata for the websiteTested on Proxmox VE 9.2.4 (Debian 13 LXC): install completes,
prisma generatesucceeds with venv on PATH,http://<CT_IP>:4000/health/livelinessreturns healthy.🔗 Related PR / Issue
Link: #14294 (previous removal from ProxmoxVE)
✅ Prerequisites (X in brackets)
🏗️ arm64 Support (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.📋 Additional Information (optional)
Prior Docker-based submissions were rejected per
AGENTS.md. This submission uses bare-metal installation only.📦 Application Requirements (for new scripts)
🌐 Source
Made with Cursor