ASTRODOCK Features Sign-inAccounts and passkeys, no password in your app Databases & storageIts own Postgres and bucket, or yours Deploys & runtimesPush, upload, or let an agent do it Secrets & configNames in the repo, values on the platform Domains & HTTPSSubdomains and certificates, handled Monitoring & backupsLogs, alerts and nightly dumps For agents Self-hosting Docs Install

Features · Databases & storage

Every app gets
its own.

A real Postgres database and an S3-compatible bucket, created for the app and handed over as credentials. Or your own, with nothing in the app changing.

your machine oncall postgres drop storage status needs neither your Neon, RDS, R2 same variable

Three choices, per app

01

Internal

Astrodock creates the database and the bucket, with their own credentials, and backs them up along with everything else.

02

External

Point at a managed service instead. You supply the credentials; the platform passes them through untouched.

03

None

Plenty of apps need neither. Nothing is provisioned, and nothing is billed to your disk.

The part that matters later

Outgrowing it isn't
a migration project.

Internal and external hand the app the same variable name. The code reads a connection string; it has no idea whether the database is on the same box or in another company's data centre.

So the day one app needs a managed Postgres with replicas, that's a settings change and a redeploy — not a rewrite, and not a reason to have picked differently at the start.

Bringing your own database →
app.json
{
  "database": { "mode": "internal" },
  "storage":  { "mode": "none" }
}

# the app reads, either way:
ASTRODOCK_DATABASE_URL

Give it a machine
and ten minutes.