MargeCode42 / README.md
ancerlop's picture
README.md en la ra铆z de tu proyecto backend con la configuraci贸n YAML correcta
b0bca3f verified
---
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