Iraitz

Assetto Corsa Server Manager

La guía técnica definitiva para desplegar, configurar y optimizar tu propio servidor dedicado en Windows, utilizando la herramienta oficial de código abierto.

Visión General y Arquitectura

Assetto Corsa Server Manager es una interfaz web de código abierto diseñada para gestionar servidores dedicados de Assetto Corsa. Permite crear campeonatos, gestionar contenido y controlar el servidor sin necesidad de editar archivos de texto manualmente.

💡 Filosofía del Proyecto

Esta guía se centra en reutilizar hardware existente ("ese PC viejo") para crear una infraestructura de simracing privada, ahorrando costes mensuales de hosting y manteniendo la privacidad de los datos.

Arquitectura del Sistema

Jugador (AC)
Internet (IP Pública)
Router (NAT)
Server Manager (Puerto 8772)
AC Server (Puerto 9600)

Flujo de conexión desde el cliente hasta el proceso del juego.

Requisitos de Hardware

El servidor dedicado de Assetto Corsa (acServer.exe) es una aplicación de consola que calcula física y sincroniza estados. No renderiza gráficos, por lo que los requisitos difieren de los de juego.

Especificaciones Críticas

Componente Mínimo (10-15 Jugadores) Recomendado (20+ Jugadores)
CPU Intel Core 2 Duo / AMD Athlon X2 Intel Core i3 (4ta Gen+) / AMD Ryzen 3
RAM 4 GB DDR3 8 GB - 16 GB DDR4
Disco HDD 7200RPM SSD SATA / NVMe (Crítico para carga de pistas)
Red Ethernet 100Mbps (Cable) Ethernet Gigabit (Cable)
⚠️ WiFi NO es una opción

La latencia variable (jitter) del WiFi rompe la sincronización física del simulador. El servidor debe conectarse físicamente al router mediante cable Ethernet.

Preparación de Windows

Windows está diseñado para el consumidor, no para servidores. Debemos optimizarlo para que no interfiera (actualizaciones, suspensión).

1. Energía y Rendimiento

PowerShell (Admin) - Optimización Energía
# Desactivar Hibernación (ahorra espacio y evita estados suspensivos)
powercfg -h off

# Establecer plan de energía "Alto Rendimiento"
powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

# Evitar que el adaptador de red se apague para ahorrar energía
# (En Administrador de dispositivos -> Adaptadores de red -> Tu tarjeta -> Propiedades -> Administración de energía -> Desmarcar todo)

2. Firewall de Windows

Debemos permitir explícitamente el tráfico de Assetto Corsa y del Server Manager.

PowerShell (Admin) - Reglas Firewall
# Regla para el Panel Web (Server Manager)
New-NetFirewallRule -DisplayName "Assetto Server Manager Web" -Direction Inbound -LocalPort 8772 -Protocol TCP -Action Allow

# Reglas para el Juego (UDP/TCP)
New-NetFirewallRule -DisplayName "Assetto Server UDP" -Direction Inbound -LocalPort 9600 -Protocol UDP -Action Allow
New-NetFirewallRule -DisplayName "Assetto Server TCP" -Direction Inbound -LocalPort 9600 -Protocol TCP -Action Allow

# Puerto HTTP para Plugins (opcional)
New-NetFirewallRule -DisplayName "Assetto HTTP" -Direction Inbound -LocalPort 8081 -Protocol TCP -Action Allow

Configuración de Red Avanzada

1. IP Estática (Enlace Local)

El servidor debe tener una IP local fija (ej: 192.168.1.50) para que el router sepa siempre dónde enviar los datos.

🔧 Ver método PowerShell para IP Estática

Abre PowerShell como administrador y adapta los valores a tu red:

# Obtener nombre del adaptador
Get-NetAdapter

# Configurar IP (Ejemplo: IP 192.168.1.50, Gateway 192.168.1.1)
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.50 -PrefixLength 24 -DefaultGateway 192.168.1.1

# Configurar DNS
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 1.1.1.1,8.8.8.8

2. Port Forwarding (Acceso WAN)

Para que tus amigos se conecten desde sus casas, debes abrir puertos en tu router.

Puerto Protocolo Destino Función
9600 UDP 192.168.1.50 Conexión de juego principal (Vital)
9600 TCP 192.168.1.50 Sincronización y Lobby
8772 TCP 192.168.1.50 Panel Web (Solo si quieres administrar fuera de casa)
8081 TCP 192.168.1.50 API HTTP (Plugins como sTracker/KMR)
🔴 Problema: CGNAT

Si tu IP Pública empieza por 100.x.x.x, tienes CGNAT (Carrier Grade NAT). Esto significa que tu IP no es única, la compartes con otros clientes de tu ISP. El Port Forwarding tradicional no funcionará. Solución: Llama a tu ISP y solicita una IP Pública Fija o contrata un VPS para hacer túnel.

Instalación de Assetto Server Manager

Paso 1: Descarga

Descarga la última versión desde el repositorio oficial:

GitHub Releases

Busca el archivo server-manager-windows-amd64.zip.

Paso 2: Estructura de Archivos

Descomprime en una carpeta corta y sin espacios, ej: C:\AC-Server\.

Estructura de Directorios
C:\AC-Server\
├── server-manager.exe # Ejecutable principal
├── config.yml # Archivo de configuración (¡CRÍTICO!)
├── server-install/ # Aquí se instalará el servidor de AC
└── logs/ # Registros de errores

Paso 3: Configuración (config.yml)

Copia config.example.yml a config.yml y edítalo. Basado en el archivo INSTALL.txt proporcionado, esta es la configuración esencial:

config.yml - Configuración Esencial
# CONFIGURACIÓN DE STEAM
steam:
username: "TU_USUARIO_STEAM"
password: "TU_CONTRASEÑA_STEAM"
# Importante: Usa dobles barras invertidas en Windows
install_path: "C:\\AC-Server\\server-install"

# CONFIGURACIÓN WEB
web:
# 0.0.0.0 permite acceso desde cualquier IP de la red local
address: "0.0.0.0:8772"
secure: false

# BASE DE DATOS
database:
type: "boltdb"

# CUENTAS (CAMBIAR INMEDIATAMENTE)
accounts:
admin_password: "contraseña_segura_123"
⚠️ Steam Guard

La primera vez que ejecutes el servidor, intentará descargar los archivos del juego desde Steam. Si tienes Steam Guard activado, el proceso se detendrá esperando el código SMS. Mantén la ventana de la consola visible para introducir el código si es necesario.

Paso 4: Ejecución

Haz doble clic en server-manager.exe. Se abrirá una ventana de consola negra. Cuando veas el mensaje Listening on :8772, abre tu navegador y ve a:

http://localhost:8772

Login por defecto: Usuario: admin | Contraseña: servermanager (o la que pusiste en config.yml).

Uso y Características Avanzadas

Interfaz Web y Opciones

El Server Manager reemplaza la tediosa edición de server_cfg.ini y entry_list.ini por una interfaz gráfica moderna.

Quick Race

Configura y lanza una sesión rápida en segundos. Ideal para probar configuraciones o jugar con amigos de forma espontánea.

Custom Race

Control total sobre cada parámetro: clima, sesiones, combustible, neumáticos, etc. Guarda tus configuraciones como presets.

Championships

Sistema completo de campeonatos con gestión de puntos, equipos, clases y formularios de inscripción.

Race Weekends

Configura eventos secuenciales (ej: Clasificación el sábado, Carrera el domingo) que se conectan entre sí automáticamente.

Integración con Plugins (sTracker / KMR)

Server Manager facilita la instalación de plugins críticos:

Ve a la pestaña correspondiente en el panel web para configurar los puertos automáticamente.

Gestión de Contenido (Cars/Tracks)

El servidor necesita los archivos del contenido para enviarlo a los clientes.

Subida vía Web

Ve a la pestaña Content. Puedes arrastrar y soltar carpetas comprimidas (ZIP) o carpetas sueltas de pistas y coches.

Copia Manual (Método Rápido)

Si ya tienes Assetto Corsa instalado en tu PC de juego:

  1. Ve a C:\Archivos de Programa\Steam\steamapps\common\assettocorsa\content.
  2. Copia las carpetas cars y tracks a un USB.
  3. Pégalas en C:\AC-Server\server-install\content en el servidor.
💡 Permisos de Escritura

Asegúrate de que el usuario que ejecuta server-manager.exe tiene permisos de escritura en la carpeta de instalación y en la carpeta de contenido.

Mantenimiento y Actualización

Actualización del Server Manager

Sigue estos pasos para no perder tus datos:

  1. Haz una copia de seguridad de server_manager.db (tu base de datos) y config.yml.
  2. Descarga la nueva versión.
  3. Reemplaza el ejecutable server-manager.exe.
  4. Lee el CHANGELOG para ver si hay cambios necesarios en la config.
  5. Inicia el nuevo ejecutable.

Logs y Diagnóstico

Si el servidor falla, revisa la carpeta logs. El archivo server-manager.log mostrará errores de la aplicación, mientras que los logs de AC Server mostrarán errores de conexión.

Solución de Problemas Comunes

🔴 "Could not load track"

El servidor no encuentra la pista o está corrupta. Asegúrate de que la carpeta de la pista esté en content/tracks y tenga los archivos .kn5 y data.

🔴 "Session Closed" inmediato

Generalmente causado por puertos bloqueados. Verifica que el puerto UDP 9600 esté abierto en el firewall de Windows y en el router.

⚠️ Lag constante en el servidor

Revisa tu velocidad de subida (Upload Speed). Para 20 jugadores se recomiendan al menos 10Mbps de subida estable. Si usas WiFi, cambia a cable.

📖 Errores de Steam al descargar el servidor

Si el log muestra "No license" o errores de login:

  • Asegúrate de que la cuenta de Steam usada en config.yml es correcta.
  • Si usas Steam Guard, vigila la consola para introducir el código.
  • Verifica que la cuenta posee Assetto Corsa en la biblioteca (no es necesario instalarlo, pero sí tener la licencia).