Python VPS HostingFor Django, Flask and FastAPI
Run Python web apps the standard production way: NGINX in front, Gunicorn or Uvicorn running your code under systemd, and PostgreSQL or MySQL behind. We install the stack on a hardened KVM VPS; you deploy with Git and pip.
Full root & SSH NVMe storage Daily backups Anti-DDoS 99.9% uptime SLA 11 locations
-
Root and SSH access
Any Python version, system libraries and build tools.
-
Reserved vCores and RAM
Guaranteed resources for workers and background tasks.
-
NVMe storage
Fast virtualenv installs and database I/O.
-
Daily backups
Automatic backup of the previous 24 hours.
Why Host Python Apps on a VPS
Python apps usually need more than a web process: background workers, scheduled jobs, system libraries and a real database. A VPS runs all of them.
-
Background tasks next to the app
Run Celery, RQ or Dramatiq workers, and a scheduler such as Celery beat, as systemd services beside your web app.
-
System libraries you control
Install what packages such as Pillow, psycopg, lxml or scientific libraries need to build, without platform restrictions.
-
The Python version you target
Install the version your project needs alongside the system Python, with a virtual environment per app.
-
ASGI and WebSockets
Run FastAPI or Django Channels under Uvicorn with long-lived connections, proxied by NGINX.
How a Python Web App Is Served
NGINX takes HTTP, an application server runs your code, and systemd keeps everything running.
Request from a browser or app (HTTPS)
-
Reverse proxy
NGINX
Terminates HTTPS, serves static and media files and proxies requests to the app server over a socket.
-
App server
Gunicorn (WSGI) or Uvicorn (ASGI)
Runs Django, Flask or FastAPI with several worker processes, managed by systemd.
-
Application
Your code in a virtualenv
Dependencies isolated per app; settings in environment variables.
-
Background
Celery or RQ + Redis
Workers for email, reports and long tasks, with Redis as the broker.
-
Database
PostgreSQL or MySQL
Listening on localhost, with a user for your app.
Worth knowing
- Django: run collectstatic and let NGINX serve STATIC_ROOT; never DEBUG = True in production.
- The Flask development server is not for production; Flask apps run under Gunicorn.
- FastAPI is ASGI: use Uvicorn, or Gunicorn with Uvicorn workers.
- A common starting point is (2 × vCores) + 1 Gunicorn workers.
What You Can Run
-
Django sites and SaaS
Content sites, dashboards and SaaS products, with the Django admin.
-
FastAPI and Flask APIs
REST and async APIs for web and mobile front ends.
-
Data and model APIs
scikit-learn or small models served on CPU behind an API.
-
Scrapers and scheduled jobs
Scrapy spiders and scripts run by cron or systemd timers.
-
Bots and automations
Telegram and Discord bots and integrations that run all day.
-
Wagtail and django CMS
Content management on Django for marketing and documentation sites.
VPS Plans for Python Apps
VPS-1 runs a Django or FastAPI app with PostgreSQL. Add Celery workers and VPS-2 gives more headroom; data-heavy jobs benefit from the 12 GB RAM of VPS-3.
VPS-1
Small websites, APIs, bots and development servers.
- 2 vCores
- 4 GB RAM
- 40 GB NVMe
- 500 Mbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-2
Production apps, WordPress and online stores.
- 4 vCores
- 8 GB RAM
- 75 GB NVMe
- 1 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-3
Busy stores, SaaS products and several projects.
- 6 vCores
- 12 GB RAM
- 100 GB NVMe
- 2 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-4
High-traffic apps, large databases and agencies.
- 8 vCores
- 24 GB RAM
- 200 GB NVMe
- 3 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
* Unlimited traffic in Europe and North America. In Mumbai, Singapore and Sydney a monthly allowance applies (VPS-1 500 GB, VPS-2/VPS-3 1 TB, VPS-4 3 TB), then speed is limited to 10 Mbps until the next month.
Which Plan for Your Python App
Every Gunicorn worker loads your app into memory. Add Celery workers and the database, then size from there.
| Workload | Start with | Why |
|---|---|---|
| Small Django or FastAPI app | VPS-1 2 vCores · 4 GB RAM | A few Gunicorn workers with PostgreSQL. |
| Production app with Celery | VPS-2 4 vCores · 8 GB RAM | Room for web workers, task workers and Redis. |
| Data-heavy jobs or model inference | VPS-3 6 vCores · 12 GB RAM | 12 GB RAM for dataframes, models and caches. |
| Several apps or large datasets | VPS-4 8 vCores · 24 GB RAM | 24 GB RAM and 8 vCores. |
A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.
Python on a PaaS or on a VPS?
A platform builds and runs your app for you; a VPS runs the same app with no per-process billing.
| Feature | App platform (PaaS) | Python VPS |
|---|---|---|
| Pricing | Per instance or worker | Flat monthly plan |
| Celery workers and beat | Extra paid processes | Same server |
| System libraries | Build image limits | Install anything with apt |
| Database | Usually a paid add-on | Installed at handover |
| Deployment | git push built in | SSH or your own CI |
| Server administration | Handled by the provider | Yours, after our free setup |
| See Plans |
Your First Django Deploy
Flask and FastAPI follow the same pattern; only the app server command differs.
-
Clone and create a virtualenv
One virtual environment per app.
-
Install and configure
Dependencies from your requirements file, settings in .env.
-
Migrate and collect static files
NGINX serves the collected files.
-
Restart the app server
Gunicorn reloads with the new code.
# 1. Clone and create a virtualenv
git clone [email protected]:you/site.git ~/site && cd ~/site
python3 -m venv .venv && . .venv/bin/activate
# 2. Install and configure
pip install -r requirements.txt
cp .env.example .env
# 3. Migrate and collect static files
python manage.py migrate
python manage.py collectstatic --noinput
# 4. Restart the app server
sudo systemctl restart app
Example commands; adjust names, paths and versions to your project. Deploying and maintaining your application is yours to do (or ask us for a quote).
Installed and Secured Before You Log In
The VPS is unmanaged: after handover the server is yours to run. Before that, our engineers do the first setup once, free, so you start from a hardened server with Python in place.
-
Choose a plan and location
Pick the resources you need and the datacentre closest to your users.
-
Tell us your Python setup
Versions, database and domain: at order or right after.
-
We install and secure it
Server hardened, Python installed and tested, HTTPS on your domain.
-
You take over with root
SSH access to a working server, ready for your code and data.
Your Python stack
- Python 3 with venv and pip, or the version you specify
- Gunicorn or Uvicorn as a systemd service
- NGINX reverse proxy serving static files
- PostgreSQL or MySQL with a database and user for your app
- Redis for caching or as a Celery broker, on request
Yours to run after handover
- Ongoing server administration
- Application maintenance and updates
- Debugging your code
- Migrating existing sites or data
Not included in the free setup, but we can quote for it. No control panel by default: CloudPanel, HestiaCP or Virtualmin on request at no cost; cPanel and Plesk need their own licence.
Platform Specs and Locations
The same KVM platform on every plan; only the CPU, RAM, storage and port speed change.
| Virtualisation | KVM with reserved vCores and RAM |
|---|---|
| Storage | NVMe SSD on every plan |
| Network | Dedicated IPv4 and IPv6, 500 Mbps to 3 Gbps per plan |
| Operating systems | Ubuntu 26.04, 24.04 and 22.04 LTS · Debian 13, 12 and 11 · AlmaLinux · Rocky Linux · Fedora · FreeBSD |
| Access | Full root over SSH, key-based login |
| Backups | Automatic daily backup of the previous 24 hours; snapshots and longer retention on request |
| Protection | Always-on anti-DDoS mitigation |
| Availability | 99.9% uptime SLA |
Secured before we hand it over
- Non-root sudo user created for daily work
- SSH key login, password login for root disabled
- Firewall (UFW) open only for the ports you use
- Fail2ban blocking repeated login attempts
- Automatic security updates enabled
- Free Let's Encrypt SSL on your domain
- Timezone, swap and hostname configured
Asia-Pacific
- Mumbai
- Singapore
- Sydney
Europe
- London
- Limburg
- Roubaix
- Gravelines
- Strasbourg
- Milan
- Warsaw
North America
- Beauharnois
Availability per location changes with demand; we confirm your location before setup. In Mumbai, Singapore and Sydney each plan includes a monthly traffic allowance (VPS-1 500 GB, VPS-2 and VPS-3 1 TB, VPS-4 3 TB); beyond it, speed is limited to 10 Mbps until the next month.
Who a Python VPS Suits
-
Django and FastAPI developers
You deploy over SSH or from CI and want a standard, understandable server.
-
Data teams shipping an API
You need to put a model or data service online behind HTTPS.
-
Projects outgrowing PaaS limits
Worker hours, sleeping apps or build limits on platforms are getting in the way.
Security and Performance for Python Apps
Security
- Keep DEBUG off in production and SECRET_KEY out of the repository.
- Set ALLOWED_HOSTS in Django (or validate the Host header) and serve only over HTTPS.
- Pin dependencies and check them with pip-audit.
- Run the app as its own user, with only its media directory writable.
Performance
- Start with (2 × vCores) + 1 Gunicorn workers and adjust by memory use.
- Serve static and media files from NGINX, not from Python.
- Cache expensive views and queries in Redis.
- Move slow work to Celery so requests return quickly.
Questions Before You Deploy
Not covered here? Ask an engineer before you order.
Deploy Your Python App on Your Own Server
Choose a plan, tell us Django, Flask or FastAPI and your database, and get a server with NGINX and Gunicorn or Uvicorn ready.