5050cloud

Service settings

Every setting a service has, with its default and the Railway setting it matches.

Settings live in the service panel under Settings. Edits are staged until you press Deploy. A field set by a config file (railway.json, 5050.yaml) shows a file icon and cannot be edited in the console; see Config as code.

The JSON names below are the ones the API, 5050 environment edit --service-config and 5050.yaml use.

FieldTypeDefault and notesRailway
namestring1-32 chars, [a-zA-Z0-9-_ ], unique per environmentService name
iconstringicon key or URL path under /icons/Service icon
kindServiceKindNo equivalent (web, worker or cron is inferred on Railway)
source.typestring"github" | "image" | "upload" | "empty"Source (GitHub repo or Docker image)
source.repostringgithub "owner/name" (GitHub App) or https URL of a public repoSource Repo
source.branchstringdefault: repo default branchBranch connected to production
source.rootDirstringdefault "/"Root Directory
source.autoDeploybooldefault true (webhook with an App, polling for public repos)Automatic deployments on push
source.waitForCiboolnot in v0.1; refused with a sentenceWait for CI (not in v0.1)
source.imagestringimage "nginx:1.27", "ghcr.io/o/r:tag"Source Image
source.registryCredentialstringid of a stored credentialPrivate registry credentials
build.builderstringBuilder: "auto" (default: Dockerfile if present, else Railpack) | "railpack" | "dockerfile" | "nixpacks" (built with Railpack, with a log line).Builder (Railpack, Nixpacks, Dockerfile)
build.dockerfilePathstringrelative to rootDir; default "Dockerfile"Dockerfile Path (RAILWAY_DOCKERFILE_PATH)
build.buildCommandstringCustom Build Command
build.railpackVersionstringRailpackVersion is one of the pinned versions (current and the two before); empty = current.Railpack version
build.nixpacksCompatboolNixpacksCompat maps NIXPACKS_* variables and nixpacks.toml hints to Railpack. Default true; set false to ignore them.No equivalent (Nixpacks hints mapped to Railpack)
build.watchPaths[]stringgitignore-style, relative to repo rootWatch Paths
build.noCacheboolNO_CACHE variable
build.timeoutMinintdefault: the install's build timeout (30)No equivalent
build.configPathstringConfigPath is the config-as-code file ("railway.json", "infra/5050.yaml"); empty = look for 5050.yaml, 5050.json, railway.json, railway.toml in rootDir.Config-as-code file path
deploy.startCommandstringCustom Start Command
deploy.preDeployCommandstringPre-deploy Command
deploy.preDeployTimeoutSecintdefault 300, 1..3600No equivalent
deploy.cronSchedulestring5-field crontab or @hourly/@daily/@weekly/@monthlyCron Schedule
deploy.cronTimezonestringIANA, default "UTC"No equivalent (Railway cron runs in UTC)
deploy.cronOverlapstring"skip" (default) | "queue"No equivalent
deploy.cronTimeoutSecint0 = noneNo equivalent
deploy.healthcheckPathstringempty = TCP check on the target portHealthcheck Path
deploy.healthcheckTimeoutSecintdefault 300Healthcheck Timeout (RAILWAY_HEALTHCHECK_TIMEOUT_SEC)
deploy.restartPolicystring"on_failure" (default) | "always" | "never"Restart Policy
deploy.restartMaxRetriesintdefault 10Restart Policy max retries
deploy.overlapSecintkeep old serving after cutover, default 0RAILWAY_DEPLOYMENT_OVERLAP_SECONDS
deploy.drainingSecintSIGTERM to SIGKILL, default 30RAILWAY_DEPLOYMENT_DRAINING_SECONDS
deploy.replicasintdefault 1; must be 1 with a volumeReplicas
deploy.maxSurgestringMaxSurge is how many new replicas start per wave: a number ("1", default) or a percentage of Replicas ("25%").No equivalent
deploy.singletonboolSingleton replicas are never rescheduled automatically while their host is offline. Default: on for workers, off for web services.No equivalent
deploy.processesstringProcesses per replica. "auto" = one per vCPU of the replica's CPU limit (or of the host when unlimited), 1..32. For Node start commands of the form "node <file>" the agent wraps the process with cluster.cjs; for every runtime it sets WEB_CONCURRENCY and FIFTY_PROCESSES. Default "1".No equivalent
deploy.cpuLimitfloat64vCPU, 0 = unlimitedResource limits: vCPU
deploy.memoryLimitMbint0 = unlimitedResource limits: memory
deploy.memoryReservationMbintMemoryReservationMB is what placement reserves per replica. Default: the memory limit when set, else 256 (database templates 512).No equivalent
deploy.runAsUserstring"0", "1000:1000"RAILWAY_RUN_UID
deploy.shmSizeMbintdefault 64RAILWAY_SHM_SIZE_BYTES
deploy.placement.roles[]stringdefault ["app"]; database templates use ["data"]Regions (replicas per region)
deploy.placement.hosts[]stringpin to host ids; overrides rolesNo equivalent
networking.portinttarget port; default from PORT detection, else 8080 injected as PORTTarget port of a domain
networking.privateNamestringdefault slug of service name; <privateName>.internalPrivate Networking name (name.railway.internal)
networking.allowMetadataboolAllowMetadata lets the service reach 169.254.169.254 and the mesh (Admin only, audited). Default false.No equivalent
networking.publicAccessboolPublicAccess creates a TCP proxy for database templates.TCP Proxy for databases
templatestringTemplate marks a service created from a template ("postgres", "redis", ...).No equivalent
templateVersionstringTemplateVersion is the chosen major for database templates ("17").No equivalent

Next steps

View as Markdown · Edit this page