webgl: 新 app — 说需求→gemma 流式生成可交互 WebGL 小程序
deploy articulate / build-and-deploy (push) Successful in 2m7s
deploy cube / build-and-deploy (push) Successful in 2m36s
deploy karaoke / build-and-deploy (push) Successful in 1m38s
deploy llm-proxy / build-and-deploy (push) Successful in 3m29s
deploy music / build-and-deploy (push) Successful in 3m45s
deploy notes / build-and-deploy (push) Successful in 2m43s
deploy simpleasm / build-and-deploy (push) Successful in 1m54s
deploy webgl / build-and-deploy (push) Successful in 1m50s
deploy werewolf / build-and-deploy (push) Successful in 1m27s
deploy write / build-and-deploy (push) Successful in 2m18s

左 sidebar 聊天说需求,右主区 运行/代码 两 tab。后端 SSE 流式把
gemma 生成的自包含纯原生 WebGL HTML 一段段回吐,前端实时显示代码、
写完丢进沙箱 iframe 跑。完全无状态(迭代靠前端回传 current_code)。
给儿子体验 WebGL。
This commit is contained in:
Fam Zheng
2026-06-03 22:21:33 +01:00
parent cf360f0193
commit 4336cde189
20 changed files with 2574 additions and 0 deletions
+92
View File
@@ -0,0 +1,92 @@
apiVersion: v1
kind: Namespace
metadata:
name: cube-webgl
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: webgl
namespace: cube-webgl
labels:
app: webgl
spec:
replicas: 1
selector:
matchLabels:
app: webgl
template:
metadata:
labels:
app: webgl
spec:
imagePullSecrets:
- name: registry-creds
containers:
- name: webgl
image: registry.famzheng.me/mochi/webgl:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
name: http
# secret `llm-credentials`(含 LLM_API_TOKEN)由 kubectl 手工创建,
# 不进 git。值跟 cube portal 的 chat-credentials 同一个 gemma token。
envFrom:
- secretRef:
name: llm-credentials
env:
- name: LLM_GATEWAY
value: "http://3.135.65.204:8848/v1"
- name: LLM_MODEL
value: "gemma-4-31b-it"
readinessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 1
periodSeconds: 5
livenessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 5
periodSeconds: 15
resources:
requests:
cpu: 10m
memory: 16Mi
limits:
cpu: 200m
memory: 64Mi
---
apiVersion: v1
kind: Service
metadata:
name: webgl
namespace: cube-webgl
spec:
selector:
app: webgl
ports:
- name: http
port: 80
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: webgl
namespace: cube-webgl
spec:
ingressClassName: traefik
rules:
- host: webgl.famzheng.me
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: webgl
port:
number: 80