Hosting

Django Hosting, Deploy from GitHub

Deploy Django 5.2 LTS from a public Git repo on VeloxaHost: Python 3.11 in a venv, Gunicorn behind automatic HTTPS, pip install on each deploy.

A Django site on VeloxaHost is a Python site: its own container with Python 3.11, a virtual environment at /opt/app/venv, and your app running under Gunicorn as a system service. The site's web server sits in front of it on your domain, gets a free Let's Encrypt certificate, and forwards every request to Gunicorn on 127.0.0.1:8000. You push to Git; a deploy pulls the code, runs pip install -r requirements.txt and restarts the app.

Python 3.11 decides the Django version. Django 6.0 and 6.1 need Python 3.12 or newer, so on a Python site you run Django 5.2, the long-term support release, which gets security fixes until April 2028.

Deploy from Git

Prepare the repository

The deploy reads requirements.txt, not pyproject.toml, so keep one at the root of the app (or of the Subdirectory you deploy) with at least:

Django>=5.2,<6.0
gunicorn
whitenoise

Then set Django up for production, as its deployment checklist asks:

  • read SECRET_KEY from the environment, keep DEBUG = False, and set ALLOWED_HOSTS = ["example.com", "www.example.com"];
  • set CSRF_COOKIE_SECURE and SESSION_COOKIE_SECURE to True;
  • serve static files with WhiteNoise: add "whitenoise.middleware.WhiteNoiseMiddleware" right after SecurityMiddleware and set STATIC_ROOT = BASE_DIR / "staticfiles". Every request goes to Gunicorn, so nothing else serves /static/.

You do not need SECURE_PROXY_SSL_HEADER. Gunicorn trusts the X-Forwarded-Proto header from 127.0.0.1 by default, so Django already sees requests as HTTPS.

Create and deploy the site

  1. In the console, open Websites and click Add Website.

  2. Enter your domain. Under Hosting type, pick Python.

  3. In Start Command, enter gunicorn -b 127.0.0.1:8000 -w 2 mysite.wsgi, with your project's package in place of mysite. The command runs from /opt/app with the virtual environment's programs, so its first word must be something your requirements install. Left empty, the site runs gunicorn -b 127.0.0.1:8000 app:app.

  4. Click Create Website and add the DNS records shown under DNS — point your domain here. HTTPS is issued once they resolve.

  5. Under Advanced, click Open Console (a root shell in the site's container) and give the app its settings and its release steps:

    systemctl edit veloxa-app
    
    [Service]
    Environment=DJANGO_SECRET_KEY=change-me
    ExecStartPre=/opt/app/venv/bin/python manage.py migrate --noinput
    ExecStartPre=/opt/app/venv/bin/python manage.py collectstatic --noinput
    

    These lines live outside /opt/app, so deploys keep them, and the two ExecStartPre steps run before every start, which includes every deploy.

  6. In the Deploy from Git card, click Deploy, enter the Repository URL (https) and Branch, pick Auto-deploy (Manual / webhook only, Every hour or Every day) and click Deploy Now. The result shows under Recent deploys.

  7. To deploy on every push, call the CI Webhook URL from your CI: curl -fsS -X POST "$VELOXAHOST_DEPLOY_HOOK". Keep it in your CI secrets; it carries the site's token.

A deploy replaces everything in /opt/app with the repository except the venv folder. Keep anything that must survive, such as uploaded media or a SQLite file, outside /opt/app.

Supported versions

Component Version
Python 3.11, from Debian 12's packages
Django 5.2 LTS (6.0 and newer need Python 3.12)
Gunicorn Whatever your requirements.txt installs

There is no Python version picker. Python 3.11 gets security fixes until October 2027.

Which plan fits

Every hosting plan runs Python. A small Django site with two Gunicorn workers fits Launch ($6.99/month, 1 vCPU and 1 GB RAM, 3 websites). Pick Grow ($12.99/month, 2 vCPU and 4 GB RAM, 10 websites) for more workers or a heavier admin. Each site can use up to its plan's RAM and vCPU. Its disk is its share of the plan's storage: 5 GB on Launch and Grow, 2 GB on Scale and Business. Yearly billing costs ten times the monthly price. See pricing.

Limits and when to use a VPS

  • No database server. A Python site has none. SQLite works for a small site if the file is outside /opt/app; otherwise connect to a database you run on a VPS, such as PostgreSQL.
  • One app process. There is no worker manager for Celery or Django-Q. Run them on a VPS, or as the one-click Python (Docker) app, which runs Python 3.12.
  • No build or migration step in the deploy. The ExecStartPre lines above are how you add them.
  • The install must finish within five minutes, and a failed pip install does not fail the deploy today. If the site errors after a deploy, read journalctl -u veloxa-app in the console.
  • Public repositories only. The deploy stores no Git credentials.

If you need Django 6, which needs Python 3.12 or newer, use a VPS, where you choose the runtime, or the Python (Docker) app above. The same steps suit Flask, and an async app fits FastAPI hosting.

FAQ

Can I run Django 6 on VeloxaHost hosting?

Not on a Python site. Django 6.0 and 6.1 need Python 3.12 or newer, and Python sites have Python 3.11. Use Django 5.2 LTS, or run Django 6 on a VPS.

How do I run migrations on each deploy?

Add ExecStartPre=/opt/app/venv/bin/python manage.py migrate --noinput to the app's service with systemctl edit veloxa-app. Every deploy restarts the service, so migrations run first each time.

Why do my static files return 404?

The site forwards every request to Gunicorn, so Django has to serve /static/ itself. Add WhiteNoise and run collectstatic before start, as shown above.

Where do I put environment variables?

In the app's service: systemctl edit veloxa-app, then Environment=NAME=value lines under [Service], then systemctl restart veloxa-app. The console has no environment form yet.

Can I change the start command later?

It is written into the service when the site is created. Change it in the console with systemctl edit veloxa-app: an empty ExecStart= line, then ExecStart=/opt/app/venv/bin/gunicorn ... with the new command.

Django sites run on any managed hosting plan, from Launch at $6.99/month. Framework facts were checked on 2026-10-18 against: docs.djangoproject.com/en/stable/faq/install, www.djangoproject.com/download, docs.djangoproject.com/en/stable/howto/deployment/wsgi/gunicorn, docs.djangoproject.com/en/5.2/howto/deployment/checklist, gunicorn.org/reference/settings, whitenoise.readthedocs.io/en/stable/django.html, packages.debian.org/bookworm/python3.

Ready to deploy?

Start a free trial, or compare plans to match your team's scale.