Environment Variables
This page covers the runtime knobs of the CLI. Looking to customize the build (Vite, Lingui)? See customization.
Environment variables
Section titled “Environment variables”| Variable | Purpose |
|---|---|
CROWDIN_PERSONAL_TOKEN | Authenticate with a personal access token instead of login - useful in CI |
CROWDIN_BASE_URL | Crowdin API base URL, e.g. https://<org>.api.crowdin.com - set it when using a personal token with Crowdin Enterprise |
PORT | Port dev starts from (8080 when unset) - if it is taken, dev moves to the next free one, while --port is exact |
CROWDIN_DEV_CORS_ORIGIN | Extra origins allowed to fetch from the dev server |
CROWDIN_TEMPLATES_REPO | GitHub owner/name repository create fetches starter templates from (default crowdin-community/serverless-apps-starter-kit) - useful for forks |
CROWDIN_TEMPLATES_REF | Branch or tag of the templates repository (default main) |
login detects your Crowdin Enterprise organization automatically - no extra configuration needed.
The app’s .env file
Section titled “The app’s .env file”CROWDIN_APP_ID identifies the app the folder is linked to. It lives in the app’s .env file, where create and link write it - the CLI reads it from that file only, so setting it as a shell or CI environment variable has no effect.
.env is gitignored in the starter templates, so it does not travel with the repository: teammates cloning the app (and CI checkouts) need to run crowdin-serverless-apps login once before dev or publish work. When a command needs the link and .env has none, the CLI looks for serverless apps you installed yourself whose name equals name in manifest.json exactly. If exactly one matches, it writes that app to .env and carries on. Otherwise, when none matches (for example after renaming the app locally without manifest push, or when a teammate installed the app) or several do, nothing changes: an interactive terminal offers the full list of your apps, and a non-interactive run fails until you run link.