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