Auto-Provisioning
Makofy automatically provisions infrastructure when it detects your app needs it. No setup, no configuration — just deploy.
How it works
- During the build, Makofy scans your source code for environment variable references
- If a variable like
DATABASE_URLis detected but not configured, Makofy provisions the resource - The connection string or secret is automatically set as an encrypted environment variable
- On the next deploy, your app has everything it needs
Database (PostgreSQL)
When DATABASE_URL is detected in your code:
- An isolated database is created on the shared PostgreSQL instance
- A unique user is created with a random password
- The user only has access to their own database
- The connection string is set as
DATABASE_URL
Format: postgres://app_myapp:randompass@postgres.makofy-system:5432/app_myapp?sslmode=disable
info
Each app gets its own database and user. Databases are not shared between apps, even within the same tenant.
Redis
When REDIS_URL is detected:
- Your app is connected to the shared Redis instance
- Connection string:
redis://redis.makofy-system.svc.cluster.local:6379/0
Secrets
These variables are auto-generated with a 48-character random hex string:
JWT_SECRETSESSION_SECRETENCRYPTION_KEYENCRYPTION_KEY_V1/ENCRYPTION_KEY_V2FILE_ENCRYPTION_KEYBACKUP_ENCRYPTION_KEYDOCUMENT_TOKEN_SECRETEVAL_SECRET/EVAL_SESSION_SECRETPASSWORD_PEPPER
NODE_ENV
When NODE_ENV is detected but not configured, it's automatically set to production.
Precedence
Auto-provisioning never overwrites manually configured values. If you've already set DATABASE_URL, Makofy won't touch it.
The check is:
- Is the variable detected in the source code?
- Is the variable already configured as an env var?
- If detected AND not configured → auto-provision