djaploy 1.2.9__tar.gz → 1.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. {djaploy-1.2.9 → djaploy-1.3.0}/PKG-INFO +2 -2
  2. {djaploy-1.2.9 → djaploy-1.3.0}/README.md +1 -1
  3. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/config.py +1 -0
  4. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/infra/djaploy_hooks.py +5 -0
  5. djaploy-1.3.0/djaploy/version.py +1 -0
  6. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy.egg-info/PKG-INFO +2 -2
  7. {djaploy-1.2.9 → djaploy-1.3.0}/pyproject.toml +1 -1
  8. djaploy-1.2.9/djaploy/version.py +0 -1
  9. {djaploy-1.2.9 → djaploy-1.3.0}/LICENSE +0 -0
  10. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/__init__.py +0 -0
  11. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/app.py +0 -0
  12. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/__init__.py +0 -0
  13. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/borg/__init__.py +0 -0
  14. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/borg/infra/__init__.py +0 -0
  15. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/borg/infra/djaploy_hooks.py +0 -0
  16. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/janitor/__init__.py +0 -0
  17. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/janitor/apps.py +0 -0
  18. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/janitor/infra/__init__.py +0 -0
  19. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/janitor/infra/commands/createjanitoruser.py +0 -0
  20. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/janitor/infra/djaploy_hooks.py +0 -0
  21. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/nginx/__init__.py +0 -0
  22. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/nginx/apps.py +0 -0
  23. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/nginx/infra/__init__.py +0 -0
  24. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/nginx/infra/djaploy_hooks.py +0 -0
  25. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/rclone/__init__.py +0 -0
  26. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/rclone/apps.py +0 -0
  27. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/rclone/infra/__init__.py +0 -0
  28. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/rclone/infra/djaploy_hooks.py +0 -0
  29. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/sync_certs/__init__.py +0 -0
  30. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/sync_certs/apps.py +0 -0
  31. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/sync_certs/infra/__init__.py +0 -0
  32. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/sync_certs/infra/djaploy_hooks.py +0 -0
  33. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/systemd/__init__.py +0 -0
  34. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/systemd/apps.py +0 -0
  35. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/systemd/infra/__init__.py +0 -0
  36. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/systemd/infra/djaploy_hooks.py +0 -0
  37. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/tailscale/__init__.py +0 -0
  38. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/tailscale/apps.py +0 -0
  39. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/tailscale/infra/__init__.py +0 -0
  40. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/tailscale/infra/djaploy_hooks.py +0 -0
  41. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/versioning/__init__.py +0 -0
  42. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/versioning/apps.py +0 -0
  43. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/versioning/infra/__init__.py +0 -0
  44. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/apps/versioning/infra/djaploy_hooks.py +0 -0
  45. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/artifact.py +0 -0
  46. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/bin/__init__.py +0 -0
  47. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/bin/django_pyinfra.py +0 -0
  48. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/bin/gunicornherder.py +0 -0
  49. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/builtin_hooks.py +0 -0
  50. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/certificates.py +0 -0
  51. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/changelog.py +0 -0
  52. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/commands/__init__.py +0 -0
  53. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/commands/_utils.py +0 -0
  54. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/commands/activate.py +0 -0
  55. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/commands/configure.py +0 -0
  56. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/commands/deploy.py +0 -0
  57. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/commands/restore.py +0 -0
  58. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/commands/rollback.py +0 -0
  59. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/commands/status.py +0 -0
  60. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/commands/sync_certs.py +0 -0
  61. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/deploy.py +0 -0
  62. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/discovery.py +0 -0
  63. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/hooks.py +0 -0
  64. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/infra/__init__.py +0 -0
  65. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/infra/bluegreen.py +0 -0
  66. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/infra/templates.py +0 -0
  67. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/infra/utils.py +0 -0
  68. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/management/__init__.py +0 -0
  69. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/management/commands/__init__.py +0 -0
  70. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/management/commands/djaploy.py +0 -0
  71. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/management/commands/restore_backup.py +0 -0
  72. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/management/commands/sync_certs.py +0 -0
  73. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/management/commands/update_certs.py +0 -0
  74. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/management/commands/verify.py +0 -0
  75. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/management/utils.py +0 -0
  76. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/notifications.py +0 -0
  77. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/utils.py +0 -0
  78. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy/versioning.py +0 -0
  79. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy.egg-info/SOURCES.txt +0 -0
  80. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy.egg-info/dependency_links.txt +0 -0
  81. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy.egg-info/entry_points.txt +0 -0
  82. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy.egg-info/requires.txt +0 -0
  83. {djaploy-1.2.9 → djaploy-1.3.0}/djaploy.egg-info/top_level.txt +0 -0
  84. {djaploy-1.2.9 → djaploy-1.3.0}/setup.cfg +0 -0
  85. {djaploy-1.2.9 → djaploy-1.3.0}/tests/test_bluegreen.py +0 -0
  86. {djaploy-1.2.9 → djaploy-1.3.0}/tests/test_borg.py +0 -0
  87. {djaploy-1.2.9 → djaploy-1.3.0}/tests/test_config.py +0 -0
  88. {djaploy-1.2.9 → djaploy-1.3.0}/tests/test_deploy_scripts.py +0 -0
  89. {djaploy-1.2.9 → djaploy-1.3.0}/tests/test_discovery.py +0 -0
  90. {djaploy-1.2.9 → djaploy-1.3.0}/tests/test_gunicornherder.py +0 -0
  91. {djaploy-1.2.9 → djaploy-1.3.0}/tests/test_hooks.py +0 -0
  92. {djaploy-1.2.9 → djaploy-1.3.0}/tests/test_versioning.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: djaploy
3
- Version: 1.2.9
3
+ Version: 1.3.0
4
4
  Summary: Modular Django deployment system based on pyinfra
5
5
  Author-email: Johanna Mae Dimayuga <johanna@techco.fi>
6
6
  License: MIT License
@@ -204,7 +204,7 @@ All deployment configuration lives on `djaploy.config.HostConfig`. Commonly used
204
204
  | `shared_resources` | — | Extra paths symlinked from `shared/` |
205
205
  | `db_dir` | — | External database directory template |
206
206
  | `gunicorn_conf` | — | `workers`, `timeout`, `umask`, `wsgi_module`, `health_check_*` |
207
- | `nginx_conf` | — | `server_name`, `listen`, `client_max_body_size`, `custom` |
207
+ | `nginx_conf` | — | `server_name`, `listen`, `client_max_body_size`, `static_path`, `media_path`, `custom` |
208
208
  | `core_conf` | — | `poetry_no_root`, `exclude_groups`, `poetry_lock`, `databases` |
209
209
  | `versioning_conf` / `notifications_conf` | — | See [Release Notifications & Versioning](#release-notifications--versioning) |
210
210
  | `backup` / `borg_backup` | — | `BackupConfig` / `BorgBackupConfig` |
@@ -142,7 +142,7 @@ All deployment configuration lives on `djaploy.config.HostConfig`. Commonly used
142
142
  | `shared_resources` | — | Extra paths symlinked from `shared/` |
143
143
  | `db_dir` | — | External database directory template |
144
144
  | `gunicorn_conf` | — | `workers`, `timeout`, `umask`, `wsgi_module`, `health_check_*` |
145
- | `nginx_conf` | — | `server_name`, `listen`, `client_max_body_size`, `custom` |
145
+ | `nginx_conf` | — | `server_name`, `listen`, `client_max_body_size`, `static_path`, `media_path`, `custom` |
146
146
  | `core_conf` | — | `poetry_no_root`, `exclude_groups`, `poetry_lock`, `databases` |
147
147
  | `versioning_conf` / `notifications_conf` | — | See [Release Notifications & Versioning](#release-notifications--versioning) |
148
148
  | `backup` / `borg_backup` | — | `BackupConfig` / `BorgBackupConfig` |
@@ -176,6 +176,7 @@ class HostConfig(tuple, metaclass=HostConfigMetaclass):
176
176
  manage_py_path: str = "manage.py" # Relative path to manage.py in the artifact
177
177
  db_dir: Optional[str] = None # External database directory template
178
178
  generate_local_settings: bool = False # Generate local.py with DATABASES, ALLOWED_HOSTS, etc.
179
+ secret_key: Optional[str] = None # Django SECRET_KEY value (e.g. OpSecret) injected into generated local.py
179
180
  shared_resources: Optional[List[str]] = None # Paths to symlink from shared/
180
181
 
181
182
  # Per-module configuration (merged with defaults)
@@ -562,6 +562,11 @@ def generate_local_settings(host_data, artifact_path):
562
562
 
563
563
  lines.append("DEBUG = False\n")
564
564
 
565
+ secret_key = getattr(host_data, "secret_key", None)
566
+ if secret_key:
567
+ # str() resolves an OpSecret to its value; repr safely quotes/escapes it.
568
+ lines.append(f"SECRET_KEY = {str(secret_key)!r}\n")
569
+
565
570
  if is_zero_downtime(host_data) or is_bluegreen(host_data):
566
571
  static_path, media_path = get_static_media_paths(host_data)
567
572
  lines.append(f'STATIC_ROOT = "{static_path}"\n')
@@ -0,0 +1 @@
1
+ __version__ = "1.3.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: djaploy
3
- Version: 1.2.9
3
+ Version: 1.3.0
4
4
  Summary: Modular Django deployment system based on pyinfra
5
5
  Author-email: Johanna Mae Dimayuga <johanna@techco.fi>
6
6
  License: MIT License
@@ -204,7 +204,7 @@ All deployment configuration lives on `djaploy.config.HostConfig`. Commonly used
204
204
  | `shared_resources` | — | Extra paths symlinked from `shared/` |
205
205
  | `db_dir` | — | External database directory template |
206
206
  | `gunicorn_conf` | — | `workers`, `timeout`, `umask`, `wsgi_module`, `health_check_*` |
207
- | `nginx_conf` | — | `server_name`, `listen`, `client_max_body_size`, `custom` |
207
+ | `nginx_conf` | — | `server_name`, `listen`, `client_max_body_size`, `static_path`, `media_path`, `custom` |
208
208
  | `core_conf` | — | `poetry_no_root`, `exclude_groups`, `poetry_lock`, `databases` |
209
209
  | `versioning_conf` / `notifications_conf` | — | See [Release Notifications & Versioning](#release-notifications--versioning) |
210
210
  | `backup` / `borg_backup` | — | `BackupConfig` / `BorgBackupConfig` |
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "djaploy"
3
- version = "1.2.9"
3
+ version = "1.3.0"
4
4
  description = "Modular Django deployment system based on pyinfra"
5
5
  authors = [
6
6
  {name = "Johanna Mae Dimayuga", email = "johanna@techco.fi"}
@@ -1 +0,0 @@
1
- __version__ = "1.2.9"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes