ndev-stack 0.2.0__tar.gz → 0.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 (102) hide show
  1. {ndev_stack-0.2.0/ndev_stack.egg-info → ndev_stack-0.3.0}/PKG-INFO +65 -6
  2. ndev_stack-0.2.0/PKG-INFO → ndev_stack-0.3.0/README.md +560 -522
  3. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/__init__.py +1 -1
  4. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/constants.py +1 -0
  5. ndev_stack-0.3.0/ndev/common/modules/__init__.py +23 -0
  6. ndev_stack-0.3.0/ndev/common/modules/base.py +251 -0
  7. ndev_stack-0.3.0/ndev/common/modules/builtin/mailpit/manifest.json +16 -0
  8. ndev_stack-0.3.0/ndev/common/modules/builtin/mailpit/module.py +291 -0
  9. ndev_stack-0.3.0/ndev/common/modules/builtin/mongodb/manifest.json +19 -0
  10. ndev_stack-0.3.0/ndev/common/modules/builtin/mongodb/module.py +275 -0
  11. ndev_stack-0.3.0/ndev/common/modules/builtin/postgres/manifest.json +15 -0
  12. ndev_stack-0.3.0/ndev/common/modules/builtin/postgres/module.py +313 -0
  13. ndev_stack-0.3.0/ndev/common/modules/builtin/redis/manifest.json +15 -0
  14. ndev_stack-0.3.0/ndev/common/modules/builtin/redis/module.py +312 -0
  15. ndev_stack-0.3.0/ndev/common/modules/manager.py +214 -0
  16. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/cli.py +9 -0
  17. ndev_stack-0.3.0/ndev/linux/commands/modules.py +194 -0
  18. ndev_stack-0.3.0/ndev/linux/commands/mongodb.py +73 -0
  19. ndev_stack-0.3.0/ndev/linux/commands/postgres.py +72 -0
  20. ndev_stack-0.3.0/ndev/linux/commands/restart.py +52 -0
  21. ndev_stack-0.3.0/ndev/linux/commands/start.py +51 -0
  22. ndev_stack-0.3.0/ndev/linux/commands/status.py +109 -0
  23. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/stop.py +21 -10
  24. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/vhost.py +22 -5
  25. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/upgrade.py +123 -10
  26. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/tui.py +196 -153
  27. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/cli.py +423 -51
  28. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/paths.py +7 -1
  29. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/upgrade.py +118 -14
  30. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/tui.py +191 -164
  31. ndev_stack-0.2.0/README.md → ndev_stack-0.3.0/ndev_stack.egg-info/PKG-INFO +581 -501
  32. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/SOURCES.txt +14 -0
  33. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/pyproject.toml +4 -3
  34. ndev_stack-0.2.0/ndev/linux/commands/restart.py +0 -33
  35. ndev_stack-0.2.0/ndev/linux/commands/start.py +0 -33
  36. ndev_stack-0.2.0/ndev/linux/commands/status.py +0 -80
  37. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/__main__.py +0 -0
  38. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/cli.py +0 -0
  39. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/__init__.py +0 -0
  40. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/config.py +0 -0
  41. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/github.py +0 -0
  42. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/logger.py +0 -0
  43. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/manifest.py +0 -0
  44. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/utils.py +0 -0
  45. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/__init__.py +0 -0
  46. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/chroot/manager.py +0 -0
  47. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/chroot/packages.py +0 -0
  48. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/chroot/shell.py +0 -0
  49. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/available.py +0 -0
  50. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/clean.py +0 -0
  51. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/ctl.py +0 -0
  52. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/current.py +0 -0
  53. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/db.py +0 -0
  54. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/doctor.py +0 -0
  55. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/grok.py +0 -0
  56. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/install.py +0 -0
  57. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/list.py +0 -0
  58. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/logs.py +0 -0
  59. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/mailpit.py +0 -0
  60. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/reload.py +0 -0
  61. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/setup.py +0 -0
  62. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/uninstall.py +0 -0
  63. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/update.py +0 -0
  64. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/upgrade.py +0 -0
  65. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/use.py +0 -0
  66. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/builder.py +0 -0
  67. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/downloader.py +0 -0
  68. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/extensions.py +0 -0
  69. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/installer.py +0 -0
  70. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/resolver.py +0 -0
  71. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/templates.py +0 -0
  72. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/fpm.py +0 -0
  73. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/mailpit.py +0 -0
  74. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/pma.py +0 -0
  75. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/process.py +0 -0
  76. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/sockets.py +0 -0
  77. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/main.py +0 -0
  78. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/tui.py +0 -0
  79. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/__init__.py +0 -0
  80. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/commands/__init__.py +0 -0
  81. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/__init__.py +0 -0
  82. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/db.py +0 -0
  83. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/elevate.py +0 -0
  84. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/ext.py +0 -0
  85. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/fcgi.py +0 -0
  86. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/grok.py +0 -0
  87. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/logs.py +0 -0
  88. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/mailpit.py +0 -0
  89. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/mkcert.py +0 -0
  90. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/php.py +0 -0
  91. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/pma.py +0 -0
  92. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/redis_core.py +0 -0
  93. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/services.py +0 -0
  94. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/setup.py +0 -0
  95. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/vhost.py +0 -0
  96. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/templates/vhost.conf.tmpl +0 -0
  97. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/templates/vhost_ssl.conf.tmpl +0 -0
  98. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/dependency_links.txt +0 -0
  99. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/entry_points.txt +0 -0
  100. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/requires.txt +0 -0
  101. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/top_level.txt +0 -0
  102. {ndev_stack-0.2.0 → ndev_stack-0.3.0}/setup.cfg +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ndev-stack
3
- Version: 0.2.0
4
- Summary: Cross-platform developer stack manager for PHP, FastCGI/PHP-FPM, MariaDB, Redis, Nginx, SSL, and Mailpit on Linux and Windows
3
+ Version: 0.3.0
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
7
7
  Project-URL: Repository, https://github.com/ankitkaran99/ndev
@@ -236,6 +236,11 @@ ndev ui
236
236
  | `ndev pma` | Manage phpMyAdmin background service (`http://127.0.0.1:8080`) |
237
237
  | `ndev ext` | Manage PECL extensions (`list`, `install`, `enable`, `disable`) |
238
238
  | `ndev grok` | Public HTTP tunneling for local virtual hosts via ngrok |
239
+ | `ndev postgres` | Manage PostgreSQL server (`install`, `start`, `stop`, `restart`, `status`) |
240
+ | `ndev mongodb` | Manage MongoDB server (`install`, `start`, `stop`, `restart`, `status`) |
241
+ | `ndev module list` | List all dynamic modules and status in `<userdir>/.ndev/modules/` |
242
+ | `ndev module <action>`| Manage dynamic module lifecycle (`install`, `start`, `stop`, `restart`, `status`, `open`) |
243
+ | `ndev module create` | Scaffold a new dynamic module with manifest and template code |
239
244
  | `ndev upgrade` | Check for and upgrade stack components (Nginx, MariaDB, Redis, PMA, Mailpit, mkcert, Composer) |
240
245
  | `ndev upgrade --check` | Check component versions against upstream releases without upgrading |
241
246
  | `ndev shell` | Interactive developer subshell pre-loaded with PHP/Composer/MySQL/Redis on PATH |
@@ -256,10 +261,6 @@ ndev ui
256
261
  # Aliases: ndev tui, ndev dashboard
257
262
  ```
258
263
 
259
- <p align="center">
260
- <img src="ui.png" alt="ndev TUI Dashboard" width="90%">
261
- </p>
262
-
263
264
  - **Live Status Grid**: Monitor real-time status, PIDs, and active ports for Nginx, MariaDB, Redis, PMA, Mailpit, and PHP worker pools.
264
265
  - **One-Click Component Setup & Upgrades**: Install uninstalled services (**Redis**, **PMA**, **Mailpit**, **Nginx**, **MariaDB**, **mkcert**, **Composer**) or upgrade existing components with single-click UI actions.
265
266
  - **Interactive Virtual Host Manager**: Create new virtual hosts (`+ Create VHost`) with automatic local SSL (`mkcert`) and an integrated folder-picker dialog.
@@ -500,6 +501,64 @@ ndev clean
500
501
 
501
502
  ---
502
503
 
504
+ ### 10. Extensible Dynamic Modules (`ndev module`)
505
+
506
+ `ndev` features a modular architecture where core services (`nginx`, `mariadb`, `php`, `phpmyadmin`, `ngrok`) are augmented with dynamic modules (`mailpit`, `redis`, `postgres`, `mongodb`, and custom community modules) located in `<userdir>/.ndev/modules/<module_name>/`.
507
+
508
+ #### Module Commands:
509
+ ```bash
510
+ # List all discovered modules and running status
511
+ ndev module list
512
+
513
+ # Manage module lifecycle
514
+ ndev module install mailpit
515
+ ndev module start redis
516
+ ndev module status postgres
517
+ ndev module status mongodb
518
+ ndev module open mailpit # Opens web UI if available
519
+ ndev module restart redis
520
+ ndev module stop redis
521
+
522
+ # Direct convenience commands also work seamlessly:
523
+ ndev start mailpit
524
+ ndev stop redis
525
+ ndev postgres start
526
+ ndev postgres status
527
+ ndev mongodb start
528
+ ndev mongodb status
529
+
530
+ # Scaffold a new custom module
531
+ ndev module create my-service --display-name "My Custom Service" --category queue --port 9000
532
+ ```
533
+
534
+ #### Module Structure (`~/.ndev/modules/<name>/`):
535
+ ```text
536
+ ~/.ndev/modules/my-service/
537
+ ├── manifest.json # Module metadata, ports, categories, and web UI definitions
538
+ └── module.py # Python lifecycle handler (is_installed, install, start, stop, restart, status, open_ui)
539
+ ```
540
+
541
+ **Sample `manifest.json`:**
542
+ ```json
543
+ {
544
+ "name": "my-service",
545
+ "display_name": "My Custom Service",
546
+ "version": "1.0.0",
547
+ "description": "Custom queue worker service",
548
+ "category": "queue",
549
+ "ports": [9000],
550
+ "web_ui": "http://127.0.0.1:9000",
551
+ "platforms": ["windows", "linux"],
552
+ "entrypoint": "module.py"
553
+ }
554
+ ```
555
+
556
+ Dynamic modules appear automatically inside the **TUI Dashboard (`ndev ui`)**, where you can start, stop, restart, and open web interfaces with a single click.
557
+
558
+ > 📖 **Looking to build your own module?** See the full [**ndev Module Developer Guide (MODULE_DEV_GUIDE.md)**](MODULE_DEV_GUIDE.md) for step-by-step instructions, manifest schema, and boilerplate templates.
559
+
560
+ ---
561
+
503
562
  ## Configuration Files
504
563
 
505
564
  ### Windows