Metadata-Version: 2.4
Name: django-simple-deploy
Version: 1.4.0
Summary: Deployment, for Djangonauts with deadlines.
Author-email: Eric Matthes <ehmatthes@gmail.com>
Project-URL: Documentation, https://django-simple-deploy.readthedocs.io/en/latest/
Project-URL: GitHub, https://github.com/django-simple-deploy/django-simple-deploy
Project-URL: Changelog, https://github.com/django-simple-deploy/django-simple-deploy/blob/main/CHANGELOG.md
Keywords: django,deployment
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.0
Classifier: Framework :: Django :: 5.1
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django>=4.2
Requires-Dist: pluggy>=1.5.0
Requires-Dist: toml>=0.10.2
Requires-Dist: requests>=2.32.2
Provides-Extra: fly-io
Requires-Dist: dsd-flyio; extra == "fly-io"
Provides-Extra: upsun
Requires-Dist: dsd-upsun; extra == "upsun"
Provides-Extra: heroku
Requires-Dist: dsd-heroku; extra == "heroku"
Provides-Extra: dev
Requires-Dist: black>=24.1.0; extra == "dev"
Requires-Dist: build>=1.2.1; extra == "dev"
Requires-Dist: mkdocs>=1.6.0; extra == "dev"
Requires-Dist: mkdocs-material>=9.5.0; extra == "dev"
Requires-Dist: mkdocstrings-python>=1.13.0; extra == "dev"
Requires-Dist: pipenv>=2024.4.0; extra == "dev"
Requires-Dist: pytest>=8.3.0; extra == "dev"
Requires-Dist: twine>=5.1.1; extra == "dev"
Dynamic: license-file

# django-simple-deploy

Deployment, for Djangonauts with deadlines.

## Documentation

The full documentation for this project is at [Read the Docs](https://django-simple-deploy.readthedocs.io/en/latest/).

## Recent media

[Django Simple Deploy and other DevOps Things](https://talkpython.fm/episodes/show/500/django-simple-deploy-and-other-devops-things) (Episode 500 of Talk Python)

It was an honor to be the guest on episode 500, that's a fantastic milestone for a podcast! This episode focuses on the state of `django-simple-deploy` as it reached the 1.0 release.

## Quickstart

`django-simple-deploy` gives you a management command that configures your project for an initial deployment. It currently supports deployments to [Fly.io](https://fly.io), [Upsun](https://upsun.com), and [Heroku](https://heroku.com). Each platform is supported by an external plugin, which means it's relatively straightforward to build support for additional hosting platforms. A [plugin](https://github.com/django-simple-deploy/dsd-vps) supporting VPS-based deployments is currently in development.

If you have a Django project that runs locally, you can deploy your project in a few short steps. The only change you'll need to make to your project is to add `django_simple_deploy` to `INSTALLED_APPS`.

![Simplest example of how to use django-simple-deploy](https://raw.githubusercontent.com/ehmatthes/django-simple-deploy/main/assets/simplest_example.png)

The above command will deploy your project to Fly.io. To deploy to another platform such as Upsun, just install a different plugin when you install `django-simple-deploy`:

```sh
$ pip install "django-simple-deploy[upsun]"
```

All output is captured and written to a log file stored in `dsd_logs/`, which is placed at the project's root directory.

Installing a plugin automatically installs `django-simple-deploy`. So for platforms supported by third-party plugins, the only difference is the installation step:

```sh
$ pip install <dsd-plugin-name>
# Add django_simple_deploy to INSTALLED_APPS
$ python manage.py deploy --automate-all
```

Configuration-only mode
---

The above example uses the `--automate-all` flag, which reduces deployment to three steps. The fully automated mode configures your project, commits changes for you, and pushes your code to the target platform's servers. There's also a configuration-only mode, which lets you inspect the changes made to your project before committing them and making the actual deployment. For a quick example, see the full [Fly.io Quick Start guide](https://django-simple-deploy.readthedocs.io/en/latest/quick_starts/quick_start_flyio/).
