33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
import os
|
|
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass
|
|
class Config:
|
|
db_url: str
|
|
api_key: str
|
|
station_call: str
|
|
aprs_is_host: str
|
|
aprs_is_port: int
|
|
aprs_is_callsign: str
|
|
aprs_is_passcode: str
|
|
aprs_is_filter: str
|
|
log_level: str
|
|
|
|
@classmethod
|
|
def from_env(cls) -> "Config":
|
|
api_key = os.environ.get("API_KEY", "")
|
|
if not api_key:
|
|
raise RuntimeError("API_KEY environment variable is required")
|
|
return cls(
|
|
db_url=os.getenv("DATABASE_URL", "postgresql://aprs:aprs@db:5432/aprs"),
|
|
api_key=api_key,
|
|
station_call=os.getenv("STATION_CALL", "SA6ANW-1"),
|
|
aprs_is_host=os.getenv("APRS_IS_HOST", "rotate.aprs2.net"),
|
|
aprs_is_port=int(os.getenv("APRS_IS_PORT", "14580")),
|
|
aprs_is_callsign=os.getenv("APRS_IS_CALLSIGN", "SA6ANW-1"),
|
|
aprs_is_passcode=os.getenv("APRS_IS_PASSCODE", "-1"),
|
|
aprs_is_filter=os.getenv("APRS_IS_FILTER", "r/58.35/14.05/200"),
|
|
log_level=os.getenv("LOG_LEVEL", "INFO"),
|
|
)
|