Start a demo, no card required https://diploi.com/component/django
Getting started guide https://diploi.com/blog/hosting_django_apps
A generic Django component ready to build your Django app.
This component was kickstarted running
django-admin startproject djangoapp
and it has DEBUG=true
inside settings.py by default
To secure your Django app, you must update your SECRET_KEY in settings.py
By default all Django apps use SQlite, which you must update to use your database of choice inside settings.py
Uses the official astral-sh/uv:3.13-alpine Docker image and Django
- You must generate a new SECRET_KEY for your own application
- Remember to update the database settings inside settings.py to match your own database config
- In production you must remember to update your settings.py, by changing
DEBUG=false
and if you want to use external CDNs for your static files, you will need to update theSTATIC_ROOT
- For production and development, you are free to change the app server runner, so for example, if you prefer
uwsgi
you can change it directly on the Dockerfile for production and development - To install new packages, this component uses
uv
, so you can add new packages usinguv add <name-of-package>
- In the Dashboard, click Create Project +
- Under Pick Components, choose Django
- In Pick Add-ons, you can add one or multiple databases to your app
- Choose Create Repository, which will generate a new GitHub repo
- Now click Launch Stack
Will run
uv sync
when component is first initialized, and uv run --isolated python3 manage.py runserver 0.0.0.0:8000
when deployment is started.
Will build a production ready image. The first step runs the command:
uv sync --locked --no-dev --group deploy
Which installs gunicorn, as part of --group=deploy
in pyproject.toml
, to install all necessary dependencies for production.
To get all static files, the image runs the command:
uv run --locked --no-dev python manage.py collectstatic --noinput
to get all static files.
Lastly, the image will start the production server with the command:
uv run gunicorn djangoapp.wsgi:application --bind 0.0.0.0:8000 --workers 3 --log-level info