Project: Online sandbox for OptiProfiler — upload a solver, pick a test configuration, and let the platform run benchmark() in Docker with network isolation and resource limits.

Live site: app.optprof.com
Repository: github.com/optiprofiler/optiprofiler-platform

🌐 Platform: app.optprof.com

📦 GitHub: github.com/optiprofiler/optiprofiler-platform

🔗 OptiProfiler (packages & docs): www.optprof.com

Overview Link to heading

OptiProfiler Platform closes the loop between “I have a solver file” and “I have profiles and scores” without installing MATLAB/Python toolchains locally. The browser talks to a FastAPI backend: uploads are validated, tasks enter a Celery + Redis queue, and workers execute OptiProfiler inside a Docker sandbox (preinstalled deps, bounded CPU/memory, no open network). Results and artifacts land in structured storage; the UI tracks status, downloads bundles, and can tap LLM-assisted flows (Advisor chat, result interpretation, auto-debug) wired to optiprofiler-agent.

Motivation Link to heading

  • Lower the barrier: Many users only need a one-off comparison; a web sandbox avoids local setup and version drift
  • Safety and fairness: Untrusted code must not touch the host — container isolation plus AST-based static checks on uploads reduce obvious abuse paths
  • Operational scale: Async jobs, retries, and quotas fit how real benchmarks behave (long runs, occasional failures)

Main Contributions Link to heading

  • End-to-end web stackNext.js frontend (app.optprof.com), FastAPI API (auth, tasks, file handling), Celery workers, Redis broker
  • Sandboxed execution — Dedicated runner invokes optiprofiler.benchmark() in a constrained environment; workers use subprocess boundaries so in-task parallelism stays reliable
  • AccountabilityGitHub OAuth + JWT sessions, rate limits and per-user task caps, optional eviction of old runs (storage governance)
  • Agent ecosystem — Platform ADRs describe integration with OptiProfiler Agent: floating Advisor chat, Interpreter-style reports on finished tasks, and auto-debug paths for failed runs

Key Ideas Link to heading

Upload → validate → queue → run → store. The architecture doc spells out the happy path: AST scan rejects unsafe patterns before a task is ever queued; the worker promotes status from queued to running to success, and the frontend polls while work is in flight.

Same benchmarking semantics as local OptiProfiler. The sandbox is not a different solver API — it runs the familiar benchmark() workflow so results stay comparable with desktop runs.

Companion to the agent package. OptiProfiler Agent shines in the terminal; Platform targets the browser-first workflow and shared infrastructure (auth, storage, job orchestration).