root pass fix

frdel committed Dec 3, 2024 at 14:38 UTC deae13d3834c7031a18cd30d5ee593f804b1b09a
5 files changed +12 -10
docker/run/fs/exe/run_A0.sh
+2 -2
@@ -28,8 +28,8 @@ function clone_repo() {
28 # setup and preload A0
29 setup_venv
30 clone_repo
31 -python /a0/prepare.py
32 -python /a0/preload.py
31 +python /a0/prepare.py --dockerized=true
32 +python /a0/preload.py --dockerized=true
33
34 # Loop to restart the Python script when it finishes
35 while true; do
preload.py
+2 -1
@@ -1,6 +1,7 @@
1 -from python.helpers import whisper
1 +from python.helpers import runtime, whisper
2
3 print("Running preload...")
4 +runtime.initialize()
5
6 # preload transcription model
7 whisper.preload()
\ No newline at end of file
prepare.py
+1 -2
@@ -1,14 +1,13 @@
1 -import subprocess
1 from python.helpers import dotenv, runtime, settings
2 import string
3 import random
4
5 print("Preparing environment...")
6 +runtime.initialize()
7
8 # generate random root password if not set (for SSH)
9 root_pass = dotenv.get_dotenv_value(dotenv.KEY_ROOT_PASSWORD)
10 if not root_pass:
11 root_pass = ''.join(random.choices(string.ascii_letters + string.digits, k=32))
12 - dotenv.save_dotenv_value(dotenv.KEY_ROOT_PASSWORD, root_pass)
12 print("Changing root password...")
13 settings.set_root_password(root_pass)
\ No newline at end of file
python/helpers/runtime.py
+2
@@ -10,6 +10,8 @@ dockerman = None
10
11 def initialize():
12 global args
13 + if args:
14 + return
15 parser.add_argument("--port", type=int, default=None, help="Web UI port")
16 parser.add_argument("--host", type=str, default=None, help="Web UI host")
17 parser.add_argument(
python/helpers/settings.py
+5 -5
@@ -1,18 +1,16 @@
1 -import asyncio
1 import json
2 import os
3 import re
4 import subprocess
6 -from typing import Any, Literal, Optional, TypedDict
5 +from typing import Any, Literal, TypedDict
6
7 import models
9 -from python.helpers import rfc_exchange, runtime, whisper
8 +from python.helpers import runtime, whisper
9 from . import files, dotenv
10 from models import get_model, ModelProvider, ModelType
11 from langchain_core.language_models.chat_models import BaseChatModel
12 from langchain_core.embeddings import Embeddings
13
15 -
14 class Settings(TypedDict):
15 chat_model_provider: str
16 chat_model_name: str
@@ -693,7 +691,7 @@ def _write_sensitive_settings(settings: Settings):
691 if settings["root_password"]:
692 dotenv.save_dotenv_value(dotenv.KEY_ROOT_PASSWORD, settings["root_password"])
693 if settings["root_password"]:
696 - dotenv.save_dotenv_value(dotenv.KEY_ROOT_PASSWORD, settings["root_password"])
694 + set_root_password(settings["root_password"])
695
696
697 def _get_default_settings() -> Settings:
@@ -777,6 +775,8 @@ def set_root_password(password: str):
775 if not runtime.is_dockerized():
776 raise Exception("root password can only be set in dockerized environments")
777 subprocess.run(f"echo 'root:{password}' | chpasswd", shell=True, check=True)
778 + dotenv.save_dotenv_value(dotenv.KEY_ROOT_PASSWORD, password)
779 +
780
781
782 def get_runtime_config(set: Settings):