Environment Variables
FluxNow injects a set of environment variables into your container at deploy time. There are two kinds:
- Service credentials — when you provision Postgres, Redis, or S3, their connection
details are injected automatically. You never look them up, create a database, or
paste a connection string — you just read
process.env.*. - Your own values — the env vars and secrets you declare in
fluxnow.yaml.
Provisioned service credentials (auto-injected)
Section titled “Provisioned service credentials (auto-injected)”Enable a service in fluxnow.yaml (db / redis / s3) and its credentials appear in
your container on the next deploy. Do not set any of these yourself — if you hardcode
them you’ll fight the values FluxNow injects.
Postgres — db.enabled (on by default)
Section titled “Postgres — db.enabled (on by default)”| Variable | For |
|---|---|
DATABASE_URL | Full connection string — most clients (Prisma, Drizzle, pg, SQLAlchemy) |
PGHOST · PGPORT · PGUSER · PGPASSWORD · PGDATABASE · PGSSLMODE | libpq discrete form — psql, pgx, node-postgres |
POSTGRES_HOST · POSTGRES_PORT · POSTGRES_USER · POSTGRES_PASSWORD · POSTGRES_DB | NestJS / TypeORM |
POSTGRES_URL · DIRECT_URL · JDBC_URL · JDBC_DATABASE_URL | Vercel · Prisma-direct · JDBC / Spring |
Redis — redis.enabled
Section titled “Redis — redis.enabled”| Variable | For |
|---|---|
REDIS_URL | Url-form clients (ioredis, node-redis, BullMQ) — most apps just use this |
REDIS_HOST · REDIS_PORT · REDIS_PASSWORD · REDIS_TLS · REDIS_USERNAME | Discrete-form clients (BullMQ, Laravel) |
KV_URL · SPRING_DATA_REDIS_URL | Vercel KV / Upstash · Spring Boot 3.x |
S3 storage — s3.enabled
Section titled “S3 storage — s3.enabled”| Variable | For |
|---|---|
S3_ENDPOINT / AWS_ENDPOINT_URL_S3 | S3 API endpoint |
S3_ACCESS_KEY_ID / AWS_ACCESS_KEY_ID | Access key |
S3_SECRET_ACCESS_KEY / AWS_SECRET_ACCESS_KEY | Secret key |
S3_REGION / AWS_REGION | Region |
S3_BUCKET / AWS_S3_BUCKET / BUCKET_NAME | Bucket name |
→ S3 docs
Point any standard client at these and it works with no extra wiring:
import { Pool } from "pg";import Redis from "ioredis";
const db = new Pool({ connectionString: process.env.DATABASE_URL });const redis = new Redis(process.env.REDIS_URL);Your own env vars and secrets
Section titled “Your own env vars and secrets”Declare non-sensitive values under spec.env and sensitive ones under spec.secrets in
fluxnow.yaml:
spec: env: - name: FEATURE_X value: "true" secrets: - name: DOTENV_PRIVATE_KEY # the env var your app reads key: dotenvx/private-key # reference to the value in the secrets storeSee Secrets & Environment Variables for the full guide — env-vars vs secrets, how the secrets store works, and adding a single secret.
Where to see them
Section titled “Where to see them”These variables live in your running container’s environment — read them with
process.env.X (Node), os.environ (Python), System.getenv (JVM), etc. A dashboard to
browse them is on the roadmap; today fluxnow.yaml is the source of truth for the values
you declare, and service credentials are managed for you.