Skip to main content
Every app has its own environment variables. Symplax passes them to your container when it starts, and to your build when the build needs them.

Add and edit variables

1

Open the Variables tab

Open your app and go to the Variables tab.
2

Add your variables

Click Add Variable and fill in a name and value. To add many at once, paste a block of KEY=VALUE lines into a field and Symplax splits them into rows.
3

Save and redeploy

Click Save & Redeploy. Changes reach your app on its next deploy, so a saved variable is not live until the redeploy finishes.
You can also add variables in the last step of Deploy App, before the first deploy. Owners and admins can download all of an app’s variables as a .env file from the same tab.
Setting PORT also tells Symplax which port to route traffic to. See Port and health check.

Runtime and build-time variables

Server code reads its configuration when it starts. Frontend frameworks are different: Next.js, Vite and the rest read some variables during npm run build and compile the values into the JavaScript they ship. A variable that only exists at runtime is missing from that bundle, and the build often fails while prerendering. Symplax handles both:
Variables whose names start with one of these prefixes are passed to docker build as build arguments, and set as ENV after every FROM in your Dockerfile. They show a Build badge in the Variables tab.These values end up in your image and in the JavaScript sent to every visitor. Never put a secret behind one of these prefixes.
If your build connects to a Symplax database on the same server, the internal hostname does not resolve on the build machine. Symplax points the build at the database’s public address only when you have already turned on public access for it. It never opens a database for a build.

Linked databases

When you link a managed database to an app, Symplax adds its connection string for you: DATABASE_URL for PostgreSQL, MYSQL_URL for MySQL and MariaDB, MONGODB_URL for MongoDB, REDIS_URL for Redis and Valkey, and CLICKHOUSE_URL for ClickHouse. Variables that Symplax manages, such as these, are locked in the Variables tab. Redeploy the app to apply a new link. See Databases.

Encryption

Values are encrypted with AES-256-GCM before they are stored, and decrypted only when they are sent to a build or to your server, or shown to someone allowed to see them.

Who can see values

On a team, what a person sees depends on their role. See Team roles. In a personal workspace, you are the owner. A developer reveals a value by clicking the eye icon beside it. Every reveal is recorded in an audit log with who revealed it, the variable name and the app, never the value, before the value is returned. If the log entry cannot be written, the reveal is refused. Reveals are capped at 30 per person every 10 minutes. Developers can still add and change variables. A masked value that they leave untouched is saved unchanged, so editing one variable does not overwrite the others.
API keys need the secrets:read scope to read variable values. See API keys.