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.
- {ndev_stack-0.2.0/ndev_stack.egg-info → ndev_stack-0.3.0}/PKG-INFO +65 -6
- ndev_stack-0.2.0/PKG-INFO → ndev_stack-0.3.0/README.md +560 -522
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/__init__.py +1 -1
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/constants.py +1 -0
- ndev_stack-0.3.0/ndev/common/modules/__init__.py +23 -0
- ndev_stack-0.3.0/ndev/common/modules/base.py +251 -0
- ndev_stack-0.3.0/ndev/common/modules/builtin/mailpit/manifest.json +16 -0
- ndev_stack-0.3.0/ndev/common/modules/builtin/mailpit/module.py +291 -0
- ndev_stack-0.3.0/ndev/common/modules/builtin/mongodb/manifest.json +19 -0
- ndev_stack-0.3.0/ndev/common/modules/builtin/mongodb/module.py +275 -0
- ndev_stack-0.3.0/ndev/common/modules/builtin/postgres/manifest.json +15 -0
- ndev_stack-0.3.0/ndev/common/modules/builtin/postgres/module.py +313 -0
- ndev_stack-0.3.0/ndev/common/modules/builtin/redis/manifest.json +15 -0
- ndev_stack-0.3.0/ndev/common/modules/builtin/redis/module.py +312 -0
- ndev_stack-0.3.0/ndev/common/modules/manager.py +214 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/cli.py +9 -0
- ndev_stack-0.3.0/ndev/linux/commands/modules.py +194 -0
- ndev_stack-0.3.0/ndev/linux/commands/mongodb.py +73 -0
- ndev_stack-0.3.0/ndev/linux/commands/postgres.py +72 -0
- ndev_stack-0.3.0/ndev/linux/commands/restart.py +52 -0
- ndev_stack-0.3.0/ndev/linux/commands/start.py +51 -0
- ndev_stack-0.3.0/ndev/linux/commands/status.py +109 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/stop.py +21 -10
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/vhost.py +22 -5
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/upgrade.py +123 -10
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/tui.py +196 -153
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/cli.py +423 -51
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/paths.py +7 -1
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/upgrade.py +118 -14
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/tui.py +191 -164
- ndev_stack-0.2.0/README.md → ndev_stack-0.3.0/ndev_stack.egg-info/PKG-INFO +581 -501
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/SOURCES.txt +14 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/pyproject.toml +4 -3
- ndev_stack-0.2.0/ndev/linux/commands/restart.py +0 -33
- ndev_stack-0.2.0/ndev/linux/commands/start.py +0 -33
- ndev_stack-0.2.0/ndev/linux/commands/status.py +0 -80
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/__main__.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/cli.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/__init__.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/config.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/github.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/logger.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/manifest.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/common/utils.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/__init__.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/chroot/manager.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/chroot/packages.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/chroot/shell.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/available.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/clean.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/ctl.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/current.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/db.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/doctor.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/grok.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/install.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/list.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/logs.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/mailpit.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/reload.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/setup.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/uninstall.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/update.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/upgrade.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/commands/use.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/builder.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/downloader.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/extensions.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/installer.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/resolver.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/php/templates.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/fpm.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/mailpit.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/pma.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/process.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/linux/runtime/sockets.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/main.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/tui.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/__init__.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/commands/__init__.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/__init__.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/db.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/elevate.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/ext.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/fcgi.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/grok.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/logs.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/mailpit.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/mkcert.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/php.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/pma.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/redis_core.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/services.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/setup.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/core/vhost.py +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/templates/vhost.conf.tmpl +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev/win/templates/vhost_ssl.conf.tmpl +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/dependency_links.txt +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/entry_points.txt +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/requires.txt +0 -0
- {ndev_stack-0.2.0 → ndev_stack-0.3.0}/ndev_stack.egg-info/top_level.txt +0 -0
- {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.
|
|
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
|