summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index c5de543..0e38a05 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -3,6 +3,9 @@ extern crate diesel;
#[macro_use]
extern crate diesel_migrations;
+use std::fs::File;
+use std::io::Read;
+
use actix::prelude::*;
use actix_web::middleware::{errhandlers::ErrorHandlers, Logger};
@@ -59,7 +62,19 @@ async fn main() -> std::io::Result<()> {
SyncArbiter::start(4, move || PassHashExecutor(Hasher::default()));
HttpServer::new(move || {
- let secret: String = std::env::var("SECRET_KEY").expect("SECRET_KEY env var should be set");
+ let secret = if let Ok(path) = std::env::var("SECRET_KEY_FILE") {
+ let mut file = File::open(path).expect("SECRET_KEY_FILE openable");
+ let mut content = String::new();
+
+ file.read_to_string(&mut content)
+ .expect("SECRET_KEY_FILE content readable");
+ content.trim();
+
+ content
+ } else {
+ std::env::var("SECRET_KEY").expect("SECRET_KEY env var should be set")
+ };
+
let domain: String = std::env::var("DOMAIN").unwrap_or_else(|_| "localhost".to_string());
let secure_cookies = &domain != "localhost";