SPB Git forge

spb/admin-ka

Public
41commits 1branches 0releases
172.9 MBsize
maindefault branch
19 days agolast push
JavaScript 65.5% Python 17.8% CSS 13% HTML 3.7%
1.1 KB · 27 lines javascript
Raw Blame History
1// Initialise/Met à jour data/config.json avec le hash scrypt du mot de passe.2// Usage: node server/set-password.js <motdepasse> [port]3import crypto from 'node:crypto';4import fs from 'node:fs';5import path from 'node:path';6import { fileURLToPath } from 'node:url';78const __dirname = path.dirname(fileURLToPath(import.meta.url));9const DATA_DIR = path.join(__dirname, '..', 'data');10fs.mkdirSync(DATA_DIR, { recursive: true });11const CONFIG_PATH = path.join(DATA_DIR, 'config.json');1213const pw = process.argv[2];14if (!pw) {15  console.error('Mot de passe requis.');16  process.exit(1);17}18if (pw.length < 12) console.warn('⚠️ mot de passe court (<12) — le rate-limit de login reste la seule protection contre le brute-force.');19let config = {};20try { config = JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf8')); } catch {}21const salt = crypto.randomBytes(16);22config.salt = salt.toString('hex');23config.passwordHash = crypto.scryptSync(pw, salt, 64).toString('hex');24config.port = Number(process.argv[3]) || config.port || 3300;25fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2));26console.log('config.json mis à jour (port ' + config.port + ').');27