Bon courage!

main
guppy 2023-08-31 12:22:42 +02:00
commit 5c021ba4e0
4 changed files with 98 additions and 0 deletions

29
README.md 100644
View File

@ -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)

8
install.sh 100755
View File

@ -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

47
sevalternance.js 100644
View File

@ -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));

View File

@ -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