# online-code-runner **Repository Path**: siYuanJun/online-code-runner ## Basic Information - **Project Name**: online-code-runner - **Description**: 在线Python代码运行器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-01 - **Last Updated**: 2026-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🐍 Online Python Code Runner [![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)](https://www.docker.com/) [![Vue 3](https://img.shields.io/badge/Vue%203-4FC08D?style=for-the-badge&logo=vuedotjs&logoColor=white)](https://vuejs.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-009688?style=for-the-badge&logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com/) [![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/) [![Monaco Editor](https://img.shields.io/badge/Monaco%20Editor-68217A?style=for-the-badge&logo=visualstudio&logoColor=white)](https://microsoft.github.io/monaco-editor/) [![Nginx](https://img.shields.io/badge/Nginx-009639?style=for-the-badge&logo=nginx&logoColor=white)](https://nginx.org/) 基于 Web 的在线 Python 代码编辑器,支持 Monaco Editor 语法高亮、沙箱安全执行、超时保护。**零宿主机依赖,一行命令部署**。 --- ## 🚀 快速开始 ```bash docker compose up -d --build ``` 浏览器打开 **http://localhost:8080** --- ## ✨ 功能 - 🎨 **Monaco Editor** — VS Code 内核,Python 语法高亮、行号、代码折叠 - ▶️ **一键运行** — 点击运行,stdout 结果即时展示 - ⌨️ **标准输入** — Input 面板传参,支持 `input()` 交互 - 🛡️ **安全沙箱** — subprocess 进程隔离,5 秒超时自动中断 - ❌ **错误捕获** — NameError / SyntaxError 完整堆栈展示 - 📥 **下载代码** — 一键导出为 `main.py` 文件 - 📋 **复制代码** — 一键复制到剪贴板 --- ## 🏗️ 架构 ``` Browser (localhost:8080) │ ▼ ┌─────────────────────────────────┐ │ Frontend Container │ │ 172.25.0.20:80 │ │ Nginx (alpine) │ │ ├── / → dist/ │ │ └── /api/* → proxy_pass │ └─────────────────────────────────┘ │ proxy_pass ▼ ┌─────────────────────────────────┐ │ Backend Container │ │ 172.25.0.10:8000 │ │ FastAPI + Uvicorn │ │ ├── POST /api/run │ │ ├── GET /api/health │ │ └── executor.py │ │ └── subprocess.run() │ │ timeout=5s │ └─────────────────────────────────┘ ``` --- ## 📁 项目结构 ``` online-code-runner/ ├── docker-compose.yml ├── frontend/ │ ├── Dockerfile │ ├── nginx.conf │ ├── src/App.vue │ └── ... ├── backend/ │ ├── Dockerfile │ ├── app/main.py │ ├── app/executor.py │ └── ... ├── scripts/export_images.sh ├── cli/update_app.sh └── .ai-workflow/ # 工程化管理制品 ``` --- ## 📋 工程化文档 完整工作流制品见 [`.ai-workflow/`](./.ai-workflow/): | 文档 | 说明 | |------|------| | [任务索引](./.ai-workflow/tasks/INDEX.md) | 5 个任务 + Mermaid 依赖图 | | [架构总览](./.ai-workflow/docs/ARCHITECTURE-OVERVIEW.md) | 拓扑图 + 数据流 + API 端点 | | [ADR-001](./.ai-workflow/docs/ADR-001-python-sandbox-execution.md) | 沙箱执行方案决策 | | [模块摘要](./.ai-workflow/docs/MODULE-python-editor-summary.md) | 产品/技术双视角 | | [经验沉淀](./.ai-workflow/docs/LESSONS-LEARNED.md) | 踩坑 + 有效模式 | | [文档索引](./.ai-workflow/docs/DOCS-INDEX.md) | 全部文档导航 |