All checks were successful
Test Asgard Runner / test (push) Successful in 2s
Add deploy endpoint, DTO, NATS command publisher, and WebSocket bridge subscription to support the one-click server deployment feature via the companion agent. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
42 lines
1007 B
TypeScript
42 lines
1007 B
TypeScript
import { IsString, IsInt, Min, Max, MinLength } from 'class-validator';
|
|
import { ApiProperty } from '@nestjs/swagger';
|
|
|
|
export class DeployServerDto {
|
|
@ApiProperty({ example: 'My Rust Server', description: 'Server hostname' })
|
|
@IsString()
|
|
server_name: string;
|
|
|
|
@ApiProperty({ example: 100, description: 'Maximum player slots' })
|
|
@IsInt()
|
|
@Min(1)
|
|
@Max(500)
|
|
max_players: number;
|
|
|
|
@ApiProperty({ example: 4000, description: 'World size (1000-8000)' })
|
|
@IsInt()
|
|
@Min(1000)
|
|
@Max(8000)
|
|
world_size: number;
|
|
|
|
@ApiProperty({ example: 12345, description: 'Map seed' })
|
|
@IsInt()
|
|
seed: number;
|
|
|
|
@ApiProperty({ example: 28015, description: 'Server game port' })
|
|
@IsInt()
|
|
@Min(1024)
|
|
@Max(65535)
|
|
server_port: number;
|
|
|
|
@ApiProperty({ example: 28016, description: 'RCON port' })
|
|
@IsInt()
|
|
@Min(1024)
|
|
@Max(65535)
|
|
rcon_port: number;
|
|
|
|
@ApiProperty({ example: 'changeme', description: 'RCON password (min 6 chars)' })
|
|
@IsString()
|
|
@MinLength(6)
|
|
rcon_password: string;
|
|
}
|