Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Punktero DevboxNew to Visual Studio Code? Get it now.
Punktero Devbox

Punktero Devbox

Punktero

| (0) | Free
Správa devbox instancí: otevírání, kontejnery, sync dat z produkce
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Punktero Devbox

Správa devbox instancí přímo z VS Code: seznam instancí, jejich porty a stav kontejnerů, otevírání do nového okna, ovládání kontejnerů, sync dat z produkce a zakládání nových instancí.

Proč extensionKind: ["ui"]

Sync sahá na produkci i na devbox, a na produkci vidí jen notebook. Kdyby extension běžela v remote extension hostu (na devboxu nebo v devcontaineru), na produkci by se nedostala a narazila by i na guard not-in-container. Deklarace "extensionKind": ["ui"] zajistí, že extension běží vždy na notebooku — i když je okno připojené do devboxu.

Co umí

Akce Jak běží
Otevřít v devcontaineru nové okno na vscode-remote://dev-container+…@ssh-remote+<host>/<workspaceFolder>
Otevřít složku (Remote-SSH) nové okno na vscode-remote://ssh-remote+<host>/…; jediná volba u nenakonfigurované instance
Otevřít web http://localhost:<DEVBOX_WEB_PORT> v prohlížeči; nejdřív ověří, že forward vůbec existuje
Spustit / Zastavit / Restartovat docker start\|stop\|restart kontejnerů compose projektu — nerekreuje je, takže devcontainer features zůstanou
Rebuild kontejneru terminál: devcontainer up --workspace-folder . --remove-existing-container
Logy služby terminál: docker logs -f --tail 200
Nastavit porty terminál: make devcontainer (interaktivní, potřebuje TTY)
Sync dat z produkce withProgress + log v OutputChannelu „Devbox"
Nová instance… tři režimy, viz níže
Smazat instanci… kontejnery + volumes + images + složka; jen z kontextového menu, po soupisu a opsání jména. Root-owned soubory ve storage/ (zapsané kontejnery) uklidí kontejner běžící jako root

Zakládání instancí

Režim Co udělá
Podle vzoru naklonuje repo vybrané instance (její remote + větev), převezme její .env a generate-config.sh --yes najde volný blok portů
Z URL repozitáře nový projekt: naklonuje zadané URL (volitelně větev). Porty se nastaví, jen pokud si repo nese .devcontainer/generate-config.sh
Jen prázdná složka mkdir na devboxu, repo i konfiguraci si pořešíš sám

Data se v žádném režimu nekopírují — dotáhnou se až syncem, takže se nikam nepřenáší ~6 GB storage/app.

Aktuální instance

Instance, ve které stojí tohle okno, je ve stromu zvýrazněná a rozbalená. Pozná se z URI otevřené složky: v Remote-SSH okně je to rovnou cesta, v okně devcontaineru se vytáhne hostPath z hex authority. Podsložka instance se počítá jako ta instance; muj-projekt nechytne muj-projekt-2.

Proč „Otevřít web" nejdřív zkouší port

Web port se na devboxu nepublikuje — forward staví okno VS Code připojené do instance a končí na localhostu notebooku. Když instanci nemá otevřenou žádné okno, adresa by v prohlížeči jen spadla. Extension proto port napřed zkusí a nabídne otevření instance v devcontaineru.

Extension nikdy nesahá na docker compose (zahodilo by devcontainer features) ani nedělá ssh -O exit (shodilo by i připojení VS Code).

Konfigurace

Nastavení Výchozí K čemu
punkteroDevbox.host devbox ssh cíl devboxu
punkteroDevbox.projectsRoot ~/projects kde na devboxu leží instance
punkteroDevbox.refreshInterval 30 obnovování stavu (s), 0 vypne
punkteroDevbox.syncProfiles [] volitelné přepisy hodnot z Makefilu

Odkud se berou hodnoty pro sync

Primárně z Makefile té instance na devboxu (SERVER, SERVER_DIR, DB_NAME, DB_USER, DEVBOX_DB_PWD) — jeden zdroj pravdy s repem a nulová konfigurace. Profil v syncProfiles je umí přepsat; první profil, jehož match (glob) sedí na jméno instance, vyhrává:

"punkteroDevbox.syncProfiles": [
    { "match": "muj-projekt*", "server": "root@192.0.2.10", "dbName": "muj_projekt" }
]

Heslo k produkční databázi žije v SecretStorage pod klíčem server::databáze — tedy jednou pro všechny instance téhož projektu. Když uložené není a v Makefilu instance ho najde, extension nabídne převzetí. Z Makefilu ho pak stojí za to smazat, je v gitu.

Sám skript sync-devbox.sh se stahuje z .devcontainer/ té instance, kterou synchronizuješ — každá instance tak jede svou verzi. drop-all-tables.sql si extension nese vlastní v resources/, takže nezávisí na ničím osobním repu.

Kroky navíc oproti make sync-devbox

  • chmod-data — make sync-devbox ho má jako prerekvizitu, ale v sync-devbox.sh není. Extension ho dělá jako krok 0; vypne se profilem "chmodData": false.
  • volba portu tunelu — skript má DEVBOX_TUNNEL_PORT napevno na 2222, takže dva souběžné syncy by se o něj poprvaly. Extension vybere volný port z rozsahu 2222–2321 a předá ho v prostředí.

Vývoj

npm install
npm run compile     # nebo: npm run watch
npm test            # unit testy čisté logiky (node --test)

Pak F5 → Extension Development Host; F5 vyžaduje, aby ve VS Code byla otevřená přímo složka vscode-devbox (kvůli .vscode/launch.json a tasku npm: compile).

Instalace do běžného VS Code:

make package && code --install-extension punktero-devbox-0.1.0.vsix --force

Po instalaci Developer: Reload Window. Panel má vlastní ikonu v Activity Baru (Devbox), ne sekci v Exploreru — ten bývá přeplněný a pořadí sekcí v něm nastavit nejde (contributes.views nemá order).

Poznámka k terminálovým akcím

Terminál vzniká vždy na straně okna, ne extension hostu. Z lokálního okna se příkaz zabalí do ssh -t <host>; když je okno už připojené přes Remote-SSH do téhož devboxu, pustí se rovnou. V okně připojeném do devcontaineru terminál běží uvnitř kontejneru, kde alias devbox nemusí existovat — takové akce pouštěj z lokálního okna.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft