mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-11 03:38:38 +00:00
2 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
fd14e51ecf
|
feat(docker): add a Windows quickstart in PowerShell, and a styled terminal for both quickstarts (#44310)
* feat(docker): Windows quickstart in PowerShell, and a styled terminal for both quickstarts scripts/quickstart.ps1 does what scripts/quickstart.sh does, for Windows: powershell -c "irm https://raw.githubusercontent.com/BerriAI/litellm/main/scripts/quickstart.ps1 | iex" It asks the same two questions, prints the same lines, writes the same .env (UTF-8 without a byte order mark, LF endings, readable only by the current Windows account), and runs in Windows PowerShell 5.1 and PowerShell 7. Both scripts now give a person at a terminal colors, a check mark per step, a spinner while Docker starts, and a framed summary. Agents, CI, log files, and NO_COLOR get the same lines as plain text. * feat(docker): support podman and rancher desktop in the quickstart scripts Both quickstarts hard-required the docker CLI. They now pick the first available engine among docker, podman, and nerdctl (Rancher Desktop in containerd mode; its dockerd mode already provides a docker CLI), route every invocation through it, and tailor the start hint (podman machine start) and the printed stop/logs/volume commands to that engine * fix(docker): test port availability by binding instead of connecting On a WSL2-backed engine (Podman, Rancher Desktop), the Windows localhost relay swallows connection refusals on closed ports, so every connect waits out its 2-second timeout and Test-PortFree reported ports 4000 to 4099 all taken on a machine with none of them in use. Binding the port answers instantly and accurately * fix(quickstart): address review findings - The PowerShell script names the project with the same POSIX cksum as the shell script, so the earlier-install check sees the database from either script. - Both scripts stop when git tracks .env in the install folder. - .env is written to a temp file with owner-only permissions and moved into place, so a failed write never leaves a partial file. - Errors stay plain text when stderr is redirected. - The spinners remove their temp files on exit and Ctrl+C, and the shell spinner no longer runs date on every frame. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(quickstart): offer to copy the admin password to the clipboard After the summary, the quickstarts ask "What next?": copy the admin password, open the admin UI, or finish. The password is piped to the clipboard (pbcopy, wl-copy, xclip, xsel, clip.exe, or Set-Clipboard), so it never appears on screen or in the process list. Over SSH, or with no clipboard, the option is left out and the summary points to .env as before. The PowerShell menu now honours Ctrl+C. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(quickstart): write .env through mktemp, let Ctrl+C cancel the PowerShell menu, drop redundant comments Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(quickstart): remove the in-progress .env temp file when interrupted Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Mubashir Osmani <mubashir.osmani777@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
a7eb4bad81
|
feat(docker): one-command quickstart that starts the gateway, Postgres, and the admin UI (#43673)
* feat(docker): one-command quickstart that starts the gateway, Postgres, and the admin UI scripts/quickstart.sh downloads the quickstart compose file into ~/litellm-gateway, generates the master key, salt key, and a random Postgres password into .env, picks a free port, starts the stack, waits for it to be ready, and prints where to log in. It asks at most two questions (install folder, open the browser) and asks nothing without a terminal, under CI or Claude Code, or with --yes The compose file reads POSTGRES_PASSWORD and LITELLM_PORT from .env and falls back to the current values, so existing installs keep working unchanged * fix(quickstart): address review findings on reinstall, ports, gitignore, and binding Stop with instructions instead of generating a new password when a database volume from an earlier install is still there, since Postgres keeps the original password Keep port 4000 for an existing .env that has no saved port, and only search for a free port on fresh installs Only write the catch-all .gitignore into a folder the script created, and warn instead of writing into a folder that already existed Add LITELLM_BIND to the compose port mapping. It is empty by default, so existing installs keep "4000:4000", and the script sets it to 127.0.0.1: so new installs listen on this machine only * fix(quickstart): keep generated .env out of git in an existing repository folder When LITELLM_DIR is inside a git repository that does not ignore .env, add /<path>/.env to the clone's local exclude list (.git/info/exclude) instead of only warning. Tracked files, including .gitignore, are not touched * fix(quickstart): ignore an inherited LITELLM_BIND and keep .env ignored outside git Clear LITELLM_BIND from the environment before starting Compose, like the keys and project name, so .env decides the bind address and new installs stay on 127.0.0.1 In an existing folder that is not inside a git repository, add a single .env line to its .gitignore (creating it if needed, without a duplicate), so the keys stay out of commits if the folder later becomes a repository * fix(quickstart): keep an exported LITELLM_BIND for an .env without one, and show a read-first install The bind address now follows .env only when .env sets it, which every install this script creates does. For an older .env without a bind line, a LITELLM_BIND exported in the shell is kept, so an intentional 127.0.0.1: is not dropped The header shows how to download and read the script before running it |