Spaces:
Runtime error
Runtime error
| title: 42CodeRunner Backend | |
| emoji: 馃殌 | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: docker | |
| sdk_version: latest | |
| app_file: app.py | |
| pinned: false | |
| # 42CodeRunner - Backend | |
| Este es el backend para 42CodeRunner, un servicio que permite compilar y ejecutar c贸digo C de forma segura a trav茅s de una API REST. | |
| ## Requisitos | |
| - Python 3.8+ | |
| - GCC (para compilar c贸digo C) | |
| - Docker (opcional, para ejecutar en contenedor) | |
| ## Instalaci贸n | |
| ### Instalaci贸n local | |
| ```bash | |
| # Clonar el repositorio | |
| git clone https://github.com/yourusername/42CodeRunner.git | |
| cd 42CodeRunner/backend | |
| # Crear entorno virtual (opcional pero recomendado) | |
| python -m venv venv | |
| # Activar entorno virtual | |
| # En Windows | |
| venv\Scripts\activate | |
| # En Linux/Mac | |
| # source venv/bin/activate | |
| # Instalar dependencias | |
| pip install -r requirements.txt | |
| # Ejecutar el servidor | |
| python app.py | |
| ``` | |
| El servidor estar谩 disponible en http://localhost:5000 | |
| ### Instalaci贸n con Docker | |
| ```bash | |
| # Construir la imagen | |
| docker build -t 42coderunner-backend . | |
| # Ejecutar el contenedor | |
| docker run -p 5000:5000 42coderunner-backend | |
| ``` | |
| ## API | |
| ### Ejecutar c贸digo C | |
| **Endpoint:** `POST /api/execute` | |
| **Cuerpo de la solicitud:** | |
| ```json | |
| { | |
| "code": "#include <stdio.h>\n\nint main() {\n printf(\"Hello, World!\\n\");\n return 0;\n}" | |
| } | |
| ``` | |
| **Respuesta exitosa:** | |
| ```json | |
| { | |
| "success": true, | |
| "output": "Hello, World!\n", | |
| "error": "", | |
| "execution_time": 0.023 | |
| } | |
| ``` | |
| **Respuesta con error:** | |
| ```json | |
| { | |
| "success": false, | |
| "error": "main.c:3:5: error: expected ';' before 'printf'" | |
| } | |
| ``` | |
| ### Verificar estado del servicio | |
| **Endpoint:** `GET /api/health` | |
| **Respuesta:** | |
| ```json | |
| { | |
| "status": "ok" | |
| } | |
| ``` | |
| ## Seguridad | |
| El servicio implementa las siguientes medidas de seguridad: | |
| 1. L铆mite de tiempo de ejecuci贸n (5 segundos por defecto) | |
| 2. Ejecuci贸n en archivos temporales con nombres aleatorios | |
| 3. Limpieza autom谩tica de archivos temporales | |
| ## Despliegue en Hugging Face | |
| Para desplegar este servicio en Hugging Face Spaces: | |
| 1. Crea un nuevo Space en Hugging Face | |
| 2. Selecciona Docker como tipo de espacio | |
| 3. Sube los archivos del backend (incluyendo el Dockerfile) | |
| 4. Configura el espacio para exponer el puerto 5000 | |
| ## Licencia | |
| MIT |