High Availability Postgres on Fly
This is a ready to go HA Postgres app that runs on Fly.
Prepare your app
flyctl init
Init gets you going with a Fly application and generates a config file.
Set secrets
This app requires SU_PASSWORD
and REPL_PASSWORD
environment variables.
SU_PASSWORD
is the PostgreSQL super user password, the username is flypgadmin
. You can use this to administer the database once it's running. You should create less privileged users for your applications to use.
REPL_PASSWORD
is used to replicate between instances.
flyctl secrets set SU_PASSWORD=<PASSWORD> REPL_PASSWORD=<PASSWORD>
Deploy one instance
flyctl volumes create pg_data --region ord --size 10
flyctl deploy
Add a replica
flyctl volumes create pg_data --region ord --size 10
flyctl scale count 2
Add a replica in another region
flyctl volumes create pg_data --region syd --size 10
flyctl scale count 2