自動的にログインし、Epic Games ストアで利用可能な無料ゲームを見つけます。事前に設定されたチェックアウト リンクを送信するため、ログイン後にチェックアウトを完了できます。複数のアカウント、ログイン セッション、およびスケジュールされた実行をサポートします。
このツールは、JSON と環境変数を組み合わせて構成できます。構成ファイルは、JSON5 構文 (コメント、末尾のカンマなど) をサポートしています。各プロパティでは、JSON 構成値がそれぞれの環境変数値よりも優先されます。
各オプション、そのデフォルト、および環境変数キーの詳細については、config ドキュメント サイトを参照してください。
構成ファイルはマウントされた/usr/app/config
ボリュームに保存され、 config.json
またはconfig.json5
という名前を付けることができます。
config.json
またはconfig.json5
{
"runOnStartup" : true ,
"cronSchedule" : "0 0,6,12,18 * * *" ,
"logLevel" : "info" ,
"webPortalConfig" : {
"baseUrl" : "https://epic.example.com" ,
} ,
"accounts" : [
{
"email" : "[email protected]" ,
} ,
] ,
"notifiers" : [
// You may configure as many of any notifier as needed
// Here are some examples of each type
{
"type" : "email" ,
"smtpHost" : "smtp.gmail.com" ,
"smtpPort" : 587 ,
"emailSenderAddress" : "[email protected]" ,
"emailSenderName" : "Epic Games Captchas" ,
"emailRecipientAddress" : "[email protected]" ,
"secure" : false ,
"auth" : {
"user" : "[email protected]" ,
"pass" : "abc123" ,
} ,
} ,
{
"type" : "discord" ,
"webhookUrl" : "https://discord.com/api/webhooks/123456789123456789/A-abcdefghijklmn-abcdefghijklmnopqrst12345678-abcdefghijklmnop123456" ,
// Optional list of users or roles to mention
"mentionedUsers" : [ "914360712086843432" ] ,
"mentionedRoles" : [ "734548250895319070" ] ,
} ,
{
"type" : "telegram" ,
// Optional Custom TELEGRAM server URL
"apiUrl" : "https://api.telegram.org" ,
"token" : "644739147:AAGMPo-Jz3mKRnHRTnrPEDi7jUF1vqNOD5k" ,
"chatId" : "-987654321" ,
} ,
{
"type" : "apprise" ,
"apiUrl" : "http://192.168.1.2:8000" ,
"urls" : "mailto://user:[email protected]" ,
} ,
{
"type" : "pushover" ,
"token" : "a172fyyl9gw99p2xi16tq8hnib48p2" ,
"userKey" : "uvgidym7l5ggpwu2r8i1oy6diaapll" ,
} ,
{
"type" : "gotify" ,
"apiUrl" : "https://gotify.net" ,
"token" : "SnL-wAvmfo_QT" ,
} ,
{
"type" : "homeassistant" ,
"instance" : "https://homeassistant.example.com" ,
"token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" ,
"notifyservice" : "mobile_app_smartphone_name" ,
} ,
{
"type" : "bark" ,
// your bark key
"key" : "xxxxxxxxxxxxxxxxxxxxxx" ,
// bark title, optional, default: 'epicgames-freegames'
"title" : "epicgames-freegames" ,
// bark group, optional, default: 'epicgames-freegames'
"group" : "epicgames-freegames" ,
// bark private service address, optional, default: 'https://api.day.app'
"apiUrl" : "https://api.day.app"
} ,
{
"type" : "ntfy" ,
"webhookUrl" : "https://ntfy.example.com/mytopic" ,
"priority" : "urgent" ,
"token" : "tk_mytoken"
} ,
{
"type" : "webhook" ,
//url of your webhook server
"url" : "https://webhook.site/my_uuid" ,
//Optional headers
"headers" : {
"Authentication" : "Bearer 123456"
}
} ,
] ,
}
このプロジェクトでは、デバイス コード認証によるログインを要求される場合があります。 Epic Games のデバイス コード セッションは 10 分後に期限切れになるため、このプロジェクトでは Web サーバーとリダイレクトを使用して、10 分ごとに新しいリンクが送信されないようにします。 Web サーバーを実行するには 2 つのオプションがあります。
Web サーバーやリバース プロキシのホスティングに慣れている場合は、次に従ってください。
-p 81:3000
は、ホスト マシンのポート 81 をコンテナのポート 3000 にマップします)webPortalConfig.baseUrl
を設定します。 ネットワーク上でポートフォワード/リバースプロキシを実行できない場合でも、次のように設定することで Web サーバーにリモートからアクセスできます。
{
"webPortalConfig" : {
"localtunnel" : true ,
} ,
}
config.json
内で。
各通知方法には固有の設定手順があります。正確な詳細と手順については、構成サイトのドキュメント (通知方法) を参照してください。設定例も例として役立つ場合があります。
ユーザーのアクションが常に必要なわけではないため、通知方法と Web サーバーを手動でテストできます。基本的に、以下を追加するだけです。
"testNotifiers" : true ,
config.json
のルートに追加します。詳細については、構成ドキュメントを確認してください。注: スタンバイ メモリの使用量を最適化するために、プロセスが実行されていないときは Web サーバーは実行されません。 Web サーバーは、スケジュールされた実行中にのみ使用可能になります。
このイメージは、GitHub Container Registry と Docker Hub の両方から入手できます。
ghcr.io/claabs/epicgames-freegames-node:latest
charlocharlie/epicgames-freegames:latest
Chromium の起動時に問題が発生した場合 (ログイン/通知でハングする)、Debian イメージを試してみることができます。
ghcr.io/claabs/epicgames-freegames-node:debian
charlocharlie/epicgames-freegames:debian
完全な JSON 構成を使用している場合、残りの Docker 構成可能項目はポートとボリュームだけです。
ほとんどの構成オプションは環境変数を介して設定できます。各オプションのキーの設定ドキュメントでenv
タグを探してください。
何らかの理由でデフォルトの構成ディレクトリまたは構成ファイル名を変更したい場合は、 CONFIG_DIR
およびCONFIG_FILE_NAME
環境変数として使用できます。
ホストポート | コンテナ港 | 説明 |
---|---|---|
3000 | 3000 | キャプチャ解決ページをホストする Web サーバーが存在するポート マッピング |
ホストの場所 | コンテナの場所 | モード | 説明 |
---|---|---|---|
/my/host/dir/ | /usr/app/config | rw | 設定ファイルと Cookie ファイルの場所 |
最大メモリ使用量を 2GB に設定するには、 docker run
パラメータとして-m 2g
追加することをお勧めします。 Chromium プロセスは時々暴走する可能性があり、制限がなければ最終的にシステムがロックする可能性があります。
$ docker run -d -v /my/host/dir/:/usr/app/config:rw -p 3000:3000 -m 2g ghcr.io/claabs/epicgames-freegames-node:latest
JSON 構成がない場合、構成できるアカウントは 1 つだけです。
$ docker run -d -e TZ=America/Chicago -e [email protected] -e RUN_ON_STARTUP=true -e BASE_URL=https://example.com -e SMTP_HOST=smtp.gmail.com -e SMTP_PORT=587 -e [email protected] -e EMAIL_SENDER_NAME="Epic Games Captchas" -e [email protected] -e SMTP_SECURE=true -e [email protected] -e SMTP_PASSWORD=abc123 -v /my/host/dir/:/usr/app/config:rw -p 3000:3000 -m 2g ghcr.io/claabs/epicgames-freegames-node:latest
デバイス コード認証によるログインで問題が発生した場合は、一時セッションの Cookie をインポートできます。
https://www.epicgames.com/id
に変更して、エクスポート ボタンをクリックします。 ./config
フォルダーに<email_address>-cookies.json
(例: [email protected]
) を作成し、Cookie を貼り付けます。何らかの理由で、このツールの実行に Docker を使用したくない場合は、このリポジトリを複製して Node.js をインストールすることで、ソースからツールを実行できます。
git clone https://github.com/claabs/epicgames-freegames-node.git
config
フォルダーを作成しますnpm i
実行しますnpm run start
git pull
npm i
v5 では、いくつかのオプションが追加または削除されました。追加/削除されたオプションは既存の v4 構成に影響しませんが、安定したソリューションを得るにはconfig.json
変更が必要になる場合があります。
cronSchedule
: デフォルトは 6 時間ごとに変更されました。デバイス コード認証リフレッシュ トークンは 8 時間後に期限切れになるため、cron スケジュールを 8 時間ごとよりも頻繁に実行するように変更する必要があります。 account.password
: ログイン資格情報は使用されなくなりましたaccount.totp
: ログイン認証情報は使用されなくなりましたnoHumanErrorHelp
: 購入は自動化されなくなりましたhcaptchaAccessibilityUrl
: v4 で非推奨になりましたemail
: v4 で非推奨になりました。 "type": "email"
のnotifiers
を使用してくださいbaseUrl
: v4 で非推奨になったので、 webPortalConfig.baseUrl
を使用してくださいonlyWeekly
: v4 で非推奨になったので、 searchStrategy
使用してくださいインスピレーションを与えてくれた epicgames-weekly-freegames に感謝します。
デバイス コード認証を可能にするドキュメントを提供してくれた EpicResearch に感謝します。