dsd-cloudron
A django-simple-deploy plugin that configures and deploys Django projects to Cloudron. One install serves two audiences:
- Retrofit an existing project:
python manage.py deploy --location <subdomain> - Greenfield a new project:
dsd-cloudron new "My App"
Both render the same Cloudron artifact set (manifest, Dockerfile, start.sh, supervisor configs, nginx, settings glue) through one packaging core.
Documentation: https://dsd-cloudron.readthedocs.io
Install
pip install dsd-cloudron
npm install -g cloudron
cloudron login my.example.com
Retrofit an existing Django project
pip install django-simple-deploy dsd-cloudron
python manage.py deploy --location blog # config only
python manage.py deploy --location blog --automate-all # config + install
Infra addons (PostgreSQL, Redis, sendmail) are on by default. The app-intrusive
ones are opt-in: --celery generates a Celery app module wired to the Redis
broker; --sso renders the Cloudron OIDC addon and a django-allauth provider
config and adds the dependency, then prints the steps to finish wiring allauth
into INSTALLED_APPS/urls.py and run migrate (a project scaffolded with
dsd-cloudron new --sso gets that wiring automatically). Useful flags:
--health-check-path, --memory-limit, --app-id, --force-overwrite,
--no-redis, --no-sendmail.
Scaffold a new project
dsd-cloudron new "My App" --celery --sso
cd my_app
cloudron install -l my-app
The control surface
The generated files ARE the configuration. Edit and re-deploy:
CloudronManifest.json- addons,memoryLimit,httpPort,healthCheckPath.healthCheckPathmust return a 2xx response or the install fails its health check. Greenfield ships a/healthz/view that returns 200.<project>/cloudron_settings.py- the Django glue, gated onCLOUDRON_APP_ORIGINso it is inert during local development. Drop a/app/data/custom_settings.pyon the server for ad-hoc overrides; it runs only when owned byroot(create it viacloudron execasroot:cloudronmode 640), so a file the app could write itself is skipped.Dockerfile,start.sh,nginx.conf,supervisor/- the runtime.
Re-running manage.py deploy is safe but not silently idempotent: the settings
block is guarded, and rendered artifacts are skip-if-present (regenerate with
--force-overwrite).
Iterate
# edit code or config, then:
cloudron update --app <subdomain>
cloudron logs --app <subdomain> -f
/app/data and the Postgres/Redis addons persist across updates; migrate runs
on every start.
First sign-in
A local admin account is created on the first install; its generated password
is saved on the server at /app/data/.initial_admin_password. Read it with
cloudron exec --app <subdomain> -- cat /app/data/.initial_admin_password during
the first-boot window - the file is removed automatically on the next start once
the app is initialized (if you miss it, reset with manage.py changepassword admin via cloudron exec). Sign in at /admin/ and change it. With --sso,
sign in with your Cloudron account; the local admin is a break-glass account
for promoting your user.
License
MIT. See LICENSE.
Metadata
Release files for dsd-cloudron 2026.7.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dsd_cloudron-2026.7.2.tar.gz | 61.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dsd_cloudron-2026.7.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 137.0 kB
Release files / dsd_cloudron-2026.7.2.tar.gz
| Download URL | dsd_cloudron-2026.7.2.tar.gz |
|---|---|
| Size | 61.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a383e829d5ec529c73bd7d46237da3c34b8cc3e1feecb329e022d6cbee391029
|
|
BLAKE2b-256 checksum How to use checksums |
150b8436abdbfaea291c7309256ea66f2c947317a315dff73b2fd941d34a42dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dsd_cloudron-2026.7.2-py3-none-any.whl
| Download URL | dsd_cloudron-2026.7.2-py3-none-any.whl |
|---|---|
| Size | 75.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
18426f698c8481ae0c11c191d45ab1d2a36f30ca50af2dc99676eebe883ade10
|
|
BLAKE2b-256 checksum How to use checksums |
320b14d8624c4182296c6e046875093e439ab24da30210941153bc9f489447e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|