Spaces:
Runtime error
Runtime error
metadata
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
# 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
# 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:
{
"code": "#include <stdio.h>\n\nint main() {\n printf(\"Hello, World!\\n\");\n return 0;\n}"
}
Respuesta exitosa:
{
"success": true,
"output": "Hello, World!\n",
"error": "",
"execution_time": 0.023
}
Respuesta con error:
{
"success": false,
"error": "main.c:3:5: error: expected ';' before 'printf'"
}
Verificar estado del servicio
Endpoint: GET /api/health
Respuesta:
{
"status": "ok"
}
Seguridad
El servicio implementa las siguientes medidas de seguridad:
- L铆mite de tiempo de ejecuci贸n (5 segundos por defecto)
- Ejecuci贸n en archivos temporales con nombres aleatorios
- Limpieza autom谩tica de archivos temporales
Despliegue en Hugging Face
Para desplegar este servicio en Hugging Face Spaces:
- Crea un nuevo Space en Hugging Face
- Selecciona Docker como tipo de espacio
- Sube los archivos del backend (incluyendo el Dockerfile)
- Configura el espacio para exponer el puerto 5000
Licencia
MIT