Django Hosting
Point us at your WSGI module and we handle the virtualenv, gunicorn, static files and HTTPS — so you can get back to building.
The Django docs are excellent right up until "deploying", at which point you are reading about gunicorn workers, static file collection and reverse proxies instead of writing views.
We take the standard Django deployment and make it a form. Give us the app root and the WSGI path, and you get a supervised gunicorn process behind nginx with a free certificate on your own domain.
Django Hosting
Give us myproject.wsgi and we wire up gunicorn correctly the first time.
Your requirements.txt is installed into a clean virtualenv on every deploy.
The database Django users actually want, alongside MySQL if you prefer.
gunicorn runs under systemd, restarted on crash and after reboots.
Free Let's Encrypt certificates that renew themselves.
Run migrations and management commands from the browser terminal.
Where it runs
Not a reseller account on someone else's platform. Your Django workload runs on machines we own and operate in Kathmandu — which is why the round trip below is what it is.
Typical round-trip a visitor inside Nepal sees, by server location. Your results will vary by network and route.
The app entry field wants the dotted module path to your WSGI module — myproject.wsgi — not a filename. We append the :application part ourselves.
# Entry point to enter in the panel: myproject.wsgi
DEBUG = False
ALLOWED_HOSTS = ["yourdomain.com", "www.yourdomain.com"]
# collectstatic writes here; nginx serves it directly, which is
# faster than routing static files through Django.
STATIC_ROOT = BASE_DIR / "staticfiles"
STATIC_URL = "/static/"After the first deploy, open the browser Terminal and run migrate and collectstatic. Leaving DEBUG on, or omitting your domain from ALLOWED_HOSTS, is the most common reason a fresh Django deploy returns a 400.
If a deploy still will not come up, the panel reads the service log and explains the cause in plain language — you do not have to interpret systemd output yourself.
Plans are being updated — see all hosting.
Open the Terminal in the panel, activate your virtualenv and run python manage.py migrate — exactly as you would locally.
Run collectstatic into a folder under your web root; nginx serves them directly, which is faster than serving them through Django.
That is your settings file, and it should be. Set DEBUG=False and configure ALLOWED_HOSTS for your domain before going live.
Set up in minutes, with support from people in your timezone.