commit 5c021ba4e08a720952ae892218578bc23aad66ad Author: guppy Date: Thu Aug 31 12:22:42 2023 +0200 Bon courage! diff --git a/README.md b/README.md new file mode 100644 index 0000000..1de2329 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# SevAlternance + +## Dépendances + +L'application nécessite l'installation de nodeJS et npm + +## Configuration + +Dans le fichiers sevalternance.js, editez les variables suivantes: + + host: 'IP du serveur de base de donnée', + user: 'Utilsateur de la base de donnée', + password: 'Mot de passe de l'utlisateur', + database: 'Nom de la base de donnée', + +Vérifiez également le chemin et nom pour votre couple certificat/clé: + + key: fs.readFileSync('/etc/ssl/private/wildcard.key'), + cert: fs.readFileSync('/etc/ssl/certs/wildcard.pem'), + +## Installation + +Exécutez le script install.sh + +## Utilisation + +Démarrez le service sevalternance avec systemd. +Vérifiez son statut avec systemd. +Dans un navigateur, ce rendre sur l'url [https://votre_serveur](https://votre_serveur) diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..0599824 --- /dev/null +++ b/install.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +[[ ! -d /opt/sevalternance ]] && mkdir /opt/sevalternance +cp -r ./sevalternance.js /opt/sevalternance/ +cp -r ./sevalternance.service /etc/systemd/system/ +cd /opt/sevalternance +npm install express mariadb > /dev/null +systemctl daemon-reload diff --git a/sevalternance.js b/sevalternance.js new file mode 100644 index 0000000..42e69d4 --- /dev/null +++ b/sevalternance.js @@ -0,0 +1,47 @@ +const https = require('https'); +const fs = require('fs'); +const express = require('express'); +const mariadb = require('mariadb'); + +const app = express(); + +// Serve the "SevAlternance - Site en construction" message +app.get('/', (req, res) => { + res.send('SevAlternance - Site en construction'); +}); + +// Check the connection to the MariaDB database using custom SSL options +async function checkDatabaseConnection() { + const pool = mariadb.createPool({ + host: 'ip_du_serveur_de_bdd', + user: 'sevalternance', + password: 'MonSuperMotdePasse', + database: 'sevalternance', + port: '3306', + connectionLimit: 5, + }); + + let conn; + try { + conn = await pool.getConnection(); + console.log('Connected to the database!'); + } catch (err) { + console.error('Failed to connect to the database:', err); + } finally { + if (conn) conn.release(); + if (pool) pool.end(); + } +} + +// Start the HTTPS server +const options = { + key: fs.readFileSync('/etc/ssl/private/wildcard.key'), + cert: fs.readFileSync('/etc/ssl/certs/wildcard.pem'), +}; + +https.createServer(options, app).listen(443, () => { + console.log('Server started on port 443'); +}); + +// Check the database connection after starting the server +checkDatabaseConnection().catch(err => console.error('Error while checking database connection:', err)); diff --git a/sevalternance.service b/sevalternance.service new file mode 100644 index 0000000..d2a37a8 --- /dev/null +++ b/sevalternance.service @@ -0,0 +1,14 @@ +[Unit] +Description=SevAlternance +After=network.target + +[Service] +Environment=NODE_ENV=production +ExecStart=/usr/bin/node /opt/sevalternance/sevalternance.js +WorkingDirectory=/opt/sevalternance +Restart=always +User=root +Group=root + +[Install] +WantedBy=multi-user.target