dev: default config + jwt secret for dev

This commit is contained in:
Marco Allegretti 2026-02-02 11:30:15 +01:00
parent 6ac85c3fcb
commit 91d2f79740
2 changed files with 58 additions and 42 deletions

View file

@ -1,42 +1,57 @@
use serde::Deserialize; use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
pub struct Config { pub struct Config {
pub database_url: String, #[serde(default = "default_database_url")]
pub server_host: String, pub database_url: String,
pub server_port: u16, #[serde(default = "default_server_host")]
/// Enable demo mode - restricts destructive actions and enables demo accounts pub server_host: String,
#[serde(default)] #[serde(default = "default_server_port")]
pub demo_mode: bool, pub server_port: u16,
/// Secret key for JWT tokens /// Enable demo mode - restricts destructive actions and enables demo accounts
#[serde(default = "default_jwt_secret")] #[serde(default)]
pub jwt_secret: String, pub demo_mode: bool,
} /// Secret key for JWT tokens
#[serde(default = "default_jwt_secret")]
fn default_jwt_secret() -> String { pub jwt_secret: String,
"".to_string() }
}
fn default_database_url() -> String {
impl Config { "postgres://likwid:likwid@localhost:5432/likwid".to_string()
pub fn from_env() -> Result<Self, envy::Error> { }
dotenvy::dotenv().ok();
envy::from_env::<Config>() fn default_server_host() -> String {
} "127.0.0.1".to_string()
}
/// Check if demo mode is enabled
pub fn is_demo(&self) -> bool { fn default_server_port() -> u16 {
self.demo_mode 3000
} }
}
fn default_jwt_secret() -> String {
impl Default for Config { "".to_string()
fn default() -> Self { }
Self {
database_url: "postgres://likwid:likwid@localhost:5432/likwid".to_string(), impl Config {
server_host: "127.0.0.1".to_string(), pub fn from_env() -> Result<Self, envy::Error> {
server_port: 3000, dotenvy::dotenv().ok();
demo_mode: false, envy::from_env::<Config>()
jwt_secret: default_jwt_secret(), }
}
} /// Check if demo mode is enabled
} pub fn is_demo(&self) -> bool {
self.demo_mode
}
}
impl Default for Config {
fn default() -> Self {
Self {
database_url: "postgres://likwid:likwid@localhost:5432/likwid".to_string(),
server_host: "127.0.0.1".to_string(),
server_port: 3000,
demo_mode: false,
jwt_secret: default_jwt_secret(),
}
}
}

View file

@ -23,6 +23,7 @@ New-Item -ItemType Directory -Force -Path $stateDir | Out-Null
if (-not $env:POSTGRES_USER) { $env:POSTGRES_USER = 'likwid' } if (-not $env:POSTGRES_USER) { $env:POSTGRES_USER = 'likwid' }
if (-not $env:POSTGRES_PASSWORD) { $env:POSTGRES_PASSWORD = 'likwid' } if (-not $env:POSTGRES_PASSWORD) { $env:POSTGRES_PASSWORD = 'likwid' }
if (-not $env:POSTGRES_DB) { $env:POSTGRES_DB = 'likwid' } if (-not $env:POSTGRES_DB) { $env:POSTGRES_DB = 'likwid' }
if (-not $env:JWT_SECRET) { $env:JWT_SECRET = 'dev_jwt_secret_not_for_production' }
$env:DATABASE_URL = "postgres://$($env:POSTGRES_USER):$($env:POSTGRES_PASSWORD)@127.0.0.1:5432/$($env:POSTGRES_DB)" $env:DATABASE_URL = "postgres://$($env:POSTGRES_USER):$($env:POSTGRES_PASSWORD)@127.0.0.1:5432/$($env:POSTGRES_DB)"
# Check if already running # Check if already running