Skip to content

Commit 7cca67f

Browse files
Generate persistence in the frontend
1 parent 241c770 commit 7cca67f

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

nebula/frontend/app.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import argparse
22
import asyncio
33
import datetime
4+
from dotenv import load_dotenv
45
import io
56
import json
67
import logging
@@ -26,9 +27,9 @@ class Settings:
2627
config_dir: str = os.environ.get("NEBULA_CONFIG_DIR")
2728
cert_dir: str = os.environ.get("NEBULA_CERTS_DIR")
2829
root_host_path: str = os.environ.get("NEBULA_ROOT_HOST")
29-
config_frontend_dir: str = os.environ.get("FEDELLAR_CONFIG_FRONTEND_DIR", "config")
30+
config_frontend_dir: str = os.environ.get("NEBULA_CONFIG_FRONTEND_DIR", "config")
31+
env_file: str = os.environ.get("NEBULA_ENV_PATH", ".env")
3032
statistics_port: int = os.environ.get("NEBULA_STATISTICS_PORT", 8080)
31-
secret_key: str = os.environ.get("SECRET_KEY", os.urandom(24).hex())
3233
PERMANENT_SESSION_LIFETIME: datetime.timedelta = datetime.timedelta(minutes=60)
3334
templates_dir: str = "templates"
3435
server_log: str = os.environ.get("NEBULA_SERVER_LOG", "/nebula/app/logs/server.log")
@@ -53,6 +54,9 @@ class Settings:
5354
handler.setFormatter(logging.Formatter("[%(asctime)s] [%(name)s] [%(levelname)s] %(message)s"))
5455
logger.addHandler(handler)
5556

57+
if os.path.exists(settings.env_file):
58+
logging.info(f"Loading environment variables from {settings.env_file}")
59+
load_dotenv(settings.env_file, override=True)
5660

5761
from ansi2html import Ansi2HTMLConverter
5862
from fastapi import (
@@ -111,8 +115,17 @@ class Settings:
111115

112116
logging.info(f"NEBULA_PRODUCTION: {settings.production}")
113117

118+
if "SECRET_KEY" not in os.environ:
119+
logging.info("Generating SECRET_KEY")
120+
os.environ["SECRET_KEY"] = os.urandom(24).hex()
121+
logging.info(f"Saving SECRET_KEY to {settings.env_file}")
122+
with open(settings.env_file, "a") as f:
123+
f.write(f"SECRET_KEY={os.environ['SECRET_KEY']}\n")
124+
else:
125+
logging.info("SECRET_KEY already set")
126+
114127
app = FastAPI()
115-
app.add_middleware(SessionMiddleware, secret_key=settings.secret_key)
128+
app.add_middleware(SessionMiddleware, secret_key=os.environ.get("SECRET_KEY"))
116129
app.add_middleware(
117130
CORSMiddleware,
118131
allow_origins=["*"],

0 commit comments

Comments
 (0)