ndev-stack 0.3.2__tar.gz → 0.3.3__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 (102) hide show
  1. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/PKG-INFO +1 -1
  2. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/__init__.py +1 -1
  3. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/setup.py +56 -22
  4. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev_stack.egg-info/PKG-INFO +1 -1
  5. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/pyproject.toml +1 -1
  6. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/README.md +0 -0
  7. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/__main__.py +0 -0
  8. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/cli.py +0 -0
  9. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/__init__.py +0 -0
  10. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/config.py +0 -0
  11. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/constants.py +0 -0
  12. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/github.py +0 -0
  13. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/logger.py +0 -0
  14. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/manifest.py +0 -0
  15. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/__init__.py +0 -0
  16. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/base.py +0 -0
  17. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/builtin/mailpit/manifest.json +0 -0
  18. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/builtin/mailpit/module.py +0 -0
  19. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/builtin/mongodb/manifest.json +0 -0
  20. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/builtin/mongodb/module.py +0 -0
  21. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/builtin/postgres/manifest.json +0 -0
  22. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/builtin/postgres/module.py +0 -0
  23. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/builtin/redis/manifest.json +0 -0
  24. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/builtin/redis/module.py +0 -0
  25. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/modules/manager.py +0 -0
  26. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/common/utils.py +0 -0
  27. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/__init__.py +0 -0
  28. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/chroot/manager.py +0 -0
  29. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/chroot/packages.py +0 -0
  30. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/chroot/shell.py +0 -0
  31. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/cli.py +0 -0
  32. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/available.py +0 -0
  33. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/clean.py +0 -0
  34. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/ctl.py +0 -0
  35. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/current.py +0 -0
  36. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/db.py +0 -0
  37. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/doctor.py +0 -0
  38. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/grok.py +0 -0
  39. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/install.py +0 -0
  40. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/list.py +0 -0
  41. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/logs.py +0 -0
  42. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/mailpit.py +0 -0
  43. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/modules.py +0 -0
  44. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/mongodb.py +0 -0
  45. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/postgres.py +0 -0
  46. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/reload.py +0 -0
  47. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/restart.py +0 -0
  48. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/setup.py +0 -0
  49. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/start.py +0 -0
  50. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/status.py +0 -0
  51. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/stop.py +0 -0
  52. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/uninstall.py +0 -0
  53. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/update.py +0 -0
  54. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/upgrade.py +0 -0
  55. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/use.py +0 -0
  56. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/commands/vhost.py +0 -0
  57. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/php/builder.py +0 -0
  58. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/php/downloader.py +0 -0
  59. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/php/extensions.py +0 -0
  60. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/php/installer.py +0 -0
  61. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/php/resolver.py +0 -0
  62. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/php/templates.py +0 -0
  63. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/runtime/fpm.py +0 -0
  64. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/runtime/mailpit.py +0 -0
  65. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/runtime/pma.py +0 -0
  66. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/runtime/process.py +0 -0
  67. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/runtime/sockets.py +0 -0
  68. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/runtime/upgrade.py +0 -0
  69. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/linux/tui.py +0 -0
  70. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/main.py +0 -0
  71. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/tui.py +0 -0
  72. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/__init__.py +0 -0
  73. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/bin/shim.exe +0 -0
  74. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/cli.py +0 -0
  75. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/commands/__init__.py +0 -0
  76. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/__init__.py +0 -0
  77. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/db.py +0 -0
  78. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/elevate.py +0 -0
  79. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/ext.py +0 -0
  80. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/fcgi.py +0 -0
  81. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/grok.py +0 -0
  82. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/logs.py +0 -0
  83. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/mailpit.py +0 -0
  84. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/mkcert.py +0 -0
  85. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/paths.py +0 -0
  86. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/php.py +0 -0
  87. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/pma.py +0 -0
  88. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/redis_core.py +0 -0
  89. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/services.py +0 -0
  90. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/shim.py +0 -0
  91. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/upgrade.py +0 -0
  92. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/core/vhost.py +0 -0
  93. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/templates/vhost.conf.tmpl +0 -0
  94. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/templates/vhost_ssl.conf.tmpl +0 -0
  95. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev/win/tui.py +0 -0
  96. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev_stack.egg-info/SOURCES.txt +0 -0
  97. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev_stack.egg-info/dependency_links.txt +0 -0
  98. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev_stack.egg-info/entry_points.txt +0 -0
  99. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev_stack.egg-info/requires.txt +0 -0
  100. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/ndev_stack.egg-info/top_level.txt +0 -0
  101. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/setup.cfg +0 -0
  102. {ndev_stack-0.3.2 → ndev_stack-0.3.3}/tests/test_shim.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ndev-stack
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Cross-platform developer stack manager for PHP, FastCGI/PHP-FPM, MariaDB, Redis, PostgreSQL, MongoDB, Nginx, SSL, and Mailpit on Linux and Windows
5
5
  Author-email: Ankit Karan <ankit.karan99@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/ankitkaran99/ndev
@@ -1,7 +1,7 @@
1
1
  """
2
2
  ndev: Fast, cross-platform PHP developer environment for Windows and Linux.
3
3
  """
4
- __version__ = "0.3.2"
4
+ __version__ = "0.3.3"
5
5
 
6
6
  from . import common as common
7
7
  from .common.logger import logger as logger
@@ -113,7 +113,7 @@ def install_nginx(version: str = DEFAULT_NGINX_VERSION) -> Path:
113
113
 
114
114
 
115
115
  def _include_vhosts_in_main_conf() -> None:
116
- """Add `include ndev-vhosts/*.conf;` inside the http{} block in nginx.conf."""
116
+ """Ensure vhost includes, proxy mapping maps, and fastcgi_params are configured."""
117
117
  # Ensure default fallback vhost exists so Nginx never fails wildcard glob
118
118
  default_conf = paths.NGINX_CONF_D / "_default.conf"
119
119
  if not default_conf.exists():
@@ -127,27 +127,61 @@ def _include_vhosts_in_main_conf() -> None:
127
127
  )
128
128
 
129
129
  conf = paths.NGINX_DIR / "conf" / "nginx.conf"
130
- if not conf.exists():
131
- return
132
- text = conf.read_text(encoding="utf-8", errors="ignore")
133
- include_line = " include ndev-vhosts/*.conf;\n"
134
- if "ndev-vhosts" in text:
135
- return
136
-
137
- http_start = text.find("http {")
138
- if http_start == -1:
139
- return
140
- brace_depth = 0
141
- i = text.find("{", http_start)
142
- for idx in range(i, len(text)):
143
- if text[idx] == "{":
144
- brace_depth += 1
145
- elif text[idx] == "}":
146
- brace_depth -= 1
147
- if brace_depth == 0:
148
- text = text[:idx] + include_line + text[idx:]
149
- break
150
- conf.write_text(text, encoding="utf-8")
130
+ if conf.exists():
131
+ text = conf.read_text(encoding="utf-8", errors="ignore")
132
+ changed = False
133
+
134
+ # Add forwarded header map directives if not already present
135
+ if "$fcgi_host" not in text:
136
+ map_block = (
137
+ "\n # Map forwarded headers from reverse proxies (e.g. ngrok) to FastCGI params\n"
138
+ " map $http_x_forwarded_host $fcgi_host {\n"
139
+ " default $http_x_forwarded_host;\n"
140
+ ' "" $host;\n'
141
+ " }\n\n"
142
+ " map $http_x_forwarded_proto $fcgi_scheme {\n"
143
+ " default $http_x_forwarded_proto;\n"
144
+ ' "" $scheme;\n'
145
+ " }\n\n"
146
+ " map $http_x_forwarded_proto $fcgi_https {\n"
147
+ ' default "on";\n'
148
+ ' "" $https;\n'
149
+ " }\n\n"
150
+ )
151
+ http_start = text.find("http {")
152
+ if http_start != -1:
153
+ brace_pos = text.find("{", http_start)
154
+ text = text[:brace_pos + 1] + map_block + text[brace_pos + 1:]
155
+ changed = True
156
+
157
+ if "ndev-vhosts" not in text:
158
+ include_line = " include ndev-vhosts/*.conf;\n"
159
+ http_start = text.find("http {")
160
+ if http_start != -1:
161
+ brace_depth = 0
162
+ i = text.find("{", http_start)
163
+ for idx in range(i, len(text)):
164
+ if text[idx] == "{":
165
+ brace_depth += 1
166
+ elif text[idx] == "}":
167
+ brace_depth -= 1
168
+ if brace_depth == 0:
169
+ text = text[:idx] + include_line + text[idx:]
170
+ changed = True
171
+ break
172
+
173
+ if changed:
174
+ conf.write_text(text, encoding="utf-8")
175
+
176
+ # Update fastcgi_params to forward $fcgi_host and $fcgi_scheme
177
+ fcgi_params_path = paths.NGINX_DIR / "conf" / "fastcgi_params"
178
+ if fcgi_params_path.exists():
179
+ fcgi_text = fcgi_params_path.read_text(encoding="utf-8", errors="ignore")
180
+ if "HTTP_HOST" not in fcgi_text or "$fcgi_host" not in fcgi_text:
181
+ fcgi_text = fcgi_text.replace("fastcgi_param REQUEST_SCHEME $scheme;", "fastcgi_param REQUEST_SCHEME $fcgi_scheme;")
182
+ fcgi_text = fcgi_text.replace("fastcgi_param HTTPS $https if_not_empty;", "fastcgi_param HTTPS $fcgi_https if_not_empty;")
183
+ fcgi_text = fcgi_text.replace("fastcgi_param SERVER_NAME $server_name;", "fastcgi_param SERVER_NAME $fcgi_host;\nfastcgi_param HTTP_HOST $fcgi_host;")
184
+ fcgi_params_path.write_text(fcgi_text, encoding="utf-8")
151
185
 
152
186
 
153
187
  # ---- MariaDB ------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ndev-stack
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Cross-platform developer stack manager for PHP, FastCGI/PHP-FPM, MariaDB, Redis, PostgreSQL, MongoDB, Nginx, SSL, and Mailpit on Linux and Windows
5
5
  Author-email: Ankit Karan <ankit.karan99@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/ankitkaran99/ndev
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ndev-stack"
7
- version = "0.3.2"
7
+ version = "0.3.3"
8
8
  description = "Cross-platform developer stack manager for PHP, FastCGI/PHP-FPM, MariaDB, Redis, PostgreSQL, MongoDB, Nginx, SSL, and Mailpit on Linux and Windows"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
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