🎉 Initial commit: PiAgentUI — AI Agent Desktop & Web UI
Build & Push Frontend Docker Image / build-and-push (push) Canceled after 0s
Build Validation / validate (push) Canceled after 6s
Build & Push Backend Docker Image / build-and-push (push) Failing after 10m10s
Build & Push Gateway Docker Image / build-and-push (push) Failing after 10m9s
Build & Push Frontend Docker Image / build-and-push (push) Canceled after 0s
Build Validation / validate (push) Canceled after 6s
Build & Push Backend Docker Image / build-and-push (push) Failing after 10m10s
Build & Push Gateway Docker Image / build-and-push (push) Failing after 10m9s
A professional workspace for AI coding agents with: - Real-time streaming chat with SSE - Session management (fork, clone, tree navigation) - MCP tools browser & metadata panel - Skills browser (global, project, package sources) - Voice input & STT provider configuration - Integrated terminal & file explorer - Model selector with capability metadata - Keyboard-first UI with command palette - 8 languages (en, pt-BR, es, ja, zh-CN, ar, bn, hi) - Tauri 2 desktop app - React 19 + TypeScript + Vite 8 + Tailwind CSS 4 - Pi Agent extension runtime Originally forked from OpenCodeUI, now an independent project. License: GPL-3.0-only
This commit is contained in:
commit
b3489e1ede
983 files changed
+158475
No files matched your search
@@ -0,0 +1,114 @@
|
||||
# ============================================
|
||||
# OpenCode WebUI - Backend
|
||||
# ============================================
|
||||
# Debian slim + opencode serve + agent tooling
|
||||
|
||||
FROM docker:29-cli AS docker-cli
|
||||
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
ARG USE_CHINA_MIRROR=0
|
||||
ARG APT_MIRROR=http://mirrors.tuna.tsinghua.edu.cn/debian
|
||||
ARG APT_SECURITY_MIRROR=http://mirrors.tuna.tsinghua.edu.cn/debian-security
|
||||
ARG NPM_CONFIG_REGISTRY=https://registry.npmmirror.com
|
||||
ARG NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
|
||||
ARG MISE_INSTALL_URL=https://mise.run
|
||||
ARG OPENCODE_INSTALL_URL=https://opencode.ai/install
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive \
|
||||
LANG=C.UTF-8 \
|
||||
LC_ALL=C.UTF-8 \
|
||||
TERM=xterm-256color \
|
||||
COLORTERM=truecolor \
|
||||
EDITOR=vim \
|
||||
NPM_CONFIG_REGISTRY=${NPM_CONFIG_REGISTRY} \
|
||||
NODEJS_ORG_MIRROR=${NODEJS_ORG_MIRROR}
|
||||
|
||||
RUN if [ "${USE_CHINA_MIRROR}" = "1" ] && [ -f /etc/apt/sources.list.d/debian.sources ]; then \
|
||||
sed -i \
|
||||
-e "s|http://deb.debian.org/debian|${APT_MIRROR}|g" \
|
||||
-e "s|http://security.debian.org/debian-security|${APT_SECURITY_MIRROR}|g" \
|
||||
/etc/apt/sources.list.d/debian.sources; \
|
||||
fi
|
||||
|
||||
# Agent 常用基础环境。语言运行时交给 mise,安装到持久化的 /root。
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
bash \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dnsutils \
|
||||
fd-find \
|
||||
file \
|
||||
fonts-dejavu-core \
|
||||
fonts-liberation \
|
||||
fonts-noto-cjk \
|
||||
fonts-noto-color-emoji \
|
||||
g++ \
|
||||
git \
|
||||
git-lfs \
|
||||
gnupg \
|
||||
jq \
|
||||
less \
|
||||
make \
|
||||
nano \
|
||||
openssh-client \
|
||||
patch \
|
||||
procps \
|
||||
python3 \
|
||||
python3-venv \
|
||||
ripgrep \
|
||||
rsync \
|
||||
tini \
|
||||
tzdata \
|
||||
unzip \
|
||||
vim-tiny \
|
||||
wget \
|
||||
xz-utils \
|
||||
zip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Docker CLI + Compose/Buildx plugin,只复制客户端,不安装 dockerd/containerd/runc。
|
||||
RUN mkdir -p /usr/local/libexec/docker/cli-plugins
|
||||
COPY --from=docker-cli /usr/local/bin/docker /usr/local/bin/docker
|
||||
COPY --from=docker-cli /usr/local/libexec/docker/cli-plugins/docker-compose /usr/local/libexec/docker/cli-plugins/docker-compose
|
||||
COPY --from=docker-cli /usr/local/libexec/docker/cli-plugins/docker-buildx /usr/local/libexec/docker/cli-plugins/docker-buildx
|
||||
|
||||
# Debian 的 fd 二进制叫 fdfind,补一个常见命令名。
|
||||
RUN ln -sf /usr/bin/fdfind /usr/local/bin/fd
|
||||
|
||||
# 安装 mise。GitHub Actions 等 CI 环境会在构建时下载,运行时安装的工具仍落在持久化 /root。
|
||||
RUN curl -fsSL "${MISE_INSTALL_URL}" | sh \
|
||||
&& MISE_BIN="$(find /root -name mise -type f 2>/dev/null | head -1)" \
|
||||
&& if [ -z "${MISE_BIN}" ]; then echo "mise binary not found" >&2; exit 1; fi \
|
||||
&& cp "${MISE_BIN}" /usr/local/bin/mise \
|
||||
&& chmod +x /usr/local/bin/mise \
|
||||
&& mise --version
|
||||
|
||||
# 安装 opencode。
|
||||
RUN curl -fsSL "${OPENCODE_INSTALL_URL}" | bash \
|
||||
&& OPENCODE_BIN="$(find /root -name opencode -type f 2>/dev/null | head -1)" \
|
||||
&& if [ -z "${OPENCODE_BIN}" ]; then echo "opencode binary not found" >&2; exit 1; fi \
|
||||
&& cp "${OPENCODE_BIN}" /usr/local/bin/opencode \
|
||||
&& chmod +x /usr/local/bin/opencode \
|
||||
&& opencode --version
|
||||
|
||||
# 工作目录
|
||||
RUN mkdir -p /workspace
|
||||
WORKDIR /workspace
|
||||
|
||||
ENV MISE_DATA_DIR=/root/.local/share/mise \
|
||||
MISE_CONFIG_DIR=/root/.config/mise \
|
||||
MISE_STATE_DIR=/root/.local/state/mise \
|
||||
OPENCODE_DISABLE_AUTOUPDATE=true \
|
||||
OPENCODE_DISABLE_TERMINAL_TITLE=true \
|
||||
WORKSPACE=/workspace
|
||||
|
||||
ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:/root/.local/share/mise/bin:${PATH}"
|
||||
|
||||
COPY ./docker/backend-entrypoint.sh /usr/local/bin/backend-entrypoint.sh
|
||||
RUN chmod +x /usr/local/bin/backend-entrypoint.sh
|
||||
|
||||
EXPOSE 4096
|
||||
|
||||
ENTRYPOINT ["tini", "--", "/usr/local/bin/backend-entrypoint.sh"]
|
||||
CMD ["opencode", "serve", "--port", "4096", "--hostname", "0.0.0.0"]
|
||||
Reference in new issue
Block a user