Environments
Environments are at the heart of how you manage and share configuration in Ghostable. Each project can have as many environments as you need. While “production” and “staging” are common defaults, you’re free to create environments for feature testing, client-specific setups, or anything else your workflow requires. Environments store your.env variables and control how they’re organized, accessed, and shared.
You can safely push, pull, or request environment data using the Ghostable CLI — all tied to a
specific environment within a project.
Think of environments as named contexts for your configuration — flexible, secure, and built for collaboration.
Creating Environments
To create a new environment, run theenv:init command:
- Select an environment type (e.g., Production, Staging)
- Select a base environment or choose
Standalone - If
--nameisn’t provided, choose a suggested name or enter a custom slug-formatted name
Pushing Variables
To upload your local.env file to Ghostable, use the push command:
--environment isn’t provided). The CLI
will ask for confirmation before overwriting the server’s environment. If the environment doesn’t
exist locally, it warns and offers to create it. This securely uploads your .env contents to
Ghostable so they can be shared or backed up.
Note: Ghostable only pushes keys that exist in your local .env file. It does not overwrite
remote keys unless they are present in your file.
Pulling Variables
To fetch a remote environment and write it to your local.env file, use the pull command:
--environment isn’t provided) and to
choose a file format (with a default option). The CLI confirms before overwriting any existing file.
It then downloads the latest variables and updates your local .env file.
Important: Your local .env file will be overwritten. If you have changes you want to
preserve, commit or back them up before pulling.
Comparing Variables
To see differences between your local variables and those stored in Ghostable, run:--environment isn’t provided, you’ll select which environment to diff. The output lists
variables as added, updated, or removed.
Deploying Variables
Useenv:deploy to fetch variables for deployment and load them directly into memory at runtime:
.env file is created. The variables are injected into the command you pass with --exec. This
command requires GHOSTABLE_CI_TOKEN. Add --plan to preview variable names without executing.
Validating Variables
To validate your local environment file against Ghostable, run:--environment isn’t provided, you’ll select which environment to validate. Any validation
errors are listed in the output.