Skip to main content

App Configuration

CapRover stores app settings separately from the Captain Definition. The app model includes:

AreaSaved fieldsPurpose
IdentityprojectId, description, tagsOrganization and labels.
DeploymentdeployedVersion, versions, captainDefinitionRelativeFilePathVersion history and definition path.
HTTPnotExposeAsWebApp, containerHttpPort, forceSsl, hasDefaultSubDomainSsl, websocketSupport, customDomain, redirectDomain, httpAuth, customNginxConfigRouting and access.
PlacementhasPersistentData, nodeId, instanceCount, networksPersistence and Swarm placement.
RuntimeenvVars, ports, volumes, serviceUpdateOverride, preDeployFunctionEnvironment, published ports, mounts, and service customization.
  • An environment variable is a {key,value} pair.
  • A published port has hostPort, containerPort, optional protocol (tcp or udp), and optional publishMode (ingress or host).
  • A persistent directory contains containerPath, optional hostPath or volumeName, and optional mode.
  • Configure these through the dashboard or API instead of hand-editing stored JSON.

Defaults and Limits​

Selected defaults from CaptainConstants.ts and EnvVars.ts:

SettingDefault
CapRover state directory/captain; backed-up data is /captain/data
Host HTTP, HTTPS, admin ports80, 443, 3000
Dashboard subdomaincaptain
API versionv2
Default Docker log size512m
Build log lines and app log tail50 and 500 respectively
Maximum saved deployment versions50
Docker build version selector2
Scheduled image-cleanup retention when disabled1

These are source defaults, not guarantees for every installation; values can be overridden and may change by release. Check your instance's version and the matching source before automating against them.

Legacy Compatibility​

  • CapRover has historical names and links from its CaptainDuckDuck predecessor.

  • Existing /docs/* paths remain live during this preview; see the draft URL map for proposed old-to-new destinations.

  • Redirects belong to the later cutover review.

  • The Captain Definition parser accepts schemaVersion: 2.

  • Older definitions need migration; see CaptainDuckDuck migration.

  • The app model retains isLegacyAppName for apps created before CapRover 1.15.0, which affects service-name compatibility.

  • Check internal networking before changing hard-coded internal hostnames.

Do not remove existing URLs or legacy service aliases as part of preview publishing. Test each historic link and deployed application at the eventual cutover.