Skip to main content

A simple Django app to handle Let's Encrypt ACME challenges.

Project description

Let's Encrypt App for Django

django-letsencrypt will allow you to add, remove, and update any ACME challenge objects you may need through your Django admin interface. Simply add the ACME challenge and response for your app to serve up the necessary information for Let's Encrypt validation.

This project strives to make installation, configuration, and usage a snap! From high levels of code coverage, multiple compatible python versions, multiple versions of Django supported, even multiple databases too!

And of course all wrapped up and published to PyPI for standard installation!

Supported Configurations

django-letsencrypt is tested across a number of configurations, here's what's supported so far:

  • Python Versions Supported:
    • 3.14 (with Django 6.0, 5.2)
    • 3.13 (with Django 6.0, 5.2)
    • 3.12 (with Django 6.0, 5.2, 4.2)
    • 3.11 (with Django 5.2, 4.2)
    • 3.10 (with Django 5.2, 4.2)
  • Django Versions Supported:
    • 6.0 minimum version 6.0.4
    • 5.2 LTS minimum version 5.2.13
    • 4.2 LTS minimum version 4.2.30
  • Databases Supported:
    • mysql
    • postgres
    • sqlite

Recent Build Status Badges

  • Linting - Master
  • Testing Django 4.2 - Master
  • Testing Django 5.2 - Master
  • Testing Django 6.0 - Master
  • Codecov - Master

Installation & Configuration

  1. pip install django-letsencrypt

  2. Add letsencrypt to your INSTALLED_APPS

INSTALLED_APPS = [
   ... ,
   'letsencrypt',
   ... ,
]
  1. Include the letsencrypt in your project's urls.py, or where applicable (usually your root urls.py).
re_path(r'^\.well-known/', include('letsencrypt.urls'))
  1. Run manage.py migrate to create the required table for the letsencrypt model

  2. Create your ACME Challenge objects in your Django admin interface

  3. Test your ACME Challenge objects and their responses by visiting them:

{Django Site}/.well-known/acme-challenge/challenge_text
  1. Enjoy your easy to manage ACME Challenges inside your Django project!

Example Project

If you would like a demo of how to use this application simply clone this project's git repository from GitHub, take a moment to read the README.md file within the example_project directory, and follow the directions. That will spin up a small sample django application already configured for you to try out.

Development

  1. Make sure you have installed uv in your environment.
  2. Clone the repo to your development machine.
  3. Configure your git hooks with git config core.hooksPath .githooks for the project.
  4. Run uv sync to create the virtual environment and install required dependencies.
  5. Run make test for the full test suite.
  6. Run make test-tox to run the entire tox suite.

Download files

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

Source Distribution

django_letsencrypt-6.0.2.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

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

django_letsencrypt-6.0.2-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file django_letsencrypt-6.0.2.tar.gz.

File metadata

  • Download URL: django_letsencrypt-6.0.2.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for django_letsencrypt-6.0.2.tar.gz
Algorithm Hash digest
SHA256 d79198e44f23ba894b40fbedbc7f7fc6eef4492a106ae7f5fb15b6b1b733d5ef
MD5 12788496fd607855c2deafb128b3a088
BLAKE2b-256 4d43491e90ec7db15089eca97edc82f73b78ea489888715c0312f5e47e965e4d

See more details on using hashes here.

File details

Details for the file django_letsencrypt-6.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_letsencrypt-6.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1a5f35b97145be898feb2502cbe5d001bd0d07d502ccf17d99ed7f27ea671265
MD5 8e2ea68ded6e9f999ed4282df75ef940
BLAKE2b-256 80a4ccf1a3d912a113db23b6823682510c5fa0c0810ceca23e422f38b146d4c5

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