🎉 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

+48
View File
@@ -0,0 +1,48 @@
# ============================================
# OpenCode WebUI - Frontend
# ============================================
# 纯前端静态文件 + Caddy 反向代理 API
# ---- Stage 1: 构建前端 ----
# 前端产物是静态文件,和目标 CPU 架构无关。
# 多架构镜像构建时让 Node builder 始终跑在构建机原生平台,避免 arm64 通过 QEMU 重跑 npm/vite 构建。
FROM --platform=$BUILDPLATFORM node:22-alpine AS builder
ARG NPM_REGISTRY=https://registry.npmjs.org/
ARG NPM_REGISTRY_FALLBACK=https://registry.npmmirror.com/
WORKDIR /app
COPY package.json package-lock.json ./
RUN set -eux; \
npm config set registry "${NPM_REGISTRY}"; \
npm config set fetch-retries 5; \
npm config set fetch-retry-factor 2; \
npm config set fetch-retry-mintimeout 10000; \
npm config set fetch-retry-maxtimeout 120000; \
npm config set audit false; \
npm config set fund false; \
if npm ci --ignore-scripts; then \
exit 0; \
fi; \
echo "npm ci failed on ${NPM_REGISTRY}, retrying with ${NPM_REGISTRY_FALLBACK}"; \
npm cache clean --force; \
npm config set registry "${NPM_REGISTRY_FALLBACK}"; \
npm ci --ignore-scripts
COPY . .
RUN node scripts/copy-material-icons.mjs
ENV VITE_API_BASE_URL=/api
RUN npm run build
# ---- Stage 2: Caddy 运行时 ----
FROM caddy:2-alpine
# 前端静态文件
COPY --from=builder /app/dist /srv
# Caddy 配置(默认 + standalone)
COPY docker/Caddyfile /etc/caddy/Caddyfile
COPY docker/Caddyfile.standalone /etc/caddy/Caddyfile.standalone
EXPOSE 3000
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile"]