Student projects
Deploy a Django project online
Django wants a real database and a place for static files, which is exactly what a DormHost application is. PostgreSQL is a loopback call away, and the admin site and your APIs run on the same process.
What you get.
Host Django projects on a real machine from ₹99 a month.
How it fits
- PostgreSQL runs on the same machine, ready to use
- Static and media files go in the application's storage, which survives deploys
- The Django admin and your API are served from the same address
- Custom domain through your own Cloudflare, with HTTPS
Deploy it, step by step
The dashboard flow is the same for every project:
- Sign in with GitHub. Go to the dashboard and sign in. Your first sign-in puts 30 days of Nap credit in your balance, with no card and nothing to cancel.
- Create an application. Press New app and give it a name: three characters or more, letters, numbers and hyphens. The address is shown under the field as you type, and it is yourapp-yourlogin.dormhost.app.
- Pick the plan. Nap sleeps when nobody is using it. Awake never sleeps, which is what a bot, a worker or a scheduled job needs. Either way, you choose Mumbai, London or Ashburn.
- Point it at your repository. Paste the GitHub URL and the branch. Press Connect GitHub to pick from a list instead, which is also how a private repository is deployed. Then press Create and deploy.
- Watch the build log. The application opens on Overview, and Live logs streams the build. Listen on the port in the PORT variable we set, or EXPOSE one port in your Dockerfile, and the address answers as soon as the build finishes.
What is different about Django
- Put your dormhost.app address in ALLOWED_HOSTS, and SECRET_KEY in the Environment section rather than in settings.py.
- Run migrate and collectstatic from your build script, so they finish before the new version starts serving.
- Add PostgreSQL in the Database section. It arrives as DATABASE_URL, which dj-database-url reads directly.
- Bind gunicorn to the port we set: gunicorn project.wsgi --bind 0.0.0.0:$PORT.
- Point MEDIA_ROOT at /data. Uploads written anywhere else are part of the container and go on the next deploy.
Hosting is ₹99 a month on Nap, all in: the build, the running app, the database and the storage. Nothing is metered separately, so the bill cannot surprise you. Start with 30 days of free credit, no card required. The docs cover databases, domains and what to do when a build fails.