free-games-claimer/README.md
nocci bde0f34a80
Some checks failed
build-and-push / docker (push) Failing after 0s
📝 docs(README): simplify and update documentation
- remove detailed setup instructions and history
- add quick-start guide for Docker and Docker Compose
- update CI and configuration sections
- streamline language and formatting for clarity
2025-12-29 14:36:18 +00:00

92 lines
3.3 KiB
Markdown

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 \
<REGISTRY_IMAGE>:latest \
node prime-gaming.js
```
- `<REGISTRY_IMAGE>` 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: <REGISTRY_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=<Tage>` 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/<store>/`
- 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).***