Pojde est un environnement de développement multi-locataire distribué avec un accès Web à tous les composants.
Il s'efforce d'être ...
Avec Pojde, vous pouvez développer à partir de n'importe quel appareil avec un navigateur!
Pour installer pojdectl , l'outil de gestion de Pojde, exécutez ce qui suit:
$ curl https://raw.githubusercontent.com/pojntfx/pojde/main/bin/pojdectl | bash -s -- upgrade-pojdectlFonctionne sur Linux, MacOS et Windows (WSL2). Maintenant, continuez à utiliser pour créer votre première instance.
J'ai créé une brève vidéo YouTube qui vous guide tout au long du processus:
Si vous préférez les instructions sous forme écrite, continuez à lire.
POJDE prend en charge l'exécution de nombreuses instances isolées sur un hôte, où l'hôte peut être votre machine locale, un serveur cloud ou même un Raspberry Pi. Avant de continuer à l'étape suivante, veuillez installer Docker ou Podman sur l'hôte sur lequel vous souhaitez exécuter l'instance. Veuillez noter:
Pour créer votre première instance, utilisez pojdectl apply :
$ pojdectl apply my-first-instance 5000 # Append `-n root@your-ip:ssh-port` to create the instance on a remote host instead Suivez maintenant les instructions. pojdectl apply vous demandera de télécharger le certificat CA sur votre système, ce que vous devez faire lors de la création de la première instance; Les instances futures partageront ce certificat. Vous pouvez également obtenir le certificat à tout moment ultérieur à l'aide de pojdectl get-ca-cert .
Pour faire confiance au certificat CA, suivez les vidéos que nous avons créées pour vous:
Notez que vous devrez sélectionner le certificat CA que vous avez téléchargé dans l'étape précédente , et non le certificat comme décrit dans les vidéos.
Une fois que vous l'avez fait, confirmez que tout s'est bien passé en répertoriant vos instances avec 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 Comme vous pouvez le voir, notre première instance ( my-first-instance ) est en cours d'exécution et a des ports exposés 5000 à 5005 . Cette plage de port a été sélectionnée lorsque nous avons exécuté pojdectl apply ci-dessus.
Vous pouvez désormais accéder aux services que vous avez activés (remplacer localhost par IP ou domaine de votre hôte distant si vous vous déployez chez un hôte distant):
| Icône | Service | Adresse | Description |
|---|---|---|---|
| Jupyterlab | https: // localhost: 5004 / | Environnement de développement interactif |
Si vous ne pouvez pas accéder aux services à l'extérieur localhost , assurez-vous d'ouvrir les ports sur votre pare-feu.
De plus, il existe un serveur SSH fonctionnant sur le port 5005 que vous pouvez utiliser pour transférer les ports à partir de l'instance avec 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 Ceci, par exemple, transmet le port distant 1234 dans l'instance vers le port local 4200 et le port distote 1235 au port local 4201 .
Vous pouvez également transmettre les ports vers l'instance:
$ 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 hostC'est ça! Nous espérons que vous apprécierez d'utiliser Pojde. Assurez-vous également de consulter les mises à jour et les sections FAQ pour maintenir votre configuration POJDE à jour.
Pojde est basé sur une image de base minimale; Des fonctionnalités supplémentaires peuvent être ajoutées en activant l'un des modules suivants lors de l'exécution pojdectl apply .
| Icône | Nom | Description |
|---|---|---|
| C / C ++ | GCC, GDB, CMake, les extensions VScode C / C ++ et le noyau Jupyter C ++ | |
| Aller | Go, Tinygo, les extensions VSCODE GO / TINYGO et GO JUPYTER | |
| Python | Python, Pip, les extensions Vscode Python et le noyau de Jupyter Python | |
| Rouiller | Rouille, cargaison, extensions de rouille Vscode et noyau de jupytre de rouille | |
| Javascrip | Node, les extensions VScode JavaScript / TypeScript et le noyau JavaScript Jupyter | |
| Rubis | Ruby, les extensions Ruby Vscode et le noyau de Jupyter Ruby | |
| C # | Mono, .net, PowerShell, les extensions C # vscode et les noyaux Jupyter C # / F # / PowerShell | |
| Java | Java, Maven, Gradle, les extensions Java Vscode et le noyau Java Jupyter | |
| R | R, les extensions R vscode et le noyau de Jupyter | |
| SQL | SQLITE, MARIADB, POSTRESQL, LES SQL VSCODE Extensions et SQL Jupyter Kernel | |
| Frapper | Bash, les extensions vscode bash et le noyau de jupyter bash |
kubectl , helm , k9s , skaffold , k3d et plus de DevOps Toolspandoc , plantuml , gnuplot , Media, Office, PDF et Markdown / Latex Prise en charge de VSCODtmux , jq , htop , etc.nmap , iperf3 etc.lynx , links , aerc , etc.ffmpeg , frein à main, youtube-dl etc. $ 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.Pour contribuer, veuillez utiliser le flux GitHub et suivre notre code de conduite.
Pour construire et démarrer une version de développement de Pojde localement, exécutez ce qui suit:
$ git clone https://github.com/pojntfx/pojde.git
$ cd pojde
$ make build
$ ./bin/pojdectl apply my-first-instance 5000 -f -r Vous devriez maintenant avoir les services Pojde en cours d'exécution sur http: // localhost: 5000 / via http: // localhost: 5004 / (voir accéder aux services). Chaque fois que vous modifiez quelque chose dans le code source, exécutez make build et ./bin/pojdectl apply my-first-instance 5000 -f -r , qui recompilera et redémarrera les services.
Vous avez des questions ou besoin d'aide? Discutez avec nous sur Matrix!
pojdectl pojdectl comprend un outil d'auto-mise à jour, que vous pouvez invoquer en exécutant ce qui suit:
$ pojdectl upgrade-pojdectl La mise à jour d'une instance (pour obtenir la dernière version POJDE) et la modification de la configuration d'une instance sont toutes deux effectuées à l'aide de la commande pojdectl apply .
Pour par exemple mettre à jour l'instance créée dans l'utilisation ou pour modifier sa configuration, les modules installés, etc., exécutez les instructions suivantes et suivez les instructions:
$ pojdectl apply my-first-instance 5000 -f -r -u # Append `-n root@your-ip:ssh-port` to upgrade the instance on a remote host insteadIl existe plusieurs stratégies de mise à jour et de configuration disponibles; Voir référence pour plus d'options.
Les combinaisons suivantes sont connues pour fonctionner:
L'utilisation de Docker et CGroups V2 sur un hôte basé sur Systemd ne fonctionne pas, car l'exécution de SystemD à l'intérieur du conteneur n'est pas encore prise en charge correctement en utilisant cette configuration. Si vous utilisez CGroups v2, c'est-à-dire que si vous êtes sur Fedora, veuillez utiliser Podman. Alternativement, vous pouvez également passer à CGROUPS V1 et utiliser Docker:
$ sudo grubby --update-kernel=ALL --args= " systemd.unified_cgroup_hierarchy=0 "
$ sudo reboot Grâce au script pojde-docker-env , le montage des volumes Docker à partir d'une instance est pris en charge:
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! Vous pouvez également bloquer complètement l'accès du démon Docker en spécifiant le drapeau -i ; Voir référence pour plus d'informations.
Il existe de nombreuses options disponibles pour transférer des fichiers; Vous pouvez par exemple utiliser scp , une autre option "traditionnelle" ou utiliser l'une des suivantes.
Un dossier de transfert est automatiquement créé pour un échange de données encore plus facile entre le système hôte et l'instance; Ce dossier est monté en ~/Documents dans l'instance et disponible sur ~/Documents/pojde/your-instance-name sur le système hôte.
Webwormhole (disponible en tant que ww ) est préinstallé dans tous les cas; Il vous permet d'échanger des fichiers à l'échelle mondiale en utilisant WebBrTC. En savoir plus sur le Repo webwormhole github.
Pojde (C) 2021 Felicitas Pojtinger et contributeurs
SPDX-license-Identificateur: AGPL-3.0