PostgreSQL hosting where Voroa runs the database and you just use it. Create it beside the service you deploy from GitHub, and scale as your app grows.
PostgreSQL hosting is a PostgreSQL database that runs on someone else's servers and is reached over the internet with a connection string. Managed means Voroa does the work a server would ask of you: it installs PostgreSQL, starts it, keeps it running, takes the backups and applies the storage limit.
Hosting Postgres yourself on a server costs less on paper, but you own the install, the upgrades, the backups and the 2 a.m. restart. Here you pick a size, get a connection string, and keep full SQL access to a real PostgreSQL database in Mumbai.
Who does what
Install and start PostgreSQLVoroa
Backups and storage limitVoroa
Schema, queries, dataYou
Full SQL accessYes
Every plan has everything you need and more
Nightly backups on paid plans (off by default, one switch to turn on)
A SQL console in your dashboard
Five extensions, one click each
PostgreSQL 18, 17 or 16
Reached by a hostname, never a raw address
Connection details in one click
One bill, in rupees, with a GST invoice
Reachable from your services, and from the internet unless you restrict it to your own IP addresses
Runs in Mumbai (IN)
What people run on it
One engine covers the jobs most stacks split across three vendors.
An application database
The database behind the service you deploy from GitHub - users, orders, sessions, whatever your app writes. It sits on the same platform as the service that uses it, so there is no second vendor and no network path for you to build between them.
Search your own data
Trigram search and PostgreSQL's own full-text search handle "find me the thing that nearly matches" without a second search service to run, pay for and keep in sync.
Embeddings and similarity
pgvector on a paid size stores embeddings next to the rows they describe, so a retrieval query is a SQL query rather than a round trip to another vendor. Our guide to Postgres as a vector database shows when that is enough.
Reporting on live data
Window functions, CTEs and materialised views mean the reporting query runs where the data already is, instead of in a pipeline you have to build first.
Real PostgreSQL, not a subset
You get the actual engine - PostgreSQL 18 by default, with 17 and 16 on the free size - so everything Postgres does, it does here.
ACID transactions
Real transactions with real isolation. A write either lands completely or not at all, which is the reason to pick this engine in the first place.
JSON and columns together
JSONB columns beside typed ones, indexed and queried in the same statement, so a document does not force you into a second database.
The full index family
B-tree, GIN, GiST, BRIN and hash - including GIN indexes over JSONB and trigrams, which is what makes the search above fast rather than merely possible.
Full-text search built in
tsvector, ranking and highlighting are part of the engine, so search that understands words - not just substrings - needs no extra service.
The app that uses it
Deploy the code that talks to your database on the same account - an API or site as a web service, a queue consumer as a background worker - and connect it by adding one DATABASE_URL variable. Your database and your app then share one account, one region and one bill.
storefront-web · environment
DATABASE_URL••••••••
Databaseorders-db
RegionMumbai (IN)
BillOne, in rupees
One click
Pick a size. Voroa builds the database.
No server to provision, no version to install, no extension compiled by hand. Choose the size your app needs and Voroa creates the database, starts it, and hands you the connection details - then keeps it running.
Most apps need a database on day one, and the usual answer is a second signup, a second dashboard, a second currency and a network path between two clouds that you now own. Here it is created beside your service and your app gets one connection string to paste - no second vendor, and no network path for you to build.
# .env of the service you already deployed
DATABASE_URL=postgres://user:pass@db-0a1b2c3d4e5f.db.getvoroa.com:20481/orders?sslmode=require
# your code does not change
const pool = new Pool({ connectionString: process.env.DATABASE_URL })
Extensions
Turn on pgvector without opening a ticket
Six PostgreSQL extensions are switches in your dashboard - UUID generation, case-insensitive text, trigram search, crypto helpers and hstore on every database, with vector search on a paid size. Nothing to compile and nobody to ask.
On a paid database, take a backup whenever you want, download it, or restore an earlier one. Point-in-time recovery means a migration that went wrong costs you minutes rather than a day of writes.
Import an existing PostgreSQL database from a dump, check it against the size you picked before you commit to it, and move your service across when you are satisfied.
Most PostgreSQL hosting pages say "high availability" and stop there. These are our real numbers. Each database runs as one instance on one server, and there is no automatic failover. If the database crashes while the server is healthy, it restarts in place, usually in under 5 minutes, with no data lost.
On a paid size, nightly backups are kept restorable for 7 days once you switch them on, and point-in-time recovery cuts the worst-case data loss to about 5 minutes. If a server fails and cannot come back, we restore your database from those copies, which takes several hours. The full table is in availability and recovery.
orders-db · recovery
Database crashRestarts in place
Nightly backup, paid sizeRestorable 7 days
Point-in-time, paid sizeAbout 5 minutes
Automatic failoverNo
Connection pooling for busy apps
PostgreSQL gives every connection its own process, so a database runs out of connections long before it runs out of capacity. Where your database lists a pooled port, point an app with many short-lived connections at it: serverless functions, scheduled jobs, or a service running many copies.
Keep the direct port for migrations and admin tools, because features that need one session held open, such as LISTEN and temporary tables, do not work through a pooler. See connection pooling for PostgreSQL for which port to use when.
orders-db · endpoints
Direct portMigrations, admin tools
Pooled portMany short connections
Pool in your appKeep it small
Free PostgreSQL hosting, then rupee prices
Start on the free size: a real PostgreSQL database in Mumbai with 1 GB of storage, created straight away and with no card needed. Each account gets one free Postgres, subject to free database capacity across the platform. A free database shares the workspace's 750 free running hours a month with your free services, and is stopped for the rest of the month if they run out. Nothing is deleted, and it starts again on the 1st.
When you need more memory or storage, pick a paid size from the table below. Paid sizes are priced in rupees, exclude 18% GST and come with a GST invoice. Storage can grow later in steps of 1 GB or any multiple of 5 GB. See what the free tier includes for every free limit.
Every plan includes SSD storage, from 1 GB on the smallest. Need more? Expand it at ₹21 per GB per month, any time, without recreating the database. Storage can grow but not shrink. Every price is exclusive of GST.
How it works
From signup to a running database
The free size and a paid size take slightly different paths.
01
Create your Voroa account. Email and a password, or sign in with GitHub.
02
Open Databases, choose PostgreSQL, and pick a size. The free size costs nothing and needs no card.
03
On the free size the database is created straight away and your connection details are there.
04
On a paid size you check out first, over UPI-Autopay or an Indian card. Voroa provisions the database once the payment clears.
05
Copy the connection string into your service's environment variables.
06
Deploy. Your app and its database are on one platform, one region and one bill.
Storage
Add storage without rebuilding anything
Every plan includes storage, and going past it is a per-GB line on top rather than a jump to a bigger plan. Voroa warns you before it becomes a problem, and adding more does not mean recreating the database or restoring a dump.
Your services and every database they use land on a single monthly invoice, paid over UPI-Autopay or an Indian card. Each line names what it is for, and the tax is split out the way your accountant needs it for input tax credit.
Your database, reachable from the moment it exists
Every database gets its own TLS endpoint as soon as it is created, so your services and your own tools connect without turning anything on. Connections are encrypted, authenticated with your password, and a client that does not finish signing in is dropped in ten seconds. When you need a database reachable only from addresses you name, trusted sources do that at the database itself, without a restart.
PostgreSQL 18 by default. On the free size you can pick 17 or 16 when you create the database; paid sizes run the current default.
How many connections can my app open?
The limit depends on the size you pick: 20 on the free size and 100 on most paid sizes. If your app opens many short-lived connections, use the pooled port where your database lists one, and keep a small pool inside the application as well.
What does the CPU figure mean?
It is a guarantee, not a ceiling. Your database gets that much when the machine is busy, and is allowed to burst above it when the machine is not.
Which extensions can I turn on?
UUID generation, case-insensitive text, trigram search, crypto functions and hstore on any database, plus vector search for embeddings on a paid size.
What happens when my storage fills up?
You are emailed as it fills, at 80% and again at 90%. If it gets close to full, the database switches to read-only - reads keep working, writes are refused - and switches back by itself once there is room. Every size includes storage, and on a paid size you can add more at any time without recreating the database.
Can I upgrade the size later?
Yes, from the database's settings. A size change restarts it briefly, so do it during a quiet window.
Is Voroa a Supabase alternative?
If you use Supabase mainly for its PostgreSQL database, yes. Voroa gives you a managed PostgreSQL database in Mumbai, billed in rupees with a GST invoice, next to the service you deploy from GitHub. Voroa does not include Supabase's built-in auth, file storage or realtime APIs. If your app depends on those, Supabase remains the closer fit. We compare the two, with prices, in Supabase alternative in India, and cover Supabase pricing in India separately.
Should I use PostgreSQL, MongoDB or Redis?
For most apps PostgreSQL is the main database, with Redis beside it for sessions and cache. We go through the trade-offs in PostgreSQL vs MongoDB and Redis vs Postgres.
Is my data in India?
Yes. It runs in Mumbai (IN), in the same region as the service that uses it.
Is the free PostgreSQL database really free?
Yes. The free size costs nothing and needs no card. It has 256 MB of memory, 1 GB of storage and 20 connections, and it shares the workspace's 750 free running hours a month with your free services. We compare it with the other free tiers in free Postgres database options.
Can I run production on the free database?
Use it for a side project, a demo or a prototype. It has no nightly backups and it stops if the month's free hours run out, so anything customers depend on belongs on a paid size.
How do backups and restore work?
On a paid size, switch on nightly backups in the Backups tab; each one stays restorable for 7 days, and you can take a manual backup or download one at any time. A restore creates a new database and never changes the original.
Can I move an existing PostgreSQL database to Voroa?
Yes. Paste your current database's connection string in the Import tab and Voroa copies the data across; you do not need dump files, and the connection string is used once and never stored. The import guide lists the steps and the limits.
Is the connection encrypted, and who can reach my database?
Connections to the public endpoint use TLS and need your password. The endpoint is open to the internet by default, and you can restrict it to your own IP addresses from the database's settings.
Will it work with my ORM or framework?
Yes. It is standard PostgreSQL, so Prisma, Django, SQLAlchemy, Sequelize, Rails and any PostgreSQL driver connect with the usual connection string.
How does PostgreSQL hosting pricing work on Voroa?
You pay a fixed monthly price in rupees for the size you pick, plus 18% GST, and extra storage per GB if you add it. There is no charge per query or per row.
What support do I get?
Every workspace can open support tickets and read the docs. The Growth plan adds email and WhatsApp support, and Scale adds a dedicated workspace manager.
Start with a free database
Create one in a couple of minutes, connect your service, and move up a size when your app asks for it. A free database shares the workspace's monthly free hours with your free services; see Free instances. More guides are in the PostgreSQL section of the blog.