Django
Start it with gunicorn myproject.wsgi --bind 0.0.0.0:$PORT, collect static files in the build step, serve them with WhiteNoise, and run migrate as the pre-deploy command.
Python cloud hosting where you push a Django, FastAPI or Flask app to GitHub and Voroa installs, builds and runs it in Mumbai, billed in rupees. No VPS, no nginx, no Dockerfile needed.
Free size included · Paid sizes from ₹149/mo
Python hosting is a server that runs your Python web app behind a public address: it installs your packages, starts a production server such as gunicorn or uvicorn, and restarts the app with each new version. On a VPS or a cPanel host you set up the virtualenv, the process manager, nginx and the certificate yourself.
On Voroa you connect a repository instead. Voroa installs what your requirements.txt, Pipfile or pyproject.toml lists, runs your build command, runs your migrations before the new version takes traffic, then starts your app with your start command behind HTTPS. Every push repeats it.
requirements.txt, Pipfile or pyproject.tomlIf it serves HTTP and lives in a Git repository, it runs as a web service.
Start it with gunicorn myproject.wsgi --bind 0.0.0.0:$PORT, collect static files in the build step, serve them with WhiteNoise, and run migrate as the pre-deploy command.
Start it with uvicorn main:app --host 0.0.0.0 --port $PORT. The same service can hold WebSocket endpoints next to your REST API.
Start it with gunicorn app:app --bind 0.0.0.0:$PORT. With Flask-Migrate, set the pre-deploy command to flask db upgrade.
Run the worker as a separate background worker from the same repository, with a Redis-compatible key value store as the broker.
Connect a repository, pick a branch, and Voroa builds and runs your app. Most projects need zero configuration. When you do need control, set your own build and start commands, root directory and Node version - and change them any time.
View documentationTurn on auto-deploy and every push to your branch triggers a fresh build and rolls the change out. Your live service always matches your latest commit, and every deploy is recorded with the commit that caused it.
View documentationVoroa reads the Python version from your repository: requires-python in pyproject.toml, python_version in a Pipfile, or a .python-version or runtime.txt file. Without any of them, Voroa builds on Python 3.12.
Packages install from requirements.txt, Pipfile or pyproject.toml, so there is no virtualenv to create and no pip install to run by hand. Because the version lives in your code, every deploy and every teammate gets the same one.
A Python deploy on Voroa has three steps you can set under Build and Deploy settings. The build command runs once per deploy, for example Django's collectstatic. The pre-deploy command runs after the build and before the new version receives traffic, which is where migrate belongs: if it fails, the old version keeps serving. The start command runs your server.
You change any of them later without recreating the service. The full Django walkthrough, with the settings changes and common errors, is in deploy a Django app.
A service's own filesystem resets on every deploy, so a SQLite file written there disappears with the next release. Put real data in managed PostgreSQL and read it through one DATABASE_URL variable, or, on a paid size, attach a persistent disk when you need files that survive a deploy.
Use a Redis-compatible key value store for cache, sessions and as a Celery broker, and run the Celery worker as a background worker. Everything sits in one workspace, one region and one rupee bill.
A Discord or Telegram bot, a scraper or a queue consumer has no web page to serve, so it runs as a background worker: no port, no public URL, and it never sleeps. Set the start command, for example python bot.py, and Voroa keeps it running and restarts it if it exits.
A free worker draws on the workspace's 750 free running hours a month, and one worker running all month uses about 744 of them, so a single bot fits on the free size. Paid sizes have no hour limit.
Your build streams line by line as it runs, and your running service keeps its own runtime logs - so when something misbehaves in production you read what happened instead of guessing. Every deploy keeps its status and its commit.
View documentationStore the configuration your app needs as environment variables, applied to both your builds and your running service. Values are encrypted at rest and are never displayed again - not to you, not to anyone. You can replace a value; nobody can read it back.
View documentationEvery service gets a live HTTPS URL the moment it deploys. Point your own domain at it and Voroa issues and renews the certificate for you - nothing to buy, nothing to remember, no expired certificate taking your site down.
View documentationStart free, move up a size when the service needs it. Every size is billed per service, per month.
| Plan | CPU / RAM / Storage | Price | Action |
|---|---|---|---|
Nanonano |
0.1 CPU · 512 MB RAM | ₹0/month+18% GST | Get started |
Nano Plusnano_plus |
0.5 CPU · 512 MB RAM | ₹149/month+18% GST | Get started |
Starterstarter |
1 CPU · 1 GB RAM | ₹298/month+18% GST | Get started |
Standardstandard |
1 CPU · 2 GB RAM | ₹498/month+18% GST | Get started |
Standard Plusstandard_plus |
2 CPU · 2 GB RAM | ₹598/month+18% GST | Get started |
Propro |
2 CPU · 4 GB RAM | ₹998/month+18% GST | Get started |
Pro Pluspro_plus |
4 CPU · 4 GB RAM | ₹1,198/month+18% GST | Get started |
Pro Maxpro_max |
4 CPU · 8 GB RAM | ₹1,998/month+18% GST | Get started |
Pro Ultrapro_ultra |
8 CPU · 8 GB RAM | ₹2,398/month+18% GST | Get started |
Scalescale |
8 CPU · 16 GB RAM | CustomPriced to your workload | Talk to us |
Scale Maxscale_max |
8 CPU · 24 GB RAM | CustomPriced to your workload | Talk to us |
Your bill is one workspace plan plus a compute size for each service you run; the pricing page lists the workspace plans. All prices in INR and exclude 18% GST; a GST tax invoice is issued on every payment. No foreign currency payments, no forex markup.
Create your Voroa account with email and a password, or sign in with GitHub.
Connect GitHub and choose the repository and branch that holds your app.
Set the start command, and for Django the build and pre-deploy commands.
Add SECRET_KEY, ALLOWED_HOSTS and your other settings as environment variables.
Pick a size. The free size costs nothing and needs no card.
Select Deploy, open the live URL, and turn on auto-deploy for every push.
Your services and every database beside them 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.
View documentationYes. Run it with gunicorn, collect static files in the build command, serve them with WhiteNoise, and run migrate as the pre-deploy command. See deploy a Django app.
Yes. Set the start command to uvicorn main:app --host 0.0.0.0 --port $PORT for FastAPI or gunicorn app:app --bind 0.0.0.0:$PORT for Flask.
In the pre-deploy command. It runs once per deploy with your environment variables, after the build and before the new version takes traffic.
Only for a throwaway test. The container's filesystem resets on every deploy, so use managed PostgreSQL, or a persistent disk on a paid size if you must keep files.
No. Voroa builds your app from its package files, runs your server and handles HTTPS. You can still build from your own Dockerfile if you prefer.
Deploy your web app as a web service and the Celery worker as a background worker from the same repository, with a Redis-compatible key value store as the broker.
Yes, through an ASGI server such as Uvicorn or Daphne. See WebSockets on Voroa.
Yes. The free size runs a 512 MB service with no card needed. Free services share 750 running hours a month in a workspace and sleep after 15 idle minutes. See free instances.
A fixed monthly price in rupees for the size you pick, plus 18% GST, with a GST invoice on every payment. Pay by UPI, an Indian card or netbanking.
In Mumbai (IN), in the same region as the databases you add next to it.
The one your repository declares in pyproject.toml, a Pipfile, .python-version or runtime.txt. Without one, Voroa builds on Python 3.12.
Yes, as a background worker with a start command such as python bot.py. Workers never sleep, and one free worker fits inside the 750 free hours a month.
Voroa starts it again. If it keeps exiting soon after it starts, the service shows as crash looping and the same error repeats in its logs, which is usually the fastest way to find the cause.
A separate cron job service is not available yet. Today, run a scheduler such as Celery beat or APScheduler inside a background worker.
Yes, on CPU. Voroa has no GPU sizes, so pick a size with enough memory for your model, and keep large model files out of the container image where you can.
Yes. Add an SSH key and open a terminal inside the running service, then run python manage.py commands there. See SSH access.
Yes. Each app is its own service; the free plan allows up to 15 services in a workspace.
We compare the options for each framework in Django hosting in India and Python hosting for Flask and FastAPI.
Connect your repository, pick the free size, and have a live URL in a few minutes. Moving an app from another platform? You may qualify for migration credits. More guides are on the Python section of the blog.
Free size, no card needed.