Skip to content

Commit d760171

Browse files
committed
shm
1 parent 63ecc62 commit d760171

2 files changed

Lines changed: 39 additions & 12 deletions

File tree

Dockerfile

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,28 @@
11
FROM python:3.12-slim
22

33
ENV PYTHONDONTWRITEBYTECODE=1 \
4-
PYTHONUNBUFFERED=1
4+
PYTHONUNBUFFERED=1
55

66
WORKDIR /app
77
COPY app.py /app/app.py
88

99
# Pin libs for reproducibility
1010
RUN 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)
2122
ENV 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

2627
EXPOSE 8069
2728
USER app

app.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,32 @@
2525
logging.basicConfig(level=os.environ.get("LOGLEVEL","INFO"))
2626
logger = 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 --------------------
2955
LOG_RING = deque(maxlen=2000)
3056
LOG_SEQ = {"n": 0}

0 commit comments

Comments
 (0)