Skip to main content

A plugin for django-simple-deploy, supporting deployments to Cloudron.

Project description

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. healthCheckPath must 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 on CLOUDRON_APP_ORIGIN so it is inert during local development. Drop a /app/data/custom_settings.py on the server for ad-hoc overrides; it runs only when owned by root (create it via cloudron exec as root:cloudron mode 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsd_cloudron-2026.7.2.tar.gz (61.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsd_cloudron-2026.7.2-py3-none-any.whl (75.2 kB view details)

Uploaded Python 3

File details

Details for the file dsd_cloudron-2026.7.2.tar.gz.

File metadata

  • Download URL: dsd_cloudron-2026.7.2.tar.gz
  • Upload date:
  • Size: 61.8 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for dsd_cloudron-2026.7.2.tar.gz
Algorithm Hash digest
SHA256 a383e829d5ec529c73bd7d46237da3c34b8cc3e1feecb329e022d6cbee391029
MD5 b8c6a6d9ca1fc0f59e87110401cf623f
BLAKE2b-256 150b8436abdbfaea291c7309256ea66f2c947317a315dff73b2fd941d34a42dd

See more details on using hashes here.

File details

Details for the file dsd_cloudron-2026.7.2-py3-none-any.whl.

File metadata

  • Download URL: dsd_cloudron-2026.7.2-py3-none-any.whl
  • Upload date:
  • Size: 75.2 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for dsd_cloudron-2026.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 18426f698c8481ae0c11c191d45ab1d2a36f30ca50af2dc99676eebe883ade10
MD5 6df051768994949773c511741d6419d5
BLAKE2b-256 320b14d8624c4182296c6e046875093e439ab24da30210941153bc9f489447e5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page