webdev-console-plugins

Oficiální pluginy pro NKS WebDev Console: 16 projektů v .NET 9 pro webové servery, PHP, databáze, certifikáty a nasazení. Každý se vydává samostatně a aplikace ho doinstaluje za běhu.

Náhled webdev-console-plugins

webdev-console-plugins je repozitář oficiálních zásuvných modulů pro NKS WebDev Console, lokální prostředí pro vývoj webů v PHP. Každá služba, kterou aplikace spouští nebo ovládá, tu má vlastní projekt. Projektů je 16 a každý se sestavuje, verzuje a vydává zvlášť.

Oprava Apache nečeká na novou verzi aplikace

Když se změní chování jedné služby, třeba Apache potřebuje při vytíženém startu víc času nebo API Cloudflare začne odpovídat chybou 429, u aplikace v jednom balíku to znamená nový instalátor pro tři systémy. Tady stačí zvýšit verzi v souboru plugin.json dotčeného pluginu. GitHub Actions po pushi poznají, které manifesty se změnily, sestaví jen tyhle pluginy, zabalí je do ZIPu a vydají pod značkou ve tvaru nks.wdc.apache-v1.0.23.

Od 23. dubna 2026 takhle vyšlo 85 vydání jednotlivých pluginů. Jen 2. listopadu dostal Apache čtyři opravy za sebou (1.0.20 až 1.0.23), PostgreSQL dvě, MySQL a Cloudflare po jedné a zbylých dvanáct pluginů zůstalo beze změny. Démon WebDev Console se o nových verzích dozví z katalogové služby, která ke každému ZIPu přidá kontrolní součet SHA-256.

Co který plugin obstarává

  • Webové servery. Apache 2.4 generuje virtuální hosty a před startem ověří konfiguraci. Nginx generuje server bloky a ověřuje konfiguraci, Caddy skládá Caddyfile.
  • PHP, Composer a Node.js. PHP plugin drží vedle sebe verze 5.6 až 8.4, na Windows přes php-cgi.exe, na Linuxu a macOS přes PHP-FPM, a každému webu přidělí verzi, rozšíření a Xdebug. Composer běží pod verzí PHP daného webu. Node.js plugin spustí u webu npm start, npm run dev nebo vlastní příkaz a počká, až server otevře port.
  • Databáze. MySQL 8 a MariaDB si při prvním startu založí datový adresář a konfiguraci ze šablony, heslo uživatele root chrání na Windows přes DPAPI. MySQL má navíc panel pro založení, smazání a export databáze. PostgreSQL pracuje s initdb, pg_ctl a pg_isready.
  • Redis a Mailpit. Redis běží ve výchozím stavu bez ukládání na disk a vypíná se příkazem SHUTDOWN NOSAVE. Mailpit zachytí odchozí poštu webů na portu 1025 a ukáže ji ve webovém rozhraní na portu 8025, takže registraci nebo reset hesla jde vyzkoušet bez skutečného odeslání.
  • Certifikáty a hosts. SSL plugin přes mkcert jednou nainstaluje místní certifikační autoritu a potom vydává certifikáty jednotlivým doménám, i se zástupným jménem typu *.myapp.loc. Hosts plugin zapisuje jen do vlastního ohraničeného bloku a o práva správce žádá, jen když se soubor opravdu mění. Před zápisem drží pět záloh a po změně vyprázdní mezipaměť DNS.
  • Cloudflare. Spouští cloudflared a přes API Cloudflare směruje DNS záznamy na tunel. Od verze 1.0.5 opakuje požadavky, které skončí vypršením času, chybou 429 nebo 5xx.
  • Nasazení. NksDeploy nasazuje aplikace v Nette bez výpadku přes PHP nástroj nksdeploy a průběh posílá do okna aplikace jako proud událostí NDJSON. LocalRsync publikuje web přes rsync do místního adresáře a slouží jako vzor pro další způsoby nasazení.

Jak se píše vlastní plugin

Plugin je knihovna tříd v .NET 9, která implementuje rozhraní IWdcPlugin ze sady NKS.WebDevConsole.Plugin.SDK. Rozhraní má tři metody: Initialize pro registraci služeb, StartAsync a StopAsync. REST endpointy si plugin registruje sám a démon je vystaví pod /api/plugin/<id>/, včetně ověření, omezení počtu požadavků a přístupového logu. Svou část okna popíše deklarativně a konfigurační soubory skládá ze šablon Scriban.

Do databáze démona plugin přímo nesahá, jen přes kontext, a s ostatními pluginy sdílí jen typy ze SDK. Repozitář k tomu má tři dokumenty: referenci API, schéma manifestu plugin.json a návod, který krok za krokem postaví ukázkový HelloPlugin. Při vývoji se démon nasměruje na pracovní kopii proměnnou NKS_WDC_PLUGINS_DEV_DIR.

Ověřeno sestavením

Snímek nahoře je sestavení všech 16 projektů v konfiguraci Release z 6. listopadu 2026: Windows, .NET SDK 9.0.320, sada Plugin.SDK 0.5.8, celkem 36 sekund.

Výpis příkazu wdc plugins: 16 načtených pluginů s verzemi a stavem
wdc plugins v nainstalované WebDev Console 0.5.8 vypíše všech 16 pluginů ve verzích z repozitáře.

Jednotkové testy v tomhle repozitáři nejsou, zůstaly u démona v hlavním repozitáři aplikace. CI tu kontroluje strukturu projektů a manifestů a sestaví každý plugin zvlášť.

Co zatím chybí

Knihovny pluginů nejsou podepsané, takže jedinou kontrolou pravosti je součet SHA-256 z katalogu. Sada SDK je v GitHub Packages, kde GitHub i u veřejného balíčku vyžaduje token s oprávněním read:packages. CI to obchází tak, že balíček .nupkg stáhne z posledního vydání aplikace. PostgreSQL a oba pluginy pro nasazení repozitář zatím neoznačuje jako stabilní, nasazovací jsou ve verzi 0.1.0.

Komu se hodí

  • Uživateli WebDev Console, který chce opravu jedné služby hned, ne až s příští verzí aplikace.
  • Vývojáři, který potřebuje službu, jaká v nabídce chybí. Komunitní plugin dostane vlastní jmenný prostor místo nks.wdc.*.

Jak začít

Uživatel aplikace nic sestavovat nemusí: pluginy dostane s instalací a novější verze instaluje z katalogu za běhu. Ze zdrojů:

git clone https://github.com/nks-hub/webdev-console-plugins.git
cd webdev-console-plugins
export NUGET_GH_USERNAME=<github-user> NUGET_GH_TOKEN=<token s read:packages>
dotnet restore
dotnet build -c Release

Hotový plugin leží v NKS.WebDevConsole.Plugin.<Jméno>/bin/Release/net9.0/. Potřeba je .NET SDK 9 a démon WebDev Console 0.2.0 nebo novější.

Zdrojový kód

Kód v C# je na GitHubu v repozitáři nks-hub/webdev-console-plugins pod licencí MIT. Hotové ZIPy jednotlivých pluginů jsou v GitHub Releases.

← Všechny reference