mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-09-26 03:14:01 +02:00
* feat(free_games_claimer): update upstream remaster to 1.6 Bumps the pinned Free-Games-Claimer-Remaster commit from 1.1 to the 1.6 release, adding the Ubisoft, Fab, AliExpress and Epic mobile stores, fixed daily scheduler times and the --accept-lang detection fix. Mirrors upstream's Chromium hardening (no-op xdg-open plus an AutoLaunchProtocolsFromOrigins managed policy) so app-scheme links cannot block the VNC session, and defaults upstream's release-update notification off because it advises "docker compose pull" instead of the add-on store. Closes #2990 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat(free_games_claimer): track upstream releases instead of a pinned commit The Dockerfile pinned upstream by commit SHA, which the repository updater cannot bump, so updater.json was paused and every upstream release needed a manual edit. Replaces the SHA with ARG BUILD_UPSTREAM="1.6" -- the repo-wide idiom the updater rewrites -- and downloads the matching v<version> source tarball. Unpauses updater.json and excludes upstream's development tags (v1.7d and similar), which carry no GitHub release. The add-on keeps its own 2.x version series: ha_version.py derives a strictly newer add-on version (2.1.0 -> 2.1.1) from a lower-sorting upstream tag, so Home Assistant still offers the update. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix(free_games_claimer): survive an upstream tag naming change lastversion reports upstream's v1.7d development tag as release "1.7", for which GitHub serves no source archive; "github_exclude": "d" keeps it out of the updater's reach. As a second line of defence the build now also tries the tag name without the "v" prefix, so an unattended version bump cannot break the image build on a tag naming change alone. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * docs(free_games_claimer): make the description's store list explicitly partial The shortened description named a subset of the supported stores, which both review bots read as an inaccurate list. "and more" says the list is partial while keeping the line inside the 80 column limit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * docs(free_games_claimer): state the mutable-tag trade-off honestly The comment and README carried over a claim from the commit-pin era: that the image contents cannot change without a version bump. A release tag is mutable, so that is no longer true. Say what actually holds and why the trade-off is accepted. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix(free_games_claimer): stop the upstream label guessing the tag form io.hass.upstream named the v-prefixed tag, which is wrong on the path where the build falls back to the unprefixed archive. Point it at the releases list, which is correct either way; the installed release is already recorded in updater.json, CHANGELOG.md and the startup banner. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
190 lines
8.5 KiB
Markdown
190 lines
8.5 KiB
Markdown
# Home Assistant add-on: Free Games Claimer
|
|
|
|
I maintain this and other Home Assistant add-ons in my free time. Keeping up
|
|
with upstream changes, Home Assistant changes, and testing on real hardware
|
|
takes a significant amount of time.
|
|
|
|
[![Buy me a coffee][donation-badge]](https://www.buymeacoffee.com/alexbelgium)
|
|
[![Donate via PayPal][paypal-badge]](https://www.paypal.com/donate/?hosted_button_id=DZFULJZTP3UQA)
|
|
|
|
## Add-on information
|
|
|
|

|
|

|
|
|
|
[](https://github.com/alexbelgium/hassio-addons/actions/workflows/weekly-supelinter.yaml)
|
|
[](https://github.com/alexbelgium/hassio-addons/actions/workflows/onpush_builder.yaml)
|
|
|
|
[donation-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee-%23d32f2f?logo=buy-me-a-coffee&style=flat&logoColor=white
|
|
[paypal-badge]: https://img.shields.io/badge/Donate%20via%20PayPal-0070BA?logo=paypal&style=flat&logoColor=white
|
|
|
|
## About
|
|
|
|
This add-on is based on
|
|
[Free Games Claimer Remaster](https://github.com/P-Adamiec/Free-Games-Claimer-Remaster).
|
|
It can claim free games from:
|
|
|
|
- Epic Games Store, including its weekly free mobile game
|
|
- Fab, Epic's asset marketplace (`fab`)
|
|
- Amazon Prime Gaming
|
|
- GOG
|
|
- Steam
|
|
- Ubisoft giveaways (`ubisoft`)
|
|
- AliExpress daily coin check-in (`aliexpress`)
|
|
- GamerPower-supported stores, when explicitly enabled
|
|
|
|
For compatibility with previous add-on releases, the default store selection
|
|
remains Epic Games, Prime Gaming, and GOG. The other stores are enabled by
|
|
adding them to `STORES`, for example `epic,prime,gog,fab,ubisoft`, and each
|
|
needs its own credentials in `config.env`.
|
|
|
|
## Web interface
|
|
|
|
The noVNC interface remains available on port `6080`:
|
|
|
|
```text
|
|
http://homeassistant:6080
|
|
```
|
|
|
|
It can be used for initial sign-in, CAPTCHA handling, or other manual browser
|
|
interaction. Set `VNC_PASSWORD` in `config.env` to protect the VNC session.
|
|
|
|
## Add-on options
|
|
|
|
| Option | Default | Description |
|
|
|--------|---------|-------------|
|
|
| `CONFIG_LOCATION` | `/config/config.env` | Persistent environment configuration file |
|
|
| `RUN_ONCE` | `true` | Run all selected claimers once, then stop the add-on as previous releases did |
|
|
| `STORES` | empty | Optional comma-separated override, such as `epic,prime,gog,steam` |
|
|
| `CMD_ARGUMENTS` | `node epic-games ; node prime-gaming ; node gog` | Deprecated compatibility option; recognized legacy command names are converted to `STORES` |
|
|
| `env_vars` | `[]` | Additional environment variables passed to the add-on |
|
|
|
|
### Run modes
|
|
|
|
With `RUN_ONCE: true`, the add-on performs one claiming pass and stops. This is
|
|
the default and preserves the behavior of the former vogler-based add-on.
|
|
|
|
With `RUN_ONCE: false`, the remaster remains running and uses its internal
|
|
scheduler. Set `SCHEDULER_HOURS` in `config.env` to control the interval.
|
|
|
|
## Environment configuration
|
|
|
|
The add-on keeps its configuration in `CONFIG_LOCATION`, which defaults to
|
|
`/config/config.env`. From Home Assistant this is stored in the add-on's
|
|
private `addon_configs` directory and can be edited with a compatible file
|
|
browser add-on.
|
|
|
|
A template is created on first start. Common examples are:
|
|
|
|
```env
|
|
# Preserve the former default selection
|
|
STORES=epic,prime,gog
|
|
|
|
# Epic Games
|
|
EG_EMAIL=your-email@example.com
|
|
EG_PASSWORD=your-password
|
|
EG_OTPKEY=
|
|
|
|
# Amazon Prime Gaming
|
|
PG_EMAIL=your-amazon-email@example.com
|
|
PG_PASSWORD=your-password
|
|
PG_OTPKEY=
|
|
|
|
# GOG
|
|
GOG_EMAIL=your-gog-email@example.com
|
|
GOG_PASSWORD=your-password
|
|
|
|
# Optional Steam support
|
|
STEAM_USERNAME=your-steam-username
|
|
STEAM_PASSWORD=your-password
|
|
|
|
# Optional notifications
|
|
NOTIFY=tgram://bot-token/chat-id
|
|
# DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
|
|
```
|
|
|
|
Upstream's release-update notification (`NOTIFY_UPDATES`) is disabled by the
|
|
add-on, because it advises running `docker compose pull` while the add-on is
|
|
actually updated through the Home Assistant add-on store. Setting
|
|
`NOTIFY_UPDATES=true` in `config.env` re-enables it.
|
|
|
|
Existing variables such as `EG_EMAIL`, `EG_PASSWORD`, `PG_EMAIL`,
|
|
`PG_PASSWORD`, `PG_OTPKEY`, `GOG_EMAIL`, `GOG_PASSWORD`, `SHOW`, `WIDTH`,
|
|
`HEIGHT`, `TIMEOUT`, `LOGIN_TIMEOUT`, `DRYRUN`, and `NOTIFY` remain compatible.
|
|
See the
|
|
[upstream configuration reference](https://github.com/P-Adamiec/Free-Games-Claimer-Remaster#configuration)
|
|
for all available settings.
|
|
|
|
## Upgrade from version 1.8
|
|
|
|
Version 2.0 changes the application engine from
|
|
`vogler/free-games-claimer` (Node.js, Playwright, and Firefox) to
|
|
`P-Adamiec/Free-Games-Claimer-Remaster` (Python, nodriver, and Chromium).
|
|
The add-on performs the following migration automatically on first start:
|
|
|
|
1. The existing `config.env` remains at the same configured location.
|
|
2. Legacy `epic-games.json`, `prime-gaming.json`, and `gog.json` claim history
|
|
is imported into the remaster SQLite database at `/data/fgc.db`.
|
|
3. Existing database rows are detected and are not duplicated if migration is
|
|
retried.
|
|
4. A pre-migration database backup is created when an existing `fgc.db` is
|
|
present.
|
|
5. All old files remain under `/data/data` for rollback or manual recovery.
|
|
|
|
Browser sessions cannot be converted because the old add-on used a shared
|
|
Firefox profile while the remaster uses separate Chromium profiles per store.
|
|
Credentials remain available through `config.env`, but accounts that require
|
|
interactive authentication may need a one-time login through noVNC after the
|
|
upgrade. The old Firefox profile is retained and is never deleted.
|
|
|
|
The external noVNC port remains `6080`, although the standalone remaster image
|
|
normally uses port `7080`.
|
|
|
|
## Upstream update policy
|
|
|
|
The image is built from the upstream release named by `ARG BUILD_UPSTREAM` in
|
|
the Dockerfile, downloaded as the matching `v<version>` source tarball. The
|
|
repository updater tracks upstream releases and bumps that value, the add-on
|
|
version and `CHANGELOG.md` together, so a new upstream release reaches the
|
|
add-on without a manual edit.
|
|
|
|
A release tag is a mutable reference. Rebuilding the same `BUILD_UPSTREAM`
|
|
installs whatever that tag points at, so an upstream tag that is force-moved or
|
|
deleted would change or fail the build without an add-on change. That is the
|
|
accepted cost of automatic tracking, and it is the same trade-off every other
|
|
automatically updated add-on in this repository makes; the previous commit pin
|
|
was immutable but could only be advanced by hand.
|
|
|
|
Upstream's development tags (`v1.7d` and similar) are filtered out through
|
|
`"github_exclude": "d"` in `updater.json`. Without it the updater reports the
|
|
`v1.7d` tag as release `1.7`, for which GitHub serves no source archive, and
|
|
the build would fail.
|
|
|
|
The add-on version does not track the upstream version. The add-on uses a `2.x`
|
|
series while upstream is on `1.x`, and Home Assistant only offers an update
|
|
when the new version sorts strictly higher, so the updater increments the
|
|
add-on version (`2.1.0` to `2.1.1`) instead of publishing a lower-sorting
|
|
upstream number. The upstream release actually installed is recorded in
|
|
`upstream_version` in `updater.json`, in `CHANGELOG.md`, and in the add-on's
|
|
startup banner.
|
|
|
|
## Installation
|
|
|
|
1. Add this add-on repository to the Home Assistant add-on store.
|
|
2. Install **Free Games Claimer**.
|
|
3. Configure the add-on options as needed.
|
|
4. Start the add-on and review its log.
|
|
5. Open noVNC if an account needs manual authentication.
|
|
|
|
[](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Falexbelgium%2Fhassio-addons)
|
|
|
|
## Custom scripts and environment variables
|
|
|
|
- [Running custom scripts in add-ons](https://github.com/alexbelgium/hassio-addons/wiki/Running-custom-scripts-in-Addons)
|
|
- [Passing environment variables to an add-on](https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2)
|
|
|
|
## Support
|
|
|
|
Open an issue in the
|
|
[add-on repository](https://github.com/alexbelgium/hassio-addons/issues).
|