# oikos-web — control-room SPA + desktop app delivery # # Extracted from dtoro/oikos (plans/2026-08-15-hexagonal-architecture.md # Phase 1). The backend API/MCP stack stays in dtoro/oikos; this repo owns # everything that renders it. .PHONY: ui desktop desktop-package install webhook clean # Local sanity-check build of the SPA. ui: cd web && npm run build desktop: ui ## Build the Wails desktop app for the current platform rm -rf desktop/frontend/dist mkdir -p desktop/frontend/dist cp -r web/dist/* desktop/frontend/dist/ cd desktop && CGO_ENABLED=1 go build -tags desktop -ldflags "-X main.version=$$(cat ../VERSION)" -o build/bin/Oikos . desktop-package: desktop ## Build + package the desktop app (zip on macOS, tar.gz on Linux) @if [ "$(shell uname)" = "Darwin" ]; then \ mkdir -p desktop/build/bin/Oikos.app/Contents/MacOS desktop/build/bin/Oikos.app/Contents/Resources; \ APP="desktop/build/bin/Oikos.app"; \ cp desktop/build/bin/Oikos "$$APP/Contents/MacOS/Oikos"; \ cp desktop/icon.icns "$$APP/Contents/Resources/icon.icns"; \ sed "s/\$$(VERSION)/$$(cat VERSION)/" desktop/Info.plist.template > "$$APP/Contents/Info.plist"; \ cd desktop/build/bin && zip -r oikos-desktop-darwin-$$(uname -m).zip Oikos.app ;; \ else \ cd desktop/build/bin && tar czf oikos-desktop-linux-$$(uname -m).tar.gz Oikos ;; \ fi @echo "Package: desktop/build/bin/" install: desktop-package ## Install to /Applications (macOS) rm -rf /Applications/Oikos.app cp -r desktop/build/bin/Oikos.app /Applications/ webhook: ## Build the deploy-webhook receiver go build -o webhook ./cmd/webhook clean: rm -rf web/dist desktop/build desktop/frontend/dist webhook