Table of Contents

Class BuildSettings

Namespace
Ando.Server.Configuration
Assembly
Ando.Server.dll

Configuration for build execution.

public class BuildSettings
Inheritance
BuildSettings
Inherited Members

Fields

SectionName

Configuration section name in appsettings.json.

public const string SectionName = "Build"

Field Value

string

Properties

AcknowledgeRootDockerRisk

Acknowledges the security risk of running Docker as root. When true, bypasses the rootless Docker validation check. Use this on platforms like TrueNAS SCALE where Docker runs as root and cannot be configured for rootless mode. WARNING: Running Docker as root allows container escapes to gain root access to the host system.

public bool AcknowledgeRootDockerRisk { get; set; }

Property Value

bool

BaseUrl

Base URL of the server for generating absolute URLs (e.g., for GitHub commit statuses). Example: https://demo.andobuild.com

public string? BaseUrl { get; set; }

Property Value

string

DefaultDockerImage

Default Docker image for builds if not specified per-project.

public string DefaultDockerImage { get; set; }

Property Value

string

DefaultTimeoutMinutes

Default build timeout in minutes if not specified per-project.

public int DefaultTimeoutMinutes { get; set; }

Property Value

int

DockerSocketPath

Path to the Docker socket on the HOST filesystem. This is used when creating build containers that need Docker-in-Docker support. For standard Docker: /var/run/docker.sock For rootless Docker: /var/run/user/{UID}/docker.sock

public string DockerSocketPath { get; set; }

Property Value

string

MaxTimeoutMinutes

Maximum allowed timeout in minutes (prevents abuse).

public int MaxTimeoutMinutes { get; set; }

Property Value

int

ReposPath

Path to repos directory on the HOST filesystem. This path is used for Docker volume mounts when creating build containers. Example: /opt/ando/data/repos

public string ReposPath { get; set; }

Property Value

string

ReposPathInContainer

Path to repos directory inside the SERVER container (optional). When running the server in a container, this is where the ReposPath is mounted internally. If not set, ReposPath is used for both purposes (assumes matching paths). Example: /data/repos (when ReposPath=/opt/ando/data/repos is mounted at /data/repos)

public string? ReposPathInContainer { get; set; }

Property Value

string

WorkerCount

Number of Hangfire worker threads for build execution. Each worker can run one build at a time.

public int WorkerCount { get; set; }

Property Value

int

Methods

GetReposPathForServer()

Gets the path to use for git operations (clone, checkout) inside the server. Returns ReposPathInContainer if set, otherwise falls back to ReposPath.

public string GetReposPathForServer()

Returns

string