Apps

Environment Variables

Manage build-time and runtime environment variables for a Skytells app — add, edit, and scope variables to control how your app builds and runs.

The Environment page lets you manage all environment variables for a single app. Variables defined here are injected at both build time (available during the build command) and runtime (available to the running container).

Variable scopes

ScopeWhen it applies
Build-timeInjected during the build step (e.g. npm run build). Use for things like NEXT_PUBLIC_* variables in Next.js or API endpoints embedded at compile time.
RuntimeInjected into the running container process. Use for secrets, database URLs, API keys, and any other configuration the app reads at startup or request time.

Most variables apply to both scopes unless marked otherwise.

Managing variables

Add a variable

Open the Environment Page

Open Environment from the app sidebar.

Add a Variable

Select Add Variable (or the + button).

Enter the Key and Value

Enter the Key name (e.g. DATABASE_URL) and the Value.

Save the Variable

Select Save. A redeploy is required for runtime variables to take effect in the running container.

Edit a variable

Select the value field of any existing variable, update the value, and save.

Delete a variable

Select the trash icon next to the variable row, confirm the deletion, and save. Deleted variables take effect on the next deploy.

Sensitive values

Skytells masks variable values after saving. Once a value is saved, it is not displayed in plain text — only a bullet placeholder is shown. You can overwrite the value at any time but you cannot read it back from the Console.

Do not commit secrets to your Git repository. Use environment variables for all credentials, API keys, database URLs, and tokens. Anyone with access to your repository history could otherwise read them.

Project-level vs app-level variables

Variables defined on this page apply only to this app. If you have a variable that should be shared across all apps in the project (e.g. a shared REDIS_URL or a common API base URL), define it at the Project → Environment level instead.

App-level variables take precedence over project-level variables when the same key is defined in both places.

Variables injected automatically

Skytells automatically injects certain variables into every app container:

VariableValue
PORTThe port Skytells expects your app to listen on (default: 3000).
NODE_ENVSet to production for production deployments.
DATABASE_URLAuto-injected when a database in the same project is linked to this app.

When you create a database in the same project, its Internal Connection URL is available as an environment variable (typically DATABASE_URL). Check the database Overview for the exact variable name.

Example: .env to Console

If you have a local .env file, translate each KEY=value line to a Console variable:

# .env
DATABASE_URL=postgresql://user:pass@host:5432/db
REDIS_URL=redis://localhost:6379
API_SECRET=my-secret-token
NEXT_PUBLIC_API_URL=https://api.example.com

Add each line as a separate variable in the Console. Do not add the actual production secrets to .env.production in your repository.

After updating variables

  • Changes to runtime variables require a Redeploy to take effect in the running container. Select Redeploy from the App Overview or push a new commit.
  • Changes to build-time variables require a full re-build. Select Redeploy from the App Overview.

How is this guide?

On this page