71cddd6a91
Manage Telegram instances through Kubernetes with legacy adoption for forust and anna. Build and deploy the panel image alongside the runtime.
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from dataclasses import dataclass
|
|
from pathlib import Path
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class Settings:
|
|
namespace: str = os.environ.get("USERBOT_NAMESPACE", "userbot")
|
|
legacy_namespaces: tuple[str, ...] = tuple(
|
|
value.strip()
|
|
for value in os.environ.get("USERBOT_LEGACY_NAMESPACES", "default").split(",")
|
|
if value.strip()
|
|
)
|
|
image: str = os.environ.get(
|
|
"USERBOT_IMAGE",
|
|
"gcr.forust.xyz/forust/userbot:latest",
|
|
)
|
|
common_secret: str = os.environ.get(
|
|
"USERBOT_COMMON_SECRET",
|
|
"userbot-common-secrets",
|
|
)
|
|
common_config: str = os.environ.get(
|
|
"USERBOT_COMMON_CONFIG",
|
|
"userbot-common-config",
|
|
)
|
|
storage_class: str = os.environ.get(
|
|
"USERBOT_STORAGE_CLASS",
|
|
"local-path-retain",
|
|
)
|
|
downloads_host_path: str = os.environ.get(
|
|
"USERBOT_DOWNLOADS_HOST_PATH",
|
|
"/srv/homelab/userbot/Downloads",
|
|
)
|
|
static_dir: Path = Path(os.environ.get("PANEL_STATIC_DIR", "/app/static"))
|
|
auth_ttl_seconds: int = int(os.environ.get("PANEL_AUTH_TTL_SECONDS", "600"))
|
|
default_storage: str = os.environ.get("USERBOT_DEFAULT_STORAGE", "1Gi")
|
|
default_cpu_limit: str = os.environ.get("USERBOT_DEFAULT_CPU_LIMIT", "300m")
|
|
default_memory_limit: str = os.environ.get(
|
|
"USERBOT_DEFAULT_MEMORY_LIMIT",
|
|
"1536Mi",
|
|
)
|
|
|
|
|
|
settings = Settings()
|