# llamapad 部署编排。可变项全部在同目录 .env 里(llamapad.sh 生成并维护,也可手改), # 本文件通常无需改动;GPU 叠加层见 docker-compose.gpu.yml,由 .env 的 COMPOSE_FILE 启用。 services: llamapad: image: ${LLAMAPAD_IMAGE:-lancelrq/llamapad}:${LLAMAPAD_VERSION:?请在 .env 设置 LLAMAPAD_VERSION} container_name: llamapad restart: unless-stopped # 运行身份:面板要写 data 与模型库两个 bind 目录,容器内用户必须对它们可写 user: "${PUID:-1000}:${PGID:-1000}" # 端口取在内核临时端口段(Linux 常见 32768-60999)下方,避免与出站连接抢端口; # 置于 HTTPS 反代之后时把 PANEL_BIND 设为 127.0.0.1,面板就不会直接暴露在网络上 ports: - "${PANEL_BIND:-0.0.0.0}:${PANEL_PORT:-28960}:28960" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data:/app/config # 模型库宿主机路径不必另行告知面板:面板经 docker.sock 查自身挂载表自动识别 - ${MODELS_DIR:-./models}:/host-models # 宿主机网络指标:容器有独立网络命名空间,读 PID 1 的 netns 才是宿主机网卡; # 不挂此项时只有网络收发速率两项缺省,其余指标照常 - /proc:/host/proc:ro environment: - PANEL_DOCKER=real - TZ=${TZ:-Asia/Shanghai} - PANEL_CONFIG=/app/config/panel.yaml - PANEL_DB=/app/config/panel.db # 管理员密码唯一来源:面板启动时与库内不一致即更新,并让全部登录会话失效 - PANEL_ADMIN_PASSWORD=${PANEL_ADMIN_PASSWORD:?请在 .env 设置 PANEL_ADMIN_PASSWORD} - PANEL_LLAMA_HOST=host.docker.internal # 外部 LLM(可选,OpenAI 兼容):README 推荐参数的 AI 解析,留空即未配置 - PANEL_LLM_BASE_URL=${PANEL_LLM_BASE_URL:-} - PANEL_LLM_API_KEY=${PANEL_LLM_API_KEY:-} - PANEL_LLM_MODEL=${PANEL_LLM_MODEL:-} - PANEL_LLM_EXTRA_BODY=${PANEL_LLM_EXTRA_BODY:-} extra_hosts: - "host.docker.internal:host-gateway" # docker.sock 的 gid 因机器而异;llamapad.sh 每次启动自动探测并写回 .env group_add: - "${DOCKER_GID:?请在 .env 设置 DOCKER_GID(stat -c %g /var/run/docker.sock)}"