File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11FROM python:3.12-slim
22
33ENV PYTHONDONTWRITEBYTECODE=1 \
4- PYTHONUNBUFFERED=1
4+ PYTHONUNBUFFERED=1
55
66WORKDIR /app
77COPY app.py /app/app.py
88
99# Pin libs for reproducibility
1010RUN pip install --no-cache-dir \
11- flask==3.0.3 \
12- qbittorrent-api==2025.7.0 \
13- pyyaml==6.0.2 \
14- python-dotenv==1.1.1 \
15- waitress==3.0.0 \
16- && useradd -u 10001 -m app \
17- && mkdir -p /data \
18- && chown -R app:app /data /app
11+ flask==3.0.3 \
12+ qbittorrent-api==2025.7.0 \
13+ pyyaml==6.0.2 \
14+ python-dotenv==1.1.1 \
15+ waitress==3.0.0 \
16+ shm-client==1.0.0 \
17+ && useradd -u 10001 -m app \
18+ && mkdir -p /data \
19+ && chown -R app:app /data /app
1920
2021# Default runtime env (override at runtime if needed)
2122ENV MCC_PORT=8069 \
22- MCC_HOST=0.0.0.0 \
23- MCC_DB=/data/magnet_cc.sqlite \
24- MCC_WAITRESS=1
23+ MCC_HOST=0.0.0.0 \
24+ MCC_DB=/data/magnet_cc.sqlite \
25+ MCC_WAITRESS=1
2526
2627EXPOSE 8069
2728USER app
Original file line number Diff line number Diff line change 2525logging .basicConfig (level = os .environ .get ("LOGLEVEL" ,"INFO" ))
2626logger = logging .getLogger ("app" )
2727
28+ # -------------------- SHM Telemetry --------------------
29+ def start_telemetry ():
30+ """Start anonymous usage telemetry. Respects DO_NOT_TRACK."""
31+ if os .environ .get ("DO_NOT_TRACK" ) in ("1" , "true" ):
32+ logger .info ("[Telemetry] Disabled (DO_NOT_TRACK is set)" )
33+ return
34+ if os .environ .get ("SHM_ENABLED" ) in ("0" , "false" ):
35+ logger .info ("[Telemetry] Disabled (SHM_ENABLED=false)" )
36+ return
37+ try :
38+ from shm_client import SHMClient
39+ client = SHMClient (
40+ server_url = os .environ .get ("SHM_SERVER_URL" , "https://metrics.upandclear.org" ),
41+ app_name = "DecypharrSeed" ,
42+ app_version = "1.0.0" ,
43+ environment = os .environ .get ("NODE_ENV" , "production" ),
44+ )
45+ client .start ()
46+ logger .info ("[Telemetry] Started - anonymous usage tracking enabled" )
47+ except Exception as e :
48+ logger .debug (f"[Telemetry] Could not start: { e } " )
49+
50+ # Start telemetry in background
51+ threading .Thread (target = start_telemetry , daemon = True ).start ()
52+
53+
2854# -------------------- In-memory live logs --------------------
2955LOG_RING = deque (maxlen = 2000 )
3056LOG_SEQ = {"n" : 0 }
You can’t perform that action at this time.
0 commit comments