DocScoDoc/docs/ConseilServeurDev.md

87 lines
3.5 KiB
Markdown
Raw Normal View History

2021-02-01 19:55:50 +01:00
# Configuration d'un environnement de développement
2022-10-10 10:47:56 +02:00
Quelques indications pour développer avec ScoDoc, à adapter à vos goûts et outils.
2022-10-26 10:26:53 +02:00
Commencez par lire
[Installation du code pour les développeurs](https://scodoc.org/git/ScoDoc/ScoDoc#pour-les-d%C3%A9veloppeurs)
2021-02-01 19:55:50 +01:00
# Machine virtuelle
2022-10-26 10:26:53 +02:00
Il est confortable de développer dans une VM (un container Docker ferait
2021-08-22 08:14:55 +02:00
aussi bien l'affaire).
2021-02-01 19:55:50 +01:00
## Conseils pour la machine virtuelle
[VirtualBox](https://www.virtualbox.org/) est facile à installer sur Linux ou
Windows. Créer une VM avec Debian 10, et suivre la [procédure habituelle
d'installation de ScoDoc](GuideInstallDebian11.md).
Sur les Macs anciens (processeurs Intel), VirtualBox fonctionne bien. Sur les
modèles "M1" (Apple Silicon), je conseille d'utiliser
[UTM](https://mac.getutm.app/) qui est facile à installer et très performant. On
installe alors une VM avec la distribution Linux Debian pour l'architecture
`arm64` (nous ne produisons pas de paquets Debian `arm64` pour ScoDoc 9, mais
l'installation est simple, ne pas hésiter à demander sur le Discord).
En général, vous préférez développer sur la machine hôte pour disposer de votre
éditeur préféré, mais exécutez ScoDoc dans la VM.
### Éditeur de texte / IDE
Si vous êtes expérimenté, vous avez vos outils préférés. Mais si vous débutez,
surtout pour un environnement de développement distant (le code développé tourne
2022-10-10 10:47:56 +02:00
dans une machine virtuelle ou réelle séparée de votre machine de bureau), nous
vous conseillons **VS Code** avec le module
[*Remote-SSH*](https://code.visualstudio.com/docs/remote/ssh). Ceci vous évite
2022-10-10 10:47:56 +02:00
de fastidieuses configurations de partage de fichiers entre les machines, il
suffit d'une connexion SSH fonctionnelle.
### Configuration réseau de VirtualBox
La VM a besoin d'accéder à Internet pour l'installation, et aussi pour les mises
à jour et peut-être certains tests que vous voudrez lancer. L'accès à la VM
depuis l'hôte doit être possible via un réseau privé interne (car vous ne serez
2022-10-10 10:47:56 +02:00
pas toujours connecté à Internet, et ne souhaitez pas que l'on accède à votre
serveur de test de l'extérieur).
2021-02-01 19:55:50 +01:00
Modifier la config réseau via l'UI graphique de VirtualBox, la VM étant éteinte.
2022-10-26 10:26:53 +02:00
- `Adapter 1` : accès à la VM depuis l'hôte: réseau privé hôte `vboxnet0`
2021-02-01 19:55:50 +01:00
2022-10-26 10:26:53 +02:00
- `Adapter 2` : accès à Internet depuis la VM, configurer un interface réseau NAT.
2021-02-01 19:55:50 +01:00
Dans le Debian, j'utilise `/etc/network/interfaces`
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp
2022-10-10 10:47:56 +02:00
(le `enp0s3` désigne chez moi l'`Adapter 1`, mais c'est susceptible de changer.
2022-10-26 10:26:53 +02:00
Normalement, l'installateur a créé ce fichier )
2021-02-01 19:55:50 +01:00
Pour lancer l'interface externe , quand on a besoin d'accéder à Internet depuis
2022-10-10 10:47:56 +02:00
la VM:
2021-02-01 19:55:50 +01:00
dhclient enp0s8
2022-10-10 10:47:56 +02:00
ici `enp0s8` correspond à l'`Adapter 2`. Si vous travaillez sur une machine fixe
avec connexion permanente, vous pouvez dans Debian activer cette interface
constamment (modifier `/etc/network/interfaces`).
2021-02-01 19:55:50 +01:00
### Noms des machines
2022-10-26 10:26:53 +02:00
Modifier le `/etc/hosts` (ou équivalent) de l'hôte, et y ajouter l'IP de votre
VM, par exemple (adapter l'IP !):
2021-02-01 19:55:50 +01:00
192.168.12.10 scodoc scodoc.dev.net
### Partage de fichiers
2022-10-26 10:26:53 +02:00
Pour éditer votre code au chaud sur votre hôte, il y a plein de solutions.
La plus simple, déjà mentionnée, consiste à passer par une connexion SSH (VS
Code propose un module dédié très simple et performant, mais tout montage de
type `sshfs`peut aussi faire l'affaire).