feat: containerize for mmd.i80.dk deployment via Gitea/Nomad
Some checks failed
Build and Deploy MoneyMaker / build-and-deploy (push) Failing after 15s

- Add Dockerfile (python:3.12-slim, HF_HOME=/app/data/hf-cache)
- Add mmd.nomad (multi-task: web=dashboard, worker=scheduler)
- Add .gitea/workflows/deploy.yml (build->Harbor, deploy->Nomad)
- Add scheduler.py (stdlib scheduler replaces cron in container)
- Add requirements.txt
- dashboard.py: LOG_DIR + PORT/HOST from env vars
- saxo_auth.py: TOKEN_FILE from SAXO_TOKEN_FILE env var
- .gitignore: proper ignores for container project

Volume moneymaker-data (/app/data) holds:
  - logs/ (shared between web+worker)
  - .saxo_token.json (pre-copy once after first deploy)
  - hf-cache/ (HuggingFace FinBERT cache)

Gitea secrets required: DATABASE_URL, ANTHROPIC_API_KEY,
SAXO_APP_KEY, SAXO_APP_SECRET_1, HARBOR_ROBOT_TOKEN
This commit is contained in:
Henrik Jess Nielsen
2026-05-26 22:30:38 +02:00
parent 05eed51e7d
commit 6f1ee72e10
9 changed files with 417 additions and 5 deletions

34
Dockerfile Normal file
View File

@@ -0,0 +1,34 @@
FROM python:3.12-slim
ARG BUILD_VERSION=unknown
ARG BUILD_TIME=unknown
ARG GIT_COMMIT=unknown
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
BUILD_VERSION=${BUILD_VERSION} \
BUILD_TIME=${BUILD_TIME} \
GIT_COMMIT=${GIT_COMMIT} \
HF_HOME=/app/data/hf-cache \
TRANSFORMERS_VERBOSITY=error \
HF_HUB_DISABLE_PROGRESS_BARS=1
WORKDIR /app
RUN pip install --upgrade --no-cache-dir pip
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN mkdir -p /app/data/logs /app/data/hf-cache
ENV PORT=5001 \
HOST=0.0.0.0 \
LOG_DIR=/app/data/logs \
SAXO_TOKEN_FILE=/app/data/.saxo_token.json
EXPOSE 5001
CMD ["python", "dashboard.py"]