> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fly.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Fly Postgres (Unmanaged)

<Warning>
  **These pages are archived.** Fly Postgres (unmanaged) is no longer maintained, and Fly.io Support is not able to provide support or guidance for it. We now offer [Fly.io Managed Postgres](/postgres), our fully-managed database service that handles all aspects of running production PostgreSQL databases.

  The pages below are kept for reference. They are no longer listed in the navigation or indexed by search engines, and this page is the way in.
</Warning>

<img src="https://mintcdn.com/fly-io/izaS1l2UMuz6sm1H/images/postgres.png?fit=max&auto=format&n=izaS1l2UMuz6sm1H&q=85&s=63894c11cefe742e88bc5d2e0a99619e" alt="Illustration by Annie Ruygt of a balloon disguised as an elephant" width="1200" height="1040" data-path="images/postgres.png" />

[Postgres](https://www.postgresql.org/), officially PostgreSQL, is a powerful open source object relational database system that's used by many popular web frameworks to persist application data.

Fly Postgres (unmanaged) is a Fly app with flyctl sugar on top to help you bootstrap and manage a database cluster for your apps. It comes with most commonly used functionality (replication, failover, metrics, monitoring and daily snapshots).

When you create a Fly Postgres cluster, you're offered several preset configurations. The "High Availability" options are three-node clusters. In case of a node failure, a HA Fly Postgres cluster will automatically take the bad actor out of the picture and, if necessary, fail over leadership to the healthy node.

Flyctl also offers a single-instance "Development" config. If you choose this option and the hardware it's running on has network problems or the SSD fails, your database will go down. In the latter case, you will lose any data accumulated since the last snapshot. Fly Postgres is designed so that you can turn a single-node cluster into a high-availability one just by adding a second instance in the same region.

In the single-instance "Development" config, you'll also be given the option to activate "automatic scale to zero". It's not magic: it's just [how our apps work](/launch/scale-count#scale-to-zero). If you have an app that connects to your database, make sure that [it also scales to zero](/launch/scale-count#scale-to-zero) (otherwise the connection remaining open will prevent it from "going to sleep").

You can also add read-only replicas in other regions and take advantage of the Fly.io platform's proxy features to build a [Globally Distributed Postgres cluster](/unmanaged-postgres/advanced-guides/high-availability-and-global-replication).

The Fly Postgres app is fully open source. Just fork [fly-apps/postgres-flex](https://github.com/fly-apps/postgres-flex) and add whatever meets your needs. You can even update an existing cluster with your new image using `fly deploy --image`. One caveat is that once you fork, you won't be able to use `fly postgres` commands to administer your app.

## Archived pages

### Getting started

* [Getting Started](/unmanaged-postgres/getting-started)
* [Create a Fly Postgres Cluster](/unmanaged-postgres/getting-started/create-pg-cluster)
* [Enable TimescaleDB](/unmanaged-postgres/getting-started/enabling-timescale)
* [Migrate a Postgres Database from Heroku](/unmanaged-postgres/getting-started/migrate-from-heroku)
* [You've deployed Fly Postgres. Now what?](/reference/postgres-whats-next)

### Connecting

* [Connecting to Fly Postgres](/unmanaged-postgres/connecting)
* [Connect With flyctl](/unmanaged-postgres/connecting/connecting-with-flyctl)
* [Connect From a Fly App](/unmanaged-postgres/connecting/connecting-internal)
* [External Connections](/unmanaged-postgres/connecting/connecting-external)
* [App Connection Examples](/unmanaged-postgres/connecting/app-connection-examples)

### Managing

* [Managing Fly Postgres](/unmanaged-postgres/managing)
* [Attach or Detach a Fly App](/unmanaged-postgres/managing/attach-detach)
* [Backup, Restores, & Snapshots](/unmanaged-postgres/managing/backup-and-restore)
* [Check Provisioned Resources](/unmanaged-postgres/managing/cluster-resources)
* [Postgres Configuration Tuning](/unmanaged-postgres/managing/configuration-tuning)
* [Delete a Postgres Cluster](/unmanaged-postgres/managing/deleting)
* [Fork a volume from a Postgres app](/unmanaged-postgres/managing/forking)
* [Horizontal Scaling](/unmanaged-postgres/managing/horizontal-scaling)
* [Monitor a Postgres App](/unmanaged-postgres/managing/monitoring)
* [Scale to zero for Postgres Development projects](/unmanaged-postgres/managing/scale-to-zero)
* [Scale Postgres VMs](/unmanaged-postgres/managing/scaling)
* [Upgrade Postgres](/unmanaged-postgres/managing/upgrades)
* [Users & Roles](/unmanaged-postgres/managing/users-and-roles)

### Advanced guides

* [Advanced guides](/unmanaged-postgres/advanced-guides)
* [High Availability & Global Replication](/unmanaged-postgres/advanced-guides/high-availability-and-global-replication)
