# Upload de l'application

# Création du dossier Web

Sur le serveur, créez un dossier www dans le répertoire de votre utilisateur

mkdir www

Créez ensuite à l'intérieur un dossier portant le nom du projet

cd ./www
mkdir chantemelse

Enfin à l'intérieur de ce nouveau dossier, créez-en 2 autres, un pour le front-end et un pour le back-end (Figure 1)

cd ./chantemelse
mkdir front back

Contenu du dossier Web Figure 1 : Contenu du dossier Web

# Compilation du projet Angular

Sur votre PC, ouvrez un terminal et rendez-vous dans votre dossier de projet Angular (Figure 2)

Dossier du projet Angular Figure 2 : Dossier du projet Angular

Avant de lancer le build, veillez à bien avoir modifié l'URL de votre API dans le fichier src/environments/environment.prod.ts



 


export const environment = {
  production: true,
  apiUrl: 'http://' + document.location.hostname + ':8081/'
};

Compilez votre projet pour la production avec la commande

ng build --prod

Par défaut Angular va compiler votre projet dans /dist/chantemelse/ (Figure 3)

Contenu du projet compilé Figure 3 : Contenu du projet compilé

Ce sont ces fichiers que vous allez envoyer sur votre serveur

# Compilation du projet Spring Boot

Sur votre PC, ouvrez un terminal et rendez-vous dans votre dossier de projet Spring Boot (Figure 4)

Dossier du projet Spring Boot Figure 4 : Dossier du projet Spring Boot

Redéfinissez, si besoin, la configuration de l'application pour la production, notamment dans le fichier application.properties situé dans src/main/resources. Assurez-vous que le port server.port sur lequel fonctionne Spring Boot est bien le même que celui défini dans votre fichier environment.prod.ts d'Angular. En l'occurrence ici, il s'agit du port 8081.

Pour que le projet soit exécutable, ajoutez ce morceau de code au fichier POM.xml :







 
 
 





<...>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>
<...>

Compilez votre projet pour la production avec la commande

.\mvnw clean install

Si tout se passe bien, vous devriez voir à la fin BUILD SUCCESS (Figure 5)

Compilation du projet Spring Boot Figure 5 : Compilation du projet Spring Boot

La compilation devrait avoir généré plusieurs fichiers, seul un vous intéresse, il se trouve dans le dossier target et se nomme chantemelse-0.0.1-SNAPSHOT.jar (Figure 6)

Contenu du projet compilé Figure 6 : Contenu du projet compilé, le fichier qui nous intéresse ici est chantemelse-0.0.1-SNAPSHOT.jar

# Envoi des fichiers

Vous disposez de 2 choix pour envoyer vos fichiers, soit via un client SFTP disposant d'une interface graphique comme FileZilla ou bien en ligne de commande avec SCP.

# Avec FileZilla - interface graphique

Commencez par vous connecter à votre serveur, pour cela dans FileZilla, allez dans File > Site Manager, cliquez sur New Site et donnez-lui un nom.

Entrez les identifiants de connexion au serveur, si vous vous connectez au serveur par mot de passe, choisissez Logon Type > Normal (Figure 7)

Connexion par mot de passe Figure 7 : Connexion par mot de passe

En revanche, si vous vous connectez au serveur avec votre clé SSH, choisissez Logon Type > Key file et choisissez votre clé privée id_rsa. (Figure 8) Vous aurez peut-être besoin de passer le filtres des extensions à All files pour voir le fichier.

Connexion par SSH Figure 8 : Connexion par SSH

Si tout se passe bien, FileZilla vous demandera si vous souhaitez ajouter la clé du serveur à la liste des hôtes connus, cliquez sur yes.

Sur la gauche se trouve l'arborescence de votre disque local et à droite celle de votre serveur. Sur votre arborescence locale, naviguez jusqu'au dossier contenant les fichiers du build d'Angular. Sur l'arborescence du serveur, naviguez jusqu'au dossier qui contiendra votre projet front front.

Glissez-déposez les fichiers du build dans le dossier front de votre serveur (Figure 9)

À gauche, votre disque local, à droite celle du serveur Figure 9 : À gauche, votre disque local, à droite celle du serveur

Assurez-vous que les transferts se sont bien effectués (Figure 10)

Tous les fichiers sont bien transférés Figure 10 : Tous les fichiers sont bien transférés

Répétez la même opération pour le fichier .jar du back. Sur l'arborescence locale, naviguez jusqu'au dossier contenant le fichier jar généré par Spring Boot. Sur l'arborescence du serveur, naviguez jusqu'au dossier qui contiendra votre projet back back.

Glissez-déposez le fichier jar dans le dossier back de votre serveur (Figure 11)

Glissez le fichier vers sa destination Figure 11 : Glissez le fichier vers sa destination

# Avec SCP - en ligne de commande

Tout d'abord, vérifiez que SCP est installé sur votre ordinateur

scp

Pour copier le contenu du dossier du front (Figure 12)

scp -P 1337 -r  ubuntu@195.154.0.1:~/www/chantemelse/back

Copie SSH du projet front Figure 12 : Copie SSH du projet front

Notez ici l'utilisation du drapeau -R pour récursive et de /* après le nom du dossier projet en local pour indiquer de copier l'ensemble des fichiers du dossier et de ses sous-dossiers.

Répétez la même opération pour le fichier jar du back.

Pour copier le contenu du dossier du front (Figure 13)

scp -P 1337 ./chantemelse-0.0.1-SNAPSHOT.jar <nom_d_utilisateur>@<IP_du_serveur>:<dossier_du_projet_back_remote>

Copie SSH du projet back Figure 13 : Copie SSH du projet back

# Vérification des fichiers uploadés

Connectez-vous maintenant en SSH au serveur et vérifiez que vos fichiers ont bien été envoyés dans les dossiers front et back (Figure 14)

Vérification des fichiers Figure 14 : Vérification des fichiers

Vous pouvez lancer le projet back pour voir s'il se lance (Figure 15)

java -jar ~/www/chantemelse/back/chantemelse-0.0.1-SNAPSHOT.jar

Lancement du projet back sur le serveur Figure 15 : Lancement du projet back sur le serveur

Sur votre navigateur, essayez d'accéder au serveur sur le port du back (ici 8081) soit http://195.154.0.1:8081 (Figure 16)

Page d'erreur de Spring Boot Figure 16 : Page d'erreur de Spring Boot

Arrêtez-le ensuite avec CTRL + C. Dans le prochain chapitre, vous allez créer un service pour le lancer automatiquement.