Free Games Claimer (Fork) ========================== Automates claiming of free games for: - Epic Games Store (and Epic-linked assets) - Amazon Prime Gaming / Luna claims (incl. external stores like GOG, Legacy, Microsoft) - GOG giveaways - Optional extras: Steam stats, AliExpress dailies (experimental) This fork adds a Forgejo CI pipeline and instructions for running the pre-built image from your own registry. Requirements ------------ - Docker or Podman (empfohlen) **oder** Node.js ≥ 20 zum lokalen Lauf - (Optional) Python `apprise` für Benachrichtigungen: `pip install apprise` - Für Playwright: Linux-Desktop-Abhängigkeiten sind im Container enthalten; lokal ggf. `npm install` zieht Firefox mit. Schnellstart (Docker Run) ------------------------- ``` docker run --rm -it \ -p 6080:6080 \ -v fgc:/fgc/data \ -e SHOW=1 \ :latest \ node prime-gaming.js ``` - `` z. B. `git.sky-net.it/nocci/free-games-claimer` - Ports 6080/5900: noVNC/VNC (nur nötig mit `SHOW=1`) - Daten/Configs landen in Volume `fgc` unter `/fgc/data` Docker Compose Beispiel ----------------------- ```yaml services: fgc: image: :latest container_name: fgc environment: - SHOW=1 # Browser sichtbar via VNC/noVNC # - PG_EMAIL=... # - PG_PASSWORD=... # - PG_OTPKEY=... volumes: - fgc:/fgc/data ports: - "6080:6080" # noVNC # - "5900:5900" # VNC optional command: bash -c "node epic-games; node prime-gaming; node gog" volumes: fgc: ``` CI / eigenes Image ------------------ - Workflow: `.forgejo/workflows/build.yml` baut/pusht auf `push` nach `main`. - Secrets in Forgejo setzen: - `REGISTRY` (z. B. `git.sky-net.it`) - `REGISTRY_IMAGE` (z. B. `git.sky-net.it/nocci/free-games-claimer`) - `REG_USER`, `REG_TOKEN` (PAT mit Paket-Push) - Self-hosted Runner mit Docker-Access (`runs-on: self-hosted`) wird benötigt. Konfiguration (Umgebungsvariablen) ---------------------------------- Typische Optionen: - `SHOW=0/1` (0 = headless, 1 = UI) - `WIDTH`, `HEIGHT` (Browsergröße) - `TIMEOUT`, `LOGIN_TIMEOUT` (Sek.) - Login: `EMAIL`, `PASSWORD` global; spezifisch `EG_EMAIL`, `EG_PASSWORD`, `EG_OTPKEY`, `PG_EMAIL`, `PG_PASSWORD`, `PG_OTPKEY`, `GOG_EMAIL`, `GOG_PASSWORD` - Prime-Gaming: `PG_REDEEM=1` (Keys automatisch einlösen, experimentell), `PG_CLAIMDLC=1`, `PG_TIMELEFT=` zum Überspringen mit langer Restzeit - Screenshots: `SCREENSHOTS_DIR` (Standard `data/screenshots`) - Notifications: `NOTIFY='...'` (Apprise-URL), optional `NOTIFY_TITLE` Du kannst eine `data/config.env` anlegen; sie wird per dotenv geladen und überschreibt nichts, was bereits in der Umgebung gesetzt ist. Lokal ohne Docker ----------------- ``` npm install SHOW=0 PG_EMAIL=... PG_PASSWORD=... PG_OTPKEY=... node prime-gaming.js ``` - Playwright lädt Firefox beim `npm install` in `~/.cache/ms-playwright`. - Für sichtbaren Browser `SHOW=1` (GUI/Xvfb nötig). Persistenz & Ausgaben --------------------- - Daten & Status: `data/*.json` (pro Store) - Browserprofil: `data/browser` - Screenshots: `data/screenshots//` - Optionale Videos/HAR: `RECORD=1` → `data/record/` Tipp: Bei Captchas oder Erst-Login `SHOW=1` nutzen und einmal manuell einloggen; Cookies bleiben im Profil. Notifications via `NOTIFY` helfen bei Fehlermeldungen (z. B. Captcha, Login).***