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-contrib
sudo -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 postgresql
cat /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.jar
sudo apt install openjdk-14-jdk
apt-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 synthesizrs
sudo systemctl status synthesizrs
curl 127.0.0.1:8080
Maintenant il faut configurer nginx :
rm /etc/nginx/sites-enabled/default
sudo 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.conf
sudo systemctl restart nginx
Mode “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;