#!/usr/bin/env bash # # LLMPanel installer. # # curl -fsSL https://raw.githubusercontent.com/LLMPanel/llmpanel-oss/master/install.sh | sudo bash # # Configuration comes from environment variables, not prompts: stdin is the # script itself when piped from curl, so reading answers from it is impossible. # (Coolify solves this the same way — write a .env, then re-run.) # # curl -fsSL .../install.sh | sudo \ # PANEL_DOMAIN=panel.example.com \ # API_DOMAIN=api.example.com \ # BASE_DOMAIN=example.com \ # ACME_EMAIL=you@example.com \ # CF_DNS_API_TOKEN=xxxx \ # DEPLOYMENT_MODE=cloud \ # RESEND_API_KEY=re_xxxx \ # EMAIL_FROM="LLMPanel " \ # bash # # The variables go after `sudo`. Written in front of `curl`, they reach only # curl, never the bash on the other side of the pipe. # # Email can also go through Cloudflare Email Sending instead of Resend: # CLOUDFLARE_ACCOUNT_ID=... CLOUDFLARE_EMAIL_API_TOKEN=... EMAIL_FROM=... # # With no variables set you get a plain-HTTP install on ports 3000/8000. # # Re-running is how an install upgrades. It pulls the newest images, refreshes # the compose files (a changed one is kept beside the new copy as .bak.