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.1.tar.gz (60.7 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.1-py3-none-any.whl (74.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dsd_cloudron-2026.7.1.tar.gz
  • Upload date:
  • Size: 60.7 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.1.tar.gz
Algorithm Hash digest
SHA256 054f483a554b6675a59d621e448a0c28e0fa8a203b20aed2ad07bdc7cf788c23
MD5 82ed1778016e8a1d5474b5cd571f9760
BLAKE2b-256 2081fac212176eeefd7732648a555866cfccda82ab51d0bc6b5a42366cc703a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsd_cloudron-2026.7.1-py3-none-any.whl
  • Upload date:
  • Size: 74.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5ebe6b62a00e1244f96919fa5d38dc68176dc1e750c1f98531c8c1679366bb62
MD5 673d23a35d5d071733b927e93d7fa764
BLAKE2b-256 6d4704fca96ed565ecdec704678f7c24c86b0720cf5ad34bce3b95708e276a12

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