Pojde ist eine verteilte Umgebung mit mehreren Mandanten mit Webzugriff auf alle Komponenten.
Es strebt nach ...
Mit Pojde können Sie sich mit einem Browser von jedem Gerät entwickeln!
Um pojdectl , das Management -Tool für Pojde, zu installieren, führen Sie Folgendes aus:
$ curl https://raw.githubusercontent.com/pojntfx/pojde/main/bin/pojdectl | bash -s -- upgrade-pojdectlFunktioniert unter Linux, MacOS und Windows (WSL2). Fahren Sie nun fort, um Ihre erste Instanz zu erstellen.
Ich habe ein kurzes YouTube -Video erstellt, das Sie durch den Prozess führt:
Wenn Sie die Anweisungen in schriftlicher Form bevorzugen, lesen Sie weiter.
Pojde unterstützt das Ausführen von vielen isolierten Instanzen auf einem Host, bei dem der Host Ihr lokaler Computer, ein Cloud -Server oder sogar ein Raspberry Pi sein kann. Bevor Sie mit dem nächsten Schritt fortfahren, installieren Sie bitte entweder Docker oder Podman auf dem Host, auf dem Sie die Instanz ausführen möchten. Bitte beachten Sie:
Um Ihre erste Instanz zu erstellen, verwenden Sie pojdectl apply :
$ pojdectl apply my-first-instance 5000 # Append `-n root@your-ip:ssh-port` to create the instance on a remote host instead Folgen Sie nun den Anweisungen. pojdectl apply werden Sie auffordern, das CA -Zertifikat in Ihr System herunterzuladen, das Sie beim Erstellen der ersten Instanz tun sollten. Zukünftige Fälle werden dieses Zertifikat teilen. Sie können das Zertifikat zu jedem späteren Zeitpunkt mit pojdectl get-ca-cert erhalten.
Um dem CA -Zertifikat zu vertrauen, befolgen Sie die Videos, die wir für Sie erstellt haben:
Beachten Sie, dass Sie das CA -Zertifikat auswählen müssen, das Sie im Schritt zuvor heruntergeladen haben , und das Zertifikat nicht wie in den Videos beschrieben herunterladen.
Sobald Sie dies getan haben, bestätigen Sie, dass alles gut gelaufen ist, indem Sie Ihre Instanzen mit pojdectl list auflisten:
$ 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 Wie Sie sehen können, wird unsere erste Instanz ( my-first-instance ) ausgeführt und hat die Ports 5000 bis 5005 freigelegt. Dieser Portbereich wurde ausgewählt, als wir oben pojdectl apply beantragten.
Sie können jetzt auf die von Ihnen aktivierten Dienste zugreifen (ersetzen Sie localhost durch die IP oder Domain Ihres Remote -Hosts, wenn Sie für einen Remote -Host bereitgestellt werden):
| Symbol | Service | Adresse | Beschreibung |
|---|---|---|---|
| Jupyterlab | https: // localhost: 5004/ | Interaktive Entwicklungsumgebung |
Wenn Sie nicht auf die Dienste von Outside localhost zugreifen können, öffnen Sie die Ports auf Ihrer Firewall.
Darüber hinaus wird ein SSH -Server auf Port 5005 ausgeführt, mit dem Sie Ports mit pojdectl forward -Anschlüsse weiterleiten können:
$ 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 Dies leitet beispielsweise den Remote -Port 1234 in der Instanz an den lokalen Port 4200 und den Remote -Port 1235 an den lokalen Port 4201 weiter.
Sie können auch Ports an die Instanz weiterleiten:
$ 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 hostDas war's! Wir hoffen, dass Sie gerne Pojde benutzen. Bitte lesen Sie auch die Updates und FAQ -Bereiche, um Ihr Pojde -Setup auf dem neuesten Stand zu halten.
Pojde basiert auf einem minimalen Basisbild; Zusätzliche Funktionen können hinzugefügt werden, indem die folgenden Module beim Ausführen pojdectl apply :
| Symbol | Name | Beschreibung |
|---|---|---|
| C/C ++ | GCC, GDB, CMAKE, C/C ++ VSCODE -Erweiterungen und C ++ Jupyter -Kernel | |
| Gehen | Go, Tinygo, The Go/Tinygo VSCODE Extensions und Go Jupyter Kernel | |
| Python | Python, Pip, Python Vscode Extendions und Python Jupyter Kernel | |
| Rost | Rost, Fracht, Rost Vscode Extensions und Rost Jupyter -Kernel | |
| JavaScript | Knoten, JavaScript/TypeScript -VSCODE -Erweiterungen und JavaScript Jupyter -Kernel | |
| Rubin | Ruby, der Ruby Vscode -Erweiterungen und der Ruby Jupyter -Kernel | |
| C# | Mono, .net, PowerShell, C#VSCODE -Erweiterungen und C#/f#/PowerShell Jupyter Kernel | |
| Java | Java, Maven, Gradle, Java Vscode Extendions und Java Jupyter Kernel | |
| R | R, R VSCODE -Erweiterungen und R Jupyter -Kernel | |
| Sql | SQLite, Mariadb, Postgresql, SQL VSCODE -Erweiterungen und SQL Jupyter -Kernel | |
| Verprügeln | Bash, die Bash Vscode -Erweiterungen und Bash Jupyter -Kernel |
kubectl , helm , k9s , skaffold , k3d und weitere DevOps -Toolspandoc , plantuml , gnuplot , Medien, Büro, PDF und Markdown/Latex -Unterstützung für VSCODEtmux , jq , htop usw.nmap , iperf3 usw.lynx , links , aerc usw.ffmpeg , Handbremse, youtube-dl usw. $ 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.Um einen Beitrag zu leisten, verwenden Sie bitte den GitHub -Fluss und befolgen Sie unseren Verhaltenskodex.
Führen Sie Folgendes aus:
$ git clone https://github.com/pojntfx/pojde.git
$ cd pojde
$ make build
$ ./bin/pojdectl apply my-first-instance 5000 -f -r Sie sollten jetzt die Pojde -Dienste auf http: // localhost: 5000/über http: // localhost: 5004/(siehe Zugriff auf die Dienste) ausführen lassen. Wann immer Sie etwas im Quellcode ändern, machen Sie make build und ./bin/pojdectl apply my-first-instance 5000 -f -r .
Haben Sie Fragen oder brauchen Sie Hilfe? Chatten Sie mit uns auf Matrix!
pojdectl pojdectl enthält ein Selfdate-Tool, das Sie durch Ausführen Folgendes aufrufen können:
$ pojdectl upgrade-pojdectl Aktualisieren einer Instanz (um die neueste Pojde -Version zu erhalten) und die Änderung der Konfiguration einer Instanz werden beide mit dem Befehl pojdectl apply durchgeführt.
Um beispielsweise die in der Verwendung erstellte Instanz zu aktualisieren oder ihre Konfiguration, installierte Module usw. zu ändern, führen Sie Folgendes aus und befolgen Sie die Anweisungen:
$ pojdectl apply my-first-instance 5000 -f -r -u # Append `-n root@your-ip:ssh-port` to upgrade the instance on a remote host insteadEs stehen mehrere Aktualisierungs- und Konfigurationsstrategien zur Verfügung. Weitere Optionen finden Sie unter Referenz.
Es ist bekannt, dass die folgenden Kombinationen funktionieren:
Die Verwendung von Docker und CGroups V2 auf einem systemd-basierten Host funktioniert nicht, da das Ausführen von Systemd im Container mit dieser Konfiguration noch nicht ordnungsgemäß unterstützt wird. Wenn Sie CGroups v2 verwenden, dh wenn Sie auf Fedora sind, verwenden Sie bitte Podman. Alternativ können Sie auch zu CGroups V1 wechseln und Docker verwenden:
$ sudo grubby --update-kernel=ALL --args= " systemd.unified_cgroup_hierarchy=0 "
$ sudo reboot Dank des pojde-docker-env Skripts wird die Montage des Docker-Volumens innerhalb einer Instanz unterstützt:
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! Sie können den Zugriff auf den Docker -Daemon auch vollständig blockieren, indem Sie die -i -Flagge angeben. Weitere Informationen finden Sie unter Referenz.
Es stehen viele Optionen zur Verfügung, um Dateien zu übertragen. Sie können beispielsweise scp verwenden, eine andere "traditionelle" Option oder eine der folgenden eingebauten.
Ein Übertragungsordner wird automatisch für einen noch einfacheren Datenaustausch zwischen dem Hostsystem und der Instanz erstellt. Dieser Ordner ist in der Instanz in ~/Documents montiert und unter ~/Documents/pojde/your-instance-name im Hostsystem verfügbar.
WebWormhole (verfügbar als ww ) ist in jeder Instanz vorinstalliert. Sie ermöglichen es Ihnen, Dateien weltweit mit WEBRTC auszutauschen. Erfahren Sie mehr über das WebWormhole Github Repo.
Pojde (C) 2021 Felicitas Pojinger und Mitwirkende
SPDX-Lizenz-Identifikator: AGPL-3.0