POJDE是一個分佈式的多租戶開發環境,具有網絡訪問所有組件的訪問。
它努力成為...
使用POJDE,您可以從任何帶有瀏覽器的設備開發!
要安裝POJDE的管理工具pojdectl ,請運行以下內容:
$ curl https://raw.githubusercontent.com/pojntfx/pojde/main/bin/pojdectl | bash -s -- upgrade-pojdectl在Linux,MacOS和Windows(WSL2)上工作。現在,繼續使用以創建您的第一個實例。
我創建了一個簡短的YouTube視頻,可以指導您完成整個過程:
如果您喜歡書面形式的說明,請繼續閱讀。
POJDE支持在主機上運行許多隔離實例,主機可以是您的本地計算機,雲服務器甚至Raspberry Pi。在繼續下一步之前,請在希望運行實例的主機上安裝Docker或Podman。請注意:
要創建您的第一個實例,請使用pojdectl apply :
$ pojdectl apply my-first-instance 5000 # Append `-n root@your-ip:ssh-port` to create the instance on a remote host instead現在按照說明進行操作。 pojdectl apply將要求您將CA證書下載到您的系統中,在創建第一個實例時應執行此操作;未來的實例將共享此證書。您還可以使用pojdectl get-ca-cert在任何稍後的任何點獲得證書。
要信任CA證書,請遵循我們為您創建的視頻:
請注意,您必須選擇以前在步驟中下載的CA證書,而不是下載視頻中所述的證書。
這樣做後,通過使用pojdectl list列出實例來確認一切順利:
$ pojdectl list # Append `-n root@your-ip:ssh-port` to list the instances on a remote host instead
NAME STATUS PORTS
my-first-instance running 5000-5005如您所見,我們的第一個實例( my-first-instance )正在運行,並且已將端口暴露於5000到5005 。當我們運行pojdectl apply時,已選擇此端口範圍。
現在,您可以訪問已啟用的服務(如果您部署到遠程主機,則用遠程主機的IP或域替換localhost ):
| 圖示 | 服務 | 地址 | 描述 |
|---|---|---|---|
| jupyterlab | https:// localhost:5004/ | 互動開發環境 |
如果您無法從localhost之外訪問服務,請確保打開防火牆上的端口。
此外,還有一個在端口5005上運行的SSH服務器,您可以使用pojdectl forward從實例向前端口:
$ pojdectl forward local my-first-instance 127.0.0.1:4200:127.0.0.1:1234 127.0.0.1:4201:127.0.0.1:1235 # Append `-n root@your-ip:ssh-port` to also forward from the remote host to the local host例如,在實例中將遠程端口1234轉發至本地端口4200 ,將遠程端口1235轉發到本地端口4201 。
您也可以將端口轉發到實例:
$ pojdectl forward remote my-first-instance 127.0.0.1:6969:127.0.0.1:6969 # Append `-n root@your-ip:ssh-port` to also forward from the local host to the remote host就是這樣!我們希望您喜歡使用Pojde。請確保還要查看更新和常見問題部分,以使您的POJDE設置保持最新。
pojde基於最小的基礎圖像;在運行pojdectl apply時,可以通過啟用以下任何模塊來添加其他功能:
| 圖示 | 姓名 | 描述 |
|---|---|---|
| C/C ++ | GCC,GDB,CMAKE,C/C ++ VSCODE擴展和C ++ Jupyter內核 | |
| 去 | GO,Tinygo,Go/tinygo vscode擴展和Go Jupyter內核 | |
| Python | Python,PIP,Python Vscode擴展和Python Jupyter內核 | |
| 銹 | 銹,貨物,銹Vscode擴展和生鏽的jupyter內核 | |
| JavaScript | 節點,JavaScript/Typescript VScode擴展名和JavaScript Jupyter內核 | |
| 紅寶石 | Ruby,Ruby Vscode Extensions和Ruby Jupyter內核 | |
| C# | mono,.net,powershell,c#vscode擴展和c#/f#/powershell jupyter內核 | |
| 爪哇 | Java,Maven,Gradle,Java Vscode擴展和Java Jupyter內核 | |
| r | R,R VSCODE擴展和R Jupyter內核 | |
| SQL | SQLITE,MARIADB,PostgreSQL,SQL VSCODE擴展和SQL Jupyter內核 | |
| bash | bash,bash vscode Extensions和bash jupyter內核 |
kubectl , helm , k9s , skaffold , k3d和更多DevOps工具pandoc , plantuml , gnuplot ,媒體,辦公室,PDF和Markdown/latex支持VSCODEtmux , jq , htop等。nmap , iperf3等。lynx , links , aerc等。ffmpeg ,Handbrake, youtube-dl等。 $ pojdectl --help
pojdectl is the management tool for pojde.
Global Flags:
[-n]ode < user@host:port > Remote host to execute on.
If not specified, execute locally.
Modification Commands:
apply < name > < startPort > Create or upgrade an instance.
[-f]orce Skip confirmation prompts.
[-u]pgrade Pull latest image.
[-r]ecreate Re-create the container.
[-i]solate Block Docker daemon access.
[-p]rivileged Run in privileged mode.
remove [name...] Remove instances(s).
[-f]orce Skip confirmation prompts.
[-c]ustomization Remove customizations.
[-p]references Remove preferences.
[-s]ecurity Remove CA.
[-u]ser data Remove user data.
[-t]ransfer Remove transfer data.
[-d]eb cache Remove .deb cache.
[-a]ll Remove everything.
list List all instances.
Lifecycle Commands:
start [name...] Start instance(s).
stop [name...] Stop instance(s).
restart [name...] Restart instance(s).
Utility Commands:
logs < name > Get the logs of an instance.
enter < name > Get a shell in an instance.
forward < name > < local | remote > [lhost:lport:rhost:rport...] Forward port(s) to or from an instance.
Miscellaneous Commands:
upgrade-pojdectl Upgrade this tool.
get-ca-cert [-p]rint Get the CA cert.
reset-ca [-f]orce Reset the CA.
For more information, please visit https://github.com/pojntfx/pojde#Usage.為了做出貢獻,請使用github流並遵循我們的行為準則。
要在本地構建並啟動POJDE的開發版本,請運行以下內容:
$ git clone https://github.com/pojntfx/pojde.git
$ cd pojde
$ make build
$ ./bin/pojdectl apply my-first-instance 5000 -f -r現在,您應該在http:// localhost:5000/ta http:// localhost:5004/(請參閱訪問服務)上的POJDE服務。每當您更改源代碼中的某些內容時,運行make build和./bin/pojdectl apply my-first-instance 5000 -f -r ,它將重新編譯並重新啟動服務。
有任何問題或需要幫助嗎?在矩陣上與我們聊天!
pojdectl pojdectl包括一個自更工具,您可以通過運行以下內容來調用該工具:
$ pojdectl upgrade-pojdectl更新實例(獲取最新的POJDE版本)和更改實例的配置均使用pojdectl apply命令完成。
例如,要更新在用法中創建的實例或更改其配置,安裝的模塊等,請運行以下內容並按照說明:
$ pojdectl apply my-first-instance 5000 -f -r -u # Append `-n root@your-ip:ssh-port` to upgrade the instance on a remote host instead有多種更新和配置策略可用;有關更多選項,請參見參考。
已知以下組合可行:
在基於系統D的主機上使用Docker和Cgroups V2一起使用,因為使用此配置尚未正確支持容器內部的SystemD。如果您使用的是cgroups v2,即如果您在fedora上,請使用Podman。另外,您也可以切換到Cgroups V1並使用Docker:
$ sudo grubby --update-kernel=ALL --args= " systemd.unified_cgroup_hierarchy=0 "
$ sudo reboot多虧了pojde-docker-env腳本,支持一個實例內的碼頭卷:
pojntfx@5d084b2bf2ca: ~ $ pojde-docker-env # Run this in the instance, using i.e. `ttyd` or code-server's terminal
pojntfx@5d084b2bf2ca:/var/lib/docker/volumes/pojde-my-first-instance-home-user/_data/pojntfx$ # You can now use i.e. `docker run -v` in this shell!您還可以通過指定-i標誌來完全阻止Docker守護程序訪問;有關更多信息,請參見參考。
有很多可用於傳輸文件的選項;您可以使用scp ,另一種“傳統”選項,也可以使用以下內置選項之一。
自動創建傳輸文件夾,以便在主機系統和實例之間更輕鬆地交換數據;該文件夾在實例中將其安裝到~/Documents中,並在主機系統上的~/Documents/pojde/your-instance-name可用。
Webwormhole(可作為ww )都在每個實例中都已預安裝;它允許您使用WEBRTC在全球交換文件。在Webwormhole github repo上找到更多信息。
Pojde(C)2021 Felicitas Pojtinger和貢獻者
SPDX-LICENSE-IDIFIER:AGPL-3.0