feat(config): add database configuration layer with backend detection
Add AppConfig loaded from .env via dotenvy. DATABASE_URL prefix determines the backend (sqlite:// → SQLite, postgresql:// → PostgreSQL). ConfigError via thiserror gives clear messages on missing or unknown URLs. Server logs the chosen backend at startup. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
10
src/main.rs
10
src/main.rs
@@ -21,7 +21,7 @@ async fn main() {
|
||||
use leptos::view;
|
||||
use rust_ipam::{
|
||||
app::{App, Shell},
|
||||
server::routes::not_found_handler,
|
||||
server::{config::AppConfig, routes::not_found_handler},
|
||||
};
|
||||
use tower_http::services::ServeDir;
|
||||
|
||||
@@ -36,6 +36,14 @@ async fn main() {
|
||||
|
||||
tracing::info!("Démarrage du serveur Rust IPAM...");
|
||||
|
||||
// Charge la configuration depuis .env / variables d'environnement.
|
||||
// On arrête le serveur immédiatement si la config est invalide — il ne peut
|
||||
// pas fonctionner sans savoir à quelle base de données se connecter.
|
||||
let app_config = AppConfig::from_env()
|
||||
.expect("Erreur de configuration — vérifier le fichier .env");
|
||||
|
||||
tracing::info!("Base de données : {} ({})", app_config.backend, app_config.database_url);
|
||||
|
||||
// `Some("Cargo.toml")` indique à Leptos de lire la section
|
||||
// [package.metadata.leptos] du Cargo.toml pour la configuration
|
||||
// (noms de fichiers, chemins, adresse serveur...).
|
||||
|
||||
Reference in New Issue
Block a user