Configuration

Configure runtime values, app names, and environment variable names before and after deployment.

Environment variables#

Use environment variables for runtime configuration such as database URLs, API keys, feature flags, and service endpoints.

Open your app in the dashboard and go to App → Settings → Environment variables. Saving variables updates the desired app configuration immediately. For running apps, Shiprr then starts a deploy so the new values can be applied to live replicas.

Common examples#

DATABASE_URL=postgres://...
REDIS_URL=redis://...
NODE_ENV=production
FEATURE_SIGNUP_V2=true

Paste env blocks#

The dashboard can turn a pasted multi-line .env block into separate environment variable rows. Paste into any key or value field in the Environment Variables editor.

PUBLIC_API_BASE_URL=https://api.example.com/v1
PUBLIC_SITE_URL=https://example.com
NODE_ENV=production
FEATURE_SIGNUP_V2=true
  • Blank lines and lines starting with # are skipped.
  • Lines may start with export.
  • Each parsed line must use NAME=value.
  • Values may contain additional = characters.
  • Matching single quotes, double quotes, or backticks around the value are removed.
  • Single-line paste stays normal so ordinary editing is not interrupted.

App names#

App names are globally unique and become the left side of the default Shiprr hostname, such as my-app.shiprr.dev.

These rules follow DNS hostname-label constraints: letters, digits, and hyphens, with no leading or trailing hyphen and a maximum of 63 characters. Shiprr also requires lowercase and at least 3 characters.

  • Use 3-63 characters.
  • Use lowercase letters, numbers, and hyphens.
  • Start and end with a letter or number.
  • Do not use spaces, uppercase letters, dots, underscores, or symbols.

Good app names

  • api
  • web-2
  • my-app
  • backend-01

Bad app names

  • ab
  • -api
  • api-
  • MyApp
  • my_app
  • my.app
  • my app
  • app@prod

Environment variable names#

Environment variable names should be portable across common shells, build tools, and runtimes.

  • Start with a letter or underscore.
  • After the first character, use letters, numbers, or underscores.
  • Use at most 128 bytes for the name.
  • Do not use hyphens, dots, spaces, percent signs, or other symbols.

Good variable names

  • DATABASE_URL
  • REDIS_URL
  • NODE_ENV
  • FEATURE_SIGNUP_V2
  • _INTERNAL_TOKEN

Bad variable names

  • DATABASE-URL
  • DATABASE.URL
  • 1PASSWORD
  • MY VAR
  • API%KEY
  • (empty)

Environment variable limits#

  • Up to 200 environment variables per app.
  • Each value can be up to 32 KiB.
  • The total environment variable payload can be up to 256 KiB.
  • Values cannot contain the NUL byte, written as \0.

The NUL byte is byte value zero. It is not normal text and can terminate or truncate strings in low-level systems, so Shiprr rejects it.

Best practices#

  • Keep secrets out of Git — Store them in Shiprr instead of committing them to the repo.
  • Use clear names — Prefer names operators can understand during deploy and incident response.
  • Review required values before deploy — Missing variables are a common cause of startup failures.
  • Validate on app startup — Fail fast if required config is missing or malformed.