88 lines
3.5 KiB
Markdown
88 lines
3.5 KiB
Markdown
Free Games Claimer (Fork)
|
|
==========================
|
|
|
|
[](https://sonata.cyber77.de/dashboard?id=free-games-claimer)
|
|
|
|
Automates claiming of free games for:
|
|
- Amazon Luna Gaming / Luna claims (including external stores like GOG, Epic Games, Legacy Games )
|
|
- GOG giveaways
|
|
- Optional extras: Steam stats, AliExpress dailies (not implemated yet)
|
|
|
|
Requirements
|
|
------------
|
|
- 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.
|
|
|
|
Quickstart (Docker Run)
|
|
-----------------------
|
|
```
|
|
docker run --rm -it \
|
|
-p 6080:6080 \
|
|
-v fgc:/fgc/data \
|
|
-e SHOW=1 \
|
|
git.sky-net.it/nocci/free-games-claimer:latest \
|
|
node prime-gaming.js
|
|
```
|
|
- Ports 6080/5900: noVNC/VNC (only needed with `SHOW=1`)
|
|
- Data/configs are stored in volume `fgc` under `/fgc/data`
|
|
|
|
Docker Compose Example
|
|
----------------------
|
|
```yaml
|
|
services:
|
|
fgc:
|
|
image: git.sky-net.it/nocci/free-games-claimer:latest
|
|
container_name: fgc
|
|
environment:
|
|
- SHOW=1 # show browser 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:
|
|
```
|
|
|
|
Configuration (Environment Variables)
|
|
-------------------------------------
|
|
Common options:
|
|
- `SHOW=0/1` (0 = headless, 1 = UI)
|
|
- `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=<days>` to skip long-remaining offers
|
|
- Screenshots: `SCREENSHOTS_DIR` (default `data/screenshots`)
|
|
- Notifications: `NOTIFY='...'` (Apprise URL), optional `NOTIFY_TITLE`
|
|
- Browser profile: `BROWSER_DIR` (default `data/browser`)
|
|
- Recording: `RECORD=1` to save videos/HAR to `data/record/`
|
|
- Debugging: `DEBUG=1` (opens Playwright inspector), `DEBUG_NETWORK=1` (logs requests), `TIME=1` (prints timings)
|
|
- Dry run / Interaction: `DRYRUN=1` (do not claim), `INTERACTIVE=1` (ask before claiming), `HEADLESS` is derived from `SHOW`/`DEBUG`
|
|
- Directories: `SCREENSHOTS_DIR`, `BROWSER_DIR`, `DATA_DIR` (prefix for data; default under `data/`)
|
|
- VNC/noVNC: `VNC_PASSWORD` (for Docker entrypoint), `NOVNC_PORT`/`VNC_PORT` (Docker)
|
|
- General timeouts: `TIMEOUT` (per action), `LOGIN_TIMEOUT` (extra time for login)
|
|
|
|
You can place a `data/config.env`; it is loaded via dotenv and is overridden by explicitly set environment variables.
|
|
|
|
Local Run Without Docker
|
|
------------------------
|
|
```
|
|
npm install
|
|
SHOW=0 PG_EMAIL=... PG_PASSWORD=... PG_OTPKEY=... node prime-gaming.js
|
|
```
|
|
- Playwright downloads Firefox to `~/.cache/ms-playwright`.
|
|
- Use `SHOW=1` for a visible browser (requires GUI/Xvfb).
|
|
|
|
Persistence & Outputs
|
|
---------------------
|
|
- Data/status: `data/*.json` (per store)
|
|
- Browser profile: `data/browser`
|
|
- Screenshots: `data/screenshots/<store>/`
|
|
- Optional videos/HAR: `RECORD=1` → `data/record/`
|
|
|
|
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).
|