Managed AddonsOverview

Managed Addons

Lizard runs three managed addons in your project: Managed Postgres, Managed Redis, and S3-compatible Managed Object Storage. lizard add postgres redis s3 creates all three in one command. Each addon exposes a fixed set of environment variables, such as DATABASE_URL, and your services read them through references such as ${{postgres.DATABASE_URL}}. Use them when an app needs data that outlives a deploy or a restart.

Provision an addon

lizard add postgres            # one addon
lizard add postgres redis s3   # several at once
lizard add --list              # show available types

Naming

The first addon of each type uses the type as its name, so ${{postgres.DATABASE_URL}} works without extra setup. Additional addons of the same type get a generated name like postgres-autumn-bear. A deleted addon keeps its name in the trash for 3 days, so a new addon added in that window gets a generated name; restore the old one or point references at the new name.

There’s no type-alias fallback: a reference must use the addon’s current name. Renaming an addon breaks references to the old name, so update them after a rename:

lizard service rename main-db --service postgres   # addons rename through the same command
lizard secrets set DATABASE_URL='${{main-db.DATABASE_URL}}' --service api

Consuming an addon

Reference an addon’s variables from any service. The reference resolves at deploy time, so the service picks up the addon’s current values on its next deploy:

lizard secrets set DATABASE_URL='${{postgres.DATABASE_URL}}' --service api
lizard redeploy --service api

Lizard also injects DATABASE_URL and REDIS_URL from every running Postgres and Redis addon into every service in the project, at the lowest precedence. An explicit reference overrides them and picks a specific addon. For services in the same project, prefer the private URL:

lizard secrets set DATABASE_URL='${{postgres.DATABASE_PRIVATE_URL}}' --service api

See Secret scoping.

Variables by type

AddonVariables
postgresDATABASE_URL, DATABASE_PRIVATE_URL, PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE, POSTGRES_USER, POSTGRES_DB, POSTGRES_PASSWORD
redisREDIS_URL, REDIS_PRIVATE_URL
s3S3_ENDPOINT, S3_DEFAULT_BUCKET, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_REGION

DATABASE_URL and REDIS_URL use the public endpoint. DATABASE_PRIVATE_URL and REDIS_PRIVATE_URL use <name>.lizard.internal on the private network and work only from services in the same project.

Dashboard browsers

Inspect and edit addon data in the dashboard. It has a SQL/table editor for Managed Postgres, a key browser for Managed Redis, and a bucket/object browser for Managed Object Storage.

Storage

Postgres and Redis data volumes are grow-only. Increase capacity with:

lizard scale --service postgres --storage 8192

Per-type guides

For help choosing data services and setting their variables, see make data and configuration explicit.

Updated