🎉 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

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:
Evandro committed 2026-06-01 00:50:06 -03:00
commit b3489e1ede
983 files changed
+158475

No files matched your search

+114
View File
@@ -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"]