Spaces:
Runtime error
Runtime error
File size: 2,329 Bytes
b0bca3f 8f10eaa |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
---
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 |