- Add separate momentry_playground binary with distinct configuration - Production (momentry): Port 3002, Redis prefix 'momentry:' - Development (momentry_playground): Port 3003, Redis prefix 'momentry_dev:' - Add SERVER_PORT and REDIS_KEY_PREFIX config via environment variables - Replace all hardcoded Redis key prefixes with configurable values - Create .env.development for playground environment settings - Update .env with production defaults - Add dotenv dependency for environment file loading Configuration isolation allows running both binaries simultaneously without port conflicts or Redis key collisions.
140 lines
4.4 KiB
Rust
140 lines
4.4 KiB
Rust
use once_cell::sync::Lazy;
|
|
use std::env;
|
|
|
|
pub static DATABASE_URL: Lazy<String> = Lazy::new(|| {
|
|
env::var("DATABASE_URL")
|
|
.unwrap_or_else(|_| "postgres://accusys@localhost:5432/momentry".to_string())
|
|
});
|
|
|
|
pub static MONGODB_URL: Lazy<String> = Lazy::new(|| {
|
|
env::var("MONGODB_URL").unwrap_or_else(|_| "mongodb://localhost:27017".to_string())
|
|
});
|
|
|
|
pub static REDIS_URL: Lazy<String> = Lazy::new(|| {
|
|
env::var("REDIS_URL").unwrap_or_else(|_| {
|
|
let password = env::var("REDIS_PASSWORD").unwrap_or_else(|_| "accusys".to_string());
|
|
// Format: redis://[:password]@host:port (use default user)
|
|
format!("redis://:{}@localhost:6379", password)
|
|
})
|
|
});
|
|
|
|
pub static REDIS_PASSWORD: Lazy<String> =
|
|
Lazy::new(|| env::var("REDIS_PASSWORD").unwrap_or_else(|_| "accusys".to_string()));
|
|
|
|
pub static OUTPUT_DIR: Lazy<String> = Lazy::new(|| {
|
|
env::var("MOMENTRY_OUTPUT_DIR").unwrap_or_else(|_| "/Users/accusys/momentry/output".to_string())
|
|
});
|
|
|
|
pub static BACKUP_DIR: Lazy<String> = Lazy::new(|| {
|
|
env::var("MOMENTRY_BACKUP_DIR")
|
|
.unwrap_or_else(|_| "/Users/accusys/momentry/backup/momentry".to_string())
|
|
});
|
|
|
|
pub static PYTHON_PATH: Lazy<String> = Lazy::new(|| {
|
|
env::var("MOMENTRY_PYTHON_PATH").unwrap_or_else(|_| "/opt/homebrew/bin/python3.11".to_string())
|
|
});
|
|
|
|
pub static SCRIPTS_DIR: Lazy<String> = Lazy::new(|| {
|
|
env::var("MOMENTRY_SCRIPTS_DIR")
|
|
.unwrap_or_else(|_| "/Users/accusys/momentry_core_0.1/scripts".to_string())
|
|
});
|
|
|
|
pub static LOG_LEVEL: Lazy<String> = Lazy::new(|| {
|
|
env::var("RUST_LOG")
|
|
.or_else(|_| env::var("MOMENTRY_LOG_LEVEL"))
|
|
.unwrap_or_else(|_| "info".to_string())
|
|
});
|
|
|
|
pub static MEDIA_BASE_URL: Lazy<String> = Lazy::new(|| {
|
|
env::var("MOMENTRY_MEDIA_BASE_URL")
|
|
.unwrap_or_else(|_| "https://wp.momentry.ddns.net".to_string())
|
|
});
|
|
|
|
pub static SERVER_PORT: Lazy<u16> = Lazy::new(|| {
|
|
env::var("MOMENTRY_SERVER_PORT")
|
|
.unwrap_or_else(|_| "3002".to_string())
|
|
.parse()
|
|
.unwrap_or(3002)
|
|
});
|
|
|
|
pub static REDIS_KEY_PREFIX: Lazy<String> =
|
|
Lazy::new(|| env::var("MOMENTRY_REDIS_PREFIX").unwrap_or_else(|_| "momentry:".to_string()));
|
|
|
|
pub mod processor {
|
|
use super::*;
|
|
|
|
pub static ASR_TIMEOUT_SECS: Lazy<u64> = Lazy::new(|| {
|
|
env::var("MOMENTRY_ASR_TIMEOUT")
|
|
.unwrap_or_else(|_| "3600".to_string())
|
|
.parse()
|
|
.unwrap_or(3600)
|
|
});
|
|
|
|
pub static CUT_TIMEOUT_SECS: Lazy<u64> = Lazy::new(|| {
|
|
env::var("MOMENTRY_CUT_TIMEOUT")
|
|
.unwrap_or_else(|_| "3600".to_string())
|
|
.parse()
|
|
.unwrap_or(3600)
|
|
});
|
|
|
|
pub static DEFAULT_TIMEOUT_SECS: Lazy<u64> = Lazy::new(|| {
|
|
env::var("MOMENTRY_DEFAULT_TIMEOUT")
|
|
.unwrap_or_else(|_| "7200".to_string())
|
|
.parse()
|
|
.unwrap_or(7200)
|
|
});
|
|
}
|
|
|
|
pub mod cache {
|
|
use super::*;
|
|
|
|
pub static MONGODB_CACHE_ENABLED: Lazy<bool> = Lazy::new(|| {
|
|
env::var("MONGODB_CACHE_ENABLED")
|
|
.unwrap_or_else(|_| "true".to_string())
|
|
.parse()
|
|
.unwrap_or(true)
|
|
});
|
|
|
|
pub static MONGODB_CACHE_TTL_VIDEOS: Lazy<u64> = Lazy::new(|| {
|
|
env::var("MONGODB_CACHE_TTL_VIDEOS")
|
|
.unwrap_or_else(|_| "300".to_string())
|
|
.parse()
|
|
.unwrap_or(300)
|
|
});
|
|
|
|
pub static MONGODB_CACHE_TTL_SEARCH: Lazy<u64> = Lazy::new(|| {
|
|
env::var("MONGODB_CACHE_TTL_SEARCH")
|
|
.unwrap_or_else(|_| "300".to_string())
|
|
.parse()
|
|
.unwrap_or(300)
|
|
});
|
|
|
|
pub static MONGODB_CACHE_TTL_HYBRID_SEARCH: Lazy<u64> = Lazy::new(|| {
|
|
env::var("MONGODB_CACHE_TTL_HYBRID_SEARCH")
|
|
.unwrap_or_else(|_| "600".to_string())
|
|
.parse()
|
|
.unwrap_or(600)
|
|
});
|
|
|
|
pub static MONGODB_CACHE_TTL_VIDEO_META: Lazy<u64> = Lazy::new(|| {
|
|
env::var("MONGODB_CACHE_TTL_VIDEO_META")
|
|
.unwrap_or_else(|_| "3600".to_string())
|
|
.parse()
|
|
.unwrap_or(3600)
|
|
});
|
|
|
|
pub static REDIS_CACHE_TTL_HEALTH: Lazy<u64> = Lazy::new(|| {
|
|
env::var("REDIS_CACHE_TTL_HEALTH")
|
|
.unwrap_or_else(|_| "30".to_string())
|
|
.parse()
|
|
.unwrap_or(30)
|
|
});
|
|
|
|
pub static REDIS_CACHE_TTL_VIDEO_META: Lazy<u64> = Lazy::new(|| {
|
|
env::var("REDIS_CACHE_TTL_VIDEO_META")
|
|
.unwrap_or_else(|_| "3600".to_string())
|
|
.parse()
|
|
.unwrap_or(3600)
|
|
});
|
|
}
|