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
26 lines
641 B
Bash
26 lines
641 B
Bash
#!/bin/sh
|
|
# Start both processes and exit the container if either one dies.
|
|
|
|
cleanup() {
|
|
kill "$ROUTER_PID" "$CADDY_PID" 2>/dev/null
|
|
wait "$ROUTER_PID" "$CADDY_PID" 2>/dev/null
|
|
exit 1
|
|
}
|
|
|
|
trap cleanup TERM INT
|
|
|
|
opencodeui-router &
|
|
ROUTER_PID=$!
|
|
|
|
caddy run --config /etc/caddy/Caddyfile &
|
|
CADDY_PID=$!
|
|
|
|
# Wait for either process to exit, then tear down the other.
|
|
# `wait -n` is not available in busybox sh, so poll both.
|
|
while kill -0 "$ROUTER_PID" 2>/dev/null && kill -0 "$CADDY_PID" 2>/dev/null; do
|
|
wait -n "$ROUTER_PID" "$CADDY_PID" 2>/dev/null || sleep 1
|
|
done
|
|
|
|
echo "One of the processes exited, shutting down..."
|
|
cleanup
|