No description
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| .github | ||
| .vscode | ||
| src | ||
| test | ||
| .dockerignore | ||
| .gitignore | ||
| aliexpress.js | ||
| CONTRIBUTING.md | ||
| docker-compose.yml | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| epic-games.js | ||
| eslint.config.js | ||
| gog.js | ||
| jsconfig.json | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| prime-gaming.js | ||
| README.md | ||
| sonar-project.properties | ||
| steam-games.js | ||
| unrealengine.js | ||
Free Games Claimer (Fork)
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 installdownloads 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
fgcunder/fgc/data
Docker Compose Example
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,PASSWORDglobal; per storeEG_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(defaultdata/screenshots) - Notifications:
NOTIFY='...'(Apprise URL), optionalNOTIFY_TITLE - Browser profile:
BROWSER_DIR(defaultdata/browser) - Recording:
RECORD=1to save videos/HAR todata/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),HEADLESSis derived fromSHOW/DEBUG - Directories:
SCREENSHOTS_DIR,BROWSER_DIR,DATA_DIR(prefix for data; default underdata/) - 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=1for 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).