Skip to content

spcode-web

Deploy the Softprobe web UI (spcode-web) after sp-backend is healthy. The UI proxies API calls to sp-backend and serves the per-host Java agent JAR.

Pull spcode-web

bash
# GCR login on the host running Docker (use pull key JSON from Softprobe)
cat softprobe-registry-puller.json | docker login -u _json_key --password-stdin https://gcr.io

IMAGE=gcr.io/cs-poc-sasxbttlzroculpau4u6e2l/spcode-web:1.0.21
docker pull "$IMAGE"

Kubernetes only

To pull the same image inside a cluster, create a pull secret instead — see sp-backend (Helm).

Configure

Create a working directory (for example ~/softprobe-web) with .env:

bash
# Required — upstream sp-backend (non-localhost triggers external mode)
SP_API_URL=http://<softprobe-sp-backend-host>

# Required — public IP or DNS clients use to open the UI and download Java agent
PUBLIC_BACKEND_HOST=<softprobe-sp-backend-host>

PUBLIC_BACKEND_HOST is baked into the per-host agent JAR at container start. Use the address your developers' machines can reach, not an internal-only hostname.

Start (docker run)

bash
set -a && source .env && set +a

docker rm -f spcode-web 2>/dev/null || true

docker run -d --name spcode-web \
  --restart unless-stopped \
  -p 8090:8090 -p 8443:8443 \
  --add-host=host.docker.internal:host-gateway \
  -e SP_API_URL \
  -e PUBLIC_BACKEND_HOST \
  -v sp-opencode-config:/workspace/.config/opencode \
  -v sp-opencode-data:/workspace/.local/share/opencode \
  "$IMAGE"

Verify

bash
# Container health (nginx probes backend via /vi/health)
curl -sf http://127.0.0.1:8090/vi/health

# UI loads
curl -sI http://127.0.0.1:8090/ | head -1

Java agent on app servers

Point instrumented apps at the backend storage API, not the web host:

text
-Dsp.storage.service.host=<softprobe-sp-backend-host>:8090

Developers download the agent from the web host:

text
http://<public-web-host>:8090/api/agent/sp-agent.jar

Ports

PortPurpose
8090Web UI, spcode proxy, API proxy to backend
8443HTTPS UI (self-signed cert)

Troubleshooting

SymptomCheck
UI loads, API 502SP_API_URL reachable from web container: docker exec spcode-web curl -sf "$SP_API_URL/actuator/health"
Agent JAR has wrong hostPUBLIC_BACKEND_HOST — recreate container after fixing
spcode desktop won't connectUse HTTPS on :8443 or access from same machine
Health check stuckBackend /vi/health must respond through nginx upstream

Stop

bash
docker stop spcode-web && docker rm spcode-web

Zero code changes · Full-context visibility · Cost optimization