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;
#[derive(Debug, Clone, Deserialize)]
pub struct Config {
pub database_url: String,
pub server_host: String,
pub server_port: u16,
/// Enable demo mode - restricts destructive actions and enables demo accounts
#[serde(default)]
pub demo_mode: bool,
/// Secret key for JWT tokens
#[serde(default = "default_jwt_secret")]
pub jwt_secret: String,
}
fn default_jwt_secret() -> String {
"".to_string()
}
impl Config {
pub fn from_env() -> Result<Self, envy::Error> {
dotenvy::dotenv().ok();
envy::from_env::<Config>()
}
/// 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(),
}
}
}
use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
pub struct Config {
#[serde(default = "default_database_url")]
pub database_url: String,
#[serde(default = "default_server_host")]
pub server_host: String,
#[serde(default = "default_server_port")]
pub server_port: u16,
/// Enable demo mode - restricts destructive actions and enables demo accounts
#[serde(default)]
pub demo_mode: bool,
/// Secret key for JWT tokens
#[serde(default = "default_jwt_secret")]
pub jwt_secret: String,
}
fn default_database_url() -> String {
"postgres://likwid:likwid@localhost:5432/likwid".to_string()
}
fn default_server_host() -> String {
"127.0.0.1".to_string()
}
fn default_server_port() -> u16 {
3000
}
fn default_jwt_secret() -> String {
"".to_string()
}
impl Config {
pub fn from_env() -> Result<Self, envy::Error> {
dotenvy::dotenv().ok();
envy::from_env::<Config>()
}
/// 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_PASSWORD) { $env:POSTGRES_PASSWORD = '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)"
# Check if already running