Add default admin user creation for new installations

Creates an admin user with default credentials ('admin'/'admin') if one does not exist upon server startup, ensuring initial access for new deployments.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/COxOmlM
This commit is contained in:
michaelschal committed 2025-10-02 06:30:23 +00:00
1 parent f50109ee81
commit 1355385bf2
3 files changed
+35 -5

No files matched your search

-4
View File
@@ -14,10 +14,6 @@ run = ["npm", "run", "start"]
localPort = 5000
externalPort = 80
[[ports]]
localPort = 35739
externalPort = 3002
[[ports]]
localPort = 40537
externalPort = 3000
+5 -1
View File
@@ -4,6 +4,7 @@ import passport from "./auth";
import { registerRoutes } from "./routes";
import { setupVite, serveStatic, log } from "./vite";
import { schedulerService } from "./services/scheduler";
import { ensureAdminUserExists } from "./init-admin";
const app = express();
@@ -98,9 +99,12 @@ app.use((req, res, next) => {
port,
host: "0.0.0.0",
reusePort: true,
}, () => {
}, async () => {
log(`serving on port ${port}`);
// Initialiser l'utilisateur admin par défaut
await ensureAdminUserExists();
// Démarrer le scheduler pour les publications programmées
schedulerService.start();
});
+30
View File
@@ -0,0 +1,30 @@
import { storage } from "./storage";
import bcrypt from "bcrypt";
export async function ensureAdminUserExists() {
try {
const adminUser = await storage.getUserByUsername("admin");
if (!adminUser) {
console.log("🔧 Création de l'utilisateur admin par défaut...");
const hashedPassword = await bcrypt.hash("admin", 10);
await storage.createUser({
username: "admin",
password: hashedPassword,
role: "admin",
});
console.log("✅ Utilisateur admin créé avec succès");
console.log(" Username: admin");
console.log(" Password: admin");
console.log(" ⚠️ IMPORTANT: Changez ce mot de passe immédiatement !");
} else {
console.log("✓ Utilisateur admin existe déjà");
}
} catch (error) {
console.error("❌ Erreur lors de la vérification/création de l'utilisateur admin:", error);
throw error;
}
}