diff --git a/README.md b/README.md index be82e97..8ccf31c 100644 --- a/README.md +++ b/README.md @@ -3,41 +3,40 @@ 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) +- Amazon Prime Gaming / Luna claims (including 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. +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 ------------ -- 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. +- Docker or Podman (recommended), or Node.js ≥ 20 for local runs +- Optional notifications: `pip install apprise` +- Playwright dependencies are baked into the container; locally, `npm install` downloads Firefox. -Schnellstart (Docker Run) -------------------------- +Quickstart (Docker Run) +----------------------- ``` docker run --rm -it \ -p 6080:6080 \ -v fgc:/fgc/data \ -e SHOW=1 \ - :latest \ + git.sky-net.it/nocci/free-games-claimer: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` +- Ports 6080/5900: noVNC/VNC (only needed with `SHOW=1`) +- Data/configs are stored in volume `fgc` under `/fgc/data` -Docker Compose Beispiel ------------------------ +Docker Compose Example +---------------------- ```yaml services: fgc: - image: :latest + image: git.sky-net.it/nocci/free-games-claimer:latest container_name: fgc environment: - - SHOW=1 # Browser sichtbar via VNC/noVNC + - SHOW=1 # show browser via VNC/noVNC # - PG_EMAIL=... # - PG_PASSWORD=... # - PG_OTPKEY=... @@ -51,42 +50,42 @@ 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. +CI / Build Your Own Image +------------------------- +- Workflow: `.forgejo/workflows/build.yml` builds/pushes on `push` to `main`. +- Secrets needed in Forgejo: + - `REGISTRY` (e.g., `git.sky-net.it`) + - `REGISTRY_IMAGE` (e.g., `git.sky-net.it/nocci/free-games-claimer`) + - `REG_USER`, `REG_TOKEN` (PAT with package push) +- Requires a self-hosted runner with Docker access (`runs-on: self-hosted`). -Konfiguration (Umgebungsvariablen) ----------------------------------- -Typische Optionen: +Configuration (Environment Variables) +------------------------------------- +Common options: - `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` +- `WIDTH`, `HEIGHT` (browser size) +- `TIMEOUT`, `LOGIN_TIMEOUT` (seconds) +- 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` (auto-redeem keys, experimental), `PG_CLAIMDLC=1`, `PG_TIMELEFT=` to skip long-remaining offers +- Screenshots: `SCREENSHOTS_DIR` (default `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. +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 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). +- Playwright downloads Firefox to `~/.cache/ms-playwright`. +- Use `SHOW=1` for a visible browser (requires GUI/Xvfb). -Persistenz & Ausgaben +Persistence & Outputs --------------------- -- Daten & Status: `data/*.json` (pro Store) -- Browserprofil: `data/browser` +- Data/status: `data/*.json` (per store) +- Browser profile: `data/browser` - Screenshots: `data/screenshots//` -- 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).