Environment variables
Environment variables are set per project under Settings → Variables. They are available to the install and build commands and to the running application.
Names and values
- Names may contain letters, digits and underscores and must not start with a digit. Maximum 200 characters.
- Values may be up to 65,536 characters. Multi-line values, such as PEM keys, are fine.
- There is no limit on the number of variables.
Encrypted, and never shown again
Values are encrypted before they are stored and are never returned by the API or the dashboard. The variables list shows names and last-updated times only. If you need to check a value, set it again.
When changes take effect
Variables are packaged into a deployment when it is created. Adding, changing or deleting a variable does not touch the app that is currently running. Trigger a new deployment, from the dashboard, the CLI, or a push to the default branch, for the change to apply.
Build time and runtime
The same set of variables is present in both places:
- During the build, they are exported into the shell before the install and build commands run. Framework conventions apply, so a Next.js
NEXT_PUBLIC_variable is inlined into the client bundle at this point. - At runtime, they are injected into the container as ordinary environment variables.
Names to avoid
Vinssi does not reject any name, but a few collide with the platform:
PORTis always set to3000at runtime. A value you set is ignored.PATH,HOME,NPM_CONFIG_PREFIXandCOREPACK_HOMEare used by the build environment. Overriding them will break the install or build step.
Databases
The simplest option is a managed database. Add one under Settings → Database and Vinssi injects DATABASE_URL into every build and deployment itself; it appears in the variables list as a read-only row. Because a managed DATABASE_URL overrides a variable of the same name that you defined, delete your own DATABASE_URL once the managed one is running to avoid confusion. The page warns you while both exist.
To bring your own database instead, use a PostgreSQL or similar service that is reachable over the public internet, and set its connection string as DATABASE_URL or whatever your app expects. Connections from Vinssi come from changing addresses, so rely on TLS and a strong password rather than an IP allowlist. Most providers require TLS; include sslmode=require in a PostgreSQL URL if your client does not default to it.
Managing variables from the CLI
The CLI does not manage variables yet. Use the dashboard.
Locked while deletion is scheduled
Variables become read-only when a project is scheduled for deletion. Cancel the deletion to edit them.
Audit trail
Setting or deleting a variable is recorded in the project's Activity tab by name. Values are never written to the audit log.