Example

{
"runOnStartup": true,
"cronSchedule": "0 0,6,12,18 * * *",
"logLevel": "info",
"webPortalConfig": {
"baseUrl": "https://epic.example.com",
},
"accounts": [
{
"email": "example@gmail.com",
},
],
"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": "hello@gmail.com",
"emailSenderName": "Epic Games Free Games",
"emailRecipientAddress": "hello@gmail.com",
"secure": false,
"auth": {
"user": "hello@gmail.com",
"pass": "abc123",
},
},
{
"type": "discord",
"webhookUrl": "https://discord.com/api/webhooks/123456789123456789/A-abcdefghijklmn-abcdefghijklmnopqrst12345678-abcdefghijklmnop123456",
},
{
"type": "telegram",
"token": "644739147:AAGMPo-Jz3mKRnHRTnrPEDi7jUF1vqNOD5k",
"chatId": "-987654321",
},
{
"type": "apprise",
"apiUrl": "http://192.168.1.2:8000",
"urls": "mailto://user:pass@gmail.com",
},
],
}

Hierarchy

  • AppConfig

Properties

accountConcurrency: number = ...

How many accounts can be processed at the same time

Example

1

Default

3

Env

ACCOUNT_CONCURRENCY

accounts: AccountConfig[]

A list of accounts to work with

browserLaunchRetryAttempts: number = ...

How many times to attempt retry attempts to launch a browser after it times out

Example

2

Default

5

Env

BROWSER_LAUNCH_RETRY_ATTEMPTS

browserLaunchTimeout: number = ...

In seconds, how long before a stuck Chromium process times out and gets restarted

Example

30

Default

15

Env

BROWSER_LAUNCH_TIMEOUT

browserNavigationTimeout: number = ...

How long in milliseconds the browser navigation will wait before timing out. 0 disables timeout (not recommended). See: https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pagesetdefaulttimeouttimeout

Example

120000

Default

30000

Env

BROWSER_NAVIGATION_TIMEOUT

countryCode: undefined | string = process.env.COUNTRY_CODE

The 2 character country code associated with your account. Used when determining if a game is blacklisted for your account. Commonly blacklisted countries: "MO","HK","RU","BY","CN"

Example

RU

Default

blacklisting is not checked

Env

COUNTRY_CODE

cronSchedule: string = ...

Cron string of when to run the process. It is recommended to run every 6 hours, otherwise the refresh tokens will expire after 8 hours and a new login will be prompted every run. If you want the check to occur immediately after the new free game is released, you can offset the cron schedule. For example in a timezone where the free games release at 11:00am: 0 5,11,17,23 * * *

Example

0 5,11,17,23 * * *

Default

0 0,6,12,18 * * * (every six hours)

Env

CRON_SCHEDULE

deviceAuthClientId: string = ...

The Epic Games application client ID used for device code authorization to check your account's ownership of a game List of available clients here.

Example

3446cd72694c4a4485d81b77adbb2141

Default

98f7e42c2e3a4f86a74eb43fbb41ed39 (fortniteIOSGameClient client ID)

Env

DEVICE_AUTH_CLIENT_ID

deviceAuthPollRateSeconds: number = ...

After redirecting to a device authorization verification URL, how often the Epic Games API is polled for a successful login.

Example

10

Default

5

Env

DEVICE_AUTH_POLL_RATE_SECONDS

deviceAuthSecret: string = ...

The Epic Games application secret used for device code authorization to check your account's ownership of a game. List of available clients here.

Example

9209d4a5e25a457fb9b07489d313b41a

Default

0a2449a2-001a-451e-afec-3e812901c4d7 (fortniteIOSGameClient client secret)

Env

DEVICE_AUTH_SECRET

intervalTime: number = ...

The delay interval between runs of each account in seconds. (Only effective when multiple accounts are configured)

Example

30

Default

60

Env

INTERVAL_TIME

logLevel: string = ...

Log level in lower case. Can be [silent, error, warn, info, debug, trace]

Example

debug

Default

info

Env

LOG_LEVEL

notificationTimeoutHours: number = ...

Number of hours to wait for a response for a notification. The notification wait is blocking, so while other accounts will still continue, the process won't exit until all login requests are solved. If the timeout is reached, the process will exit, and the URL in the notification will be inaccessible.

Example

168

Default

24

Env

NOTIFICATION_TIMEOUT_HOURS

notifiers?: AnyNotifierConfig[]

Global default notification configuration.

You may configure multiple notifiers, and they will all be triggered simultaneously.

runOnStartup: boolean = ...

If true, the process will run on startup in addition to the scheduled time.

Example

true

Default

false

Env

RUN_ON_STARTUP

runOnce: boolean = ...

If true, don't schedule runs. Use with RUN_ON_STARTUP to run once and shutdown.

Example

true

Default

false

Env

RUN_ONCE

searchStrategy: string = ...

The search criteria for finding free games. Either the weekly promotion, and free promotion, or all free products.

Example

weekly

Default

all

Env

SEARCH_STRATEGY

skipVersionCheck: boolean = ...

Skip the call to api.github.com that checks for the latest version on launch

Example

true

Default

false

Env

SKIP_VERSION_CHECK

testNotifiers: boolean = ...

When true, the process will send test notifications with a test redirect to example.com for all configured accounts. Be sure to disable this after a successful test. This test will block normal operation until the test link is accessed by one account. The test page can only be used once.

Example

true

Default

false

Env

TEST_NOTIFIERS

timezone: string = ...

TZ name from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List

Example

America/Chicago

Default

UTC

Env

TZ

webPortalConfig?: WebPortalConfig

Web server configurations for the remote web portal

Generated using TypeDoc