Maintenant que le frontend est déployé (voir Workshop 6 - Déployer son chef d’oeuvre (frontend)) et que le serveur a un domaine (voir Workshop 7 - Ajouter son nom de domaine monchefdoeuvre.com), nous pouvons déployer aussi le backend (BDD + application Java ou Node)
sudo apt install postgresql postgresql-contribsudo -u postgres psql (pour revenir à votre user précédant, faire exit)psql (exit pour quitter le prompt)\password postgres (entrer le mdp 2 fois)CREATE DATABASE synthesizrs; (changer le nom pour votre nom de BDD)systemctl status postgresqlcat /var/log/postgresql/postgresql-12-main.log./gradlew bootJar (le jar : build/libs/synthesizrs-0.0.1-SNAPSHOT.jar)gcloud compute scp synthesizrs-0.0.1-SNAPSHOT.jar synthesizrs-instance:synthesizrs.jarsudo apt install openjdk-14-jdkapt-cache search openjdk-java -jar synthesizrs.jar [Unit]
Description=Synthesizrs
After=syslog.target
After=network.target[Service]
User=username
Type=simple
[Service]
ExecStart=/usr/bin/java -jar /home/alex/synthesizrs.jar
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=helloworld
[Install]
WantedBy=multi-user.target
sudo systemctl start synthesizrssudo systemctl status synthesizrscurl 127.0.0.1:8080Maintenant il faut configurer nginx :
rm /etc/nginx/sites-enabled/defaultsudo nano /etc/nginx/sites-available/synthesizrs.conf
server {
listen 80;
listen [::]:80;
root /home/alex/client;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
location /public {
proxy_pass http://localhost:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
}
sudo ln -s /etc/nginx/sites-enabled/default /etc/nginx/sites-available/synthesizrs.confsudo systemctl restart nginxMode “développement”, les données ne sont pas importantes on peut les perdre :
spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop
spring.jpa.generate-ddl=true
INSERT INTO user VALUES ('admin', 'password');
Mode “production”, on doit garder les données :
spring.jpa.properties.hibernate.hbm2ddl.auto=none
ALTER TABLE user ADD COLUMN age;