📝 docs(README): update instructions and clarify configurations
Some checks failed
build-and-push / docker (push) Failing after 1m55s

- update registry image references to point to `git.sky-net.it/nocci/free-games-claimer`
- improve clarity on Docker and Docker Compose examples
- translate German sections into English for wider accessibility
- add detailed explanations for environment variables and configurations
- enhance quickstart and CI instructions for better understanding
This commit is contained in:
nocci 2025-12-29 14:38:54 +00:00
parent bde0f34a80
commit eba07721ca

View file

@ -3,41 +3,40 @@ Free Games Claimer (Fork)
Automates claiming of free games for: Automates claiming of free games for:
- Epic Games Store (and Epic-linked assets) - Epic Games Store (and Epic-linked assets)
- Amazon Prime Gaming / Luna claims (incl. external stores like GOG, Legacy, Microsoft) - Amazon Prime Gaming / Luna claims (including external stores like GOG, Legacy, Microsoft)
- GOG giveaways - GOG giveaways
- Optional extras: Steam stats, AliExpress dailies (experimental) - 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. This fork adds a Forgejo CI pipeline and instructions for running the pre-built image from the registry at `git.sky-net.it/nocci/free-games-claimer`.
Requirements Requirements
------------ ------------
- Docker or Podman (empfohlen) **oder** Node.js ≥ 20 zum lokalen Lauf - Docker or Podman (recommended), or Node.js ≥ 20 for local runs
- (Optional) Python `apprise` für Benachrichtigungen: `pip install apprise` - Optional notifications: `pip install apprise`
- Für Playwright: Linux-Desktop-Abhängigkeiten sind im Container enthalten; lokal ggf. `npm install` zieht Firefox mit. - Playwright dependencies are baked into the container; locally, `npm install` downloads Firefox.
Schnellstart (Docker Run) Quickstart (Docker Run)
------------------------- -----------------------
``` ```
docker run --rm -it \ docker run --rm -it \
-p 6080:6080 \ -p 6080:6080 \
-v fgc:/fgc/data \ -v fgc:/fgc/data \
-e SHOW=1 \ -e SHOW=1 \
<REGISTRY_IMAGE>:latest \ git.sky-net.it/nocci/free-games-claimer:latest \
node prime-gaming.js node prime-gaming.js
``` ```
- `<REGISTRY_IMAGE>` z. B. `git.sky-net.it/nocci/free-games-claimer` - Ports 6080/5900: noVNC/VNC (only needed with `SHOW=1`)
- Ports 6080/5900: noVNC/VNC (nur nötig mit `SHOW=1`) - Data/configs are stored in volume `fgc` under `/fgc/data`
- Daten/Configs landen in Volume `fgc` unter `/fgc/data`
Docker Compose Beispiel Docker Compose Example
----------------------- ----------------------
```yaml ```yaml
services: services:
fgc: fgc:
image: <REGISTRY_IMAGE>:latest image: git.sky-net.it/nocci/free-games-claimer:latest
container_name: fgc container_name: fgc
environment: environment:
- SHOW=1 # Browser sichtbar via VNC/noVNC - SHOW=1 # show browser via VNC/noVNC
# - PG_EMAIL=... # - PG_EMAIL=...
# - PG_PASSWORD=... # - PG_PASSWORD=...
# - PG_OTPKEY=... # - PG_OTPKEY=...
@ -51,42 +50,42 @@ volumes:
fgc: fgc:
``` ```
CI / eigenes Image CI / Build Your Own Image
------------------ -------------------------
- Workflow: `.forgejo/workflows/build.yml` baut/pusht auf `push` nach `main`. - Workflow: `.forgejo/workflows/build.yml` builds/pushes on `push` to `main`.
- Secrets in Forgejo setzen: - Secrets needed in Forgejo:
- `REGISTRY` (z. B. `git.sky-net.it`) - `REGISTRY` (e.g., `git.sky-net.it`)
- `REGISTRY_IMAGE` (z. B. `git.sky-net.it/nocci/free-games-claimer`) - `REGISTRY_IMAGE` (e.g., `git.sky-net.it/nocci/free-games-claimer`)
- `REG_USER`, `REG_TOKEN` (PAT mit Paket-Push) - `REG_USER`, `REG_TOKEN` (PAT with package push)
- Self-hosted Runner mit Docker-Access (`runs-on: self-hosted`) wird benötigt. - Requires a self-hosted runner with Docker access (`runs-on: self-hosted`).
Konfiguration (Umgebungsvariablen) Configuration (Environment Variables)
---------------------------------- -------------------------------------
Typische Optionen: Common options:
- `SHOW=0/1` (0 = headless, 1 = UI) - `SHOW=0/1` (0 = headless, 1 = UI)
- `WIDTH`, `HEIGHT` (Browsergröße) - `WIDTH`, `HEIGHT` (browser size)
- `TIMEOUT`, `LOGIN_TIMEOUT` (Sek.) - `TIMEOUT`, `LOGIN_TIMEOUT` (seconds)
- Login: `EMAIL`, `PASSWORD` global; spezifisch `EG_EMAIL`, `EG_PASSWORD`, `EG_OTPKEY`, `PG_EMAIL`, `PG_PASSWORD`, `PG_OTPKEY`, `GOG_EMAIL`, `GOG_PASSWORD` - Login: `EMAIL`, `PASSWORD` global; per store `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 - Prime Gaming: `PG_REDEEM=1` (auto-redeem keys, experimental), `PG_CLAIMDLC=1`, `PG_TIMELEFT=<days>` to skip long-remaining offers
- Screenshots: `SCREENSHOTS_DIR` (Standard `data/screenshots`) - Screenshots: `SCREENSHOTS_DIR` (default `data/screenshots`)
- Notifications: `NOTIFY='...'` (Apprise-URL), optional `NOTIFY_TITLE` - 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. You can place a `data/config.env`; it is loaded via dotenv and is overridden by explicitly set environment variables.
Lokal ohne Docker Local Run Without Docker
----------------- ------------------------
``` ```
npm install npm install
SHOW=0 PG_EMAIL=... PG_PASSWORD=... PG_OTPKEY=... node prime-gaming.js SHOW=0 PG_EMAIL=... PG_PASSWORD=... PG_OTPKEY=... node prime-gaming.js
``` ```
- Playwright lädt Firefox beim `npm install` in `~/.cache/ms-playwright`. - Playwright downloads Firefox to `~/.cache/ms-playwright`.
- Für sichtbaren Browser `SHOW=1` (GUI/Xvfb nötig). - Use `SHOW=1` for a visible browser (requires GUI/Xvfb).
Persistenz & Ausgaben Persistence & Outputs
--------------------- ---------------------
- Daten & Status: `data/*.json` (pro Store) - Data/status: `data/*.json` (per store)
- Browserprofil: `data/browser` - Browser profile: `data/browser`
- Screenshots: `data/screenshots/<store>/` - Screenshots: `data/screenshots/<store>/`
- Optionale Videos/HAR: `RECORD=1``data/record/` - Optional 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).*** Tip: For captchas or first-time login, run with `SHOW=1` and log in once; cookies stay in the profile. Notifications via `NOTIFY` help surface errors (e.g., captcha, login).