instalacion
sidebar_position: 1 title: Instalación Local
Guía de Instalación Local
Requisitos previos
- .NET 10 SDK o superior
- Docker (para SQL Server y MySQL en contenedores)
- Git
- Cliente de línea de comandos de SQL Server (
sqlcmd, incluido en la imagen de Docker) y de MySQL (opcional, para pruebas)
Clonar el repositorio
git clone https://github.com/Anti-corruption-layer/backend-core.git
cd backend-core
Levantar las bases de datos con Docker
SQL Server (base de control)
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=TuClaveSegura#2026" \
-p 127.0.0.1:1433:1433 --name sqlserver --restart unless-stopped \
-v sqlserver_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
MySQL (bases de estudiantes)
docker run -e "MYSQL_ROOT_PASSWORD=TuClaveSegura#2026" \
-p 3306:3306 --name mysql --restart unless-stopped \
-v mysql_data:/var/lib/mysql -d mysql:8.0
En producción, SQL Server solo escucha en
127.0.0.1(nunca expuesto). MySQL sí se expone públicamente porque los estudiantes necesitan conectarse directo — verservidor.mdpara el detalle de seguridad aplicado.
Ejecutar los scripts SQL
Los scripts de creación de tablas, Stored Procedures, Functions y Views están en la carpeta sql/ del repositorio. Ejecútalos en orden contra ControlDB (SQL Server) y mysql_control (MySQL) — ver stored-procedures.md para el detalle de cada uno.
Configurar variables de entorno
El backend no debe tener secretos en appsettings.json. Crea un archivo appsettings.Development.json local (ignorado por Git) con:
{
"ConnectionStrings": {
"SqlServer": "Server=localhost,1433;Database=ControlDB;User Id=sa;Password=TuClave;TrustServerCertificate=True;",
"MySql": "Server=127.0.0.1;Port=3306;Database=mysql_control;Uid=backend_provisioner;Pwd=TuClave;"
},
"Jwt": {
"Key": "una-clave-aleatoria-larga-solo-para-desarrollo-local",
"Issuer": "DBHostApi",
"Audience": "DBHostClient"
},
"GitHub": {
"ClientId": "tu-client-id",
"ClientSecret": "tu-client-secret"
},
"Google": {
"ClientId": "tu-client-id",
"ClientSecret": "tu-client-secret"
}
}
Correr el backend
cd src/BackendCore.Api
dotnet restore
dotnet run
El backend queda escuchando en http://localhost:5139 (puerto configurable en launchSettings.json).
Probar que todo funciona
curl -X POST http://localhost:5139/api/Auth/register \
-H "Content-Type: application/json" \
-d '{"fullName":"Test","organization":"Test","email":"test@test.com","password":"Clave123"}'
Debería devolver un JSON con token, userId y mySqlDatabase (la base MySQL aprovisionada automáticamente).