Inicie sesión automáticamente y busque juegos gratuitos disponibles en Epic Games Store. Le envía un enlace de pago precargado para que pueda completarlo después de iniciar sesión. Admite múltiples cuentas, sesiones de inicio de sesión y ejecuciones programadas.
La herramienta se puede configurar con una combinación de JSON y variables de entorno. El archivo de configuración admite la sintaxis JSON5 (comentarios, comas finales, etc.). Para cada propiedad, el valor de configuración JSON tiene prioridad sobre el valor de la variable de entorno respectiva.
Para obtener detalles sobre cada opción, sus valores predeterminados y la clave de la variable de entorno, consulte el sitio de documentación de configuración.
El archivo de configuración se almacena en el volumen /usr/app/config
montado y puede denominarse config.json
o config.json5
.
config.json
o 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"
}
} ,
] ,
}
En ocasiones, este proyecto puede solicitarle que inicie sesión mediante la autenticación del código del dispositivo. La sesión del código del dispositivo de Epic Games caduca después de 10 minutos, por lo que este proyecto utiliza un servidor web y redirecciona para evitar enviarle un nuevo enlace cada 10 minutos. Hay dos opciones para ejecutar el servidor web:
Si está familiarizado con el alojamiento de servidores web y/o servidores proxy inversos, siga esto:
-p 81:3000
asigna el puerto 81 de la máquina host al puerto 3000 del contenedor)webPortalConfig.baseUrl
en la configuración Si no tiene la capacidad de transferir el proxy hacia adelante/inverso en su red, aún puede acceder al servidor web de forma remota configurando:
{
"webPortalConfig" : {
"localtunnel" : true ,
} ,
}
en tu config.json
.
Cada método de notificación tiene instrucciones de configuración únicas. Lea su documentación (métodos de notificación) en el sitio de configuración para obtener detalles e instrucciones exactos. La configuración de ejemplo también puede ayudar como ejemplo.
Dado que es posible que no siempre se requieran acciones del usuario, los métodos de notificación y el servidor web se pueden probar manualmente. Básicamente, sólo necesitas agregar:
"testNotifiers" : true ,
a la raíz de su config.json
. Para obtener más detalles, consulte los documentos de configuración. Nota: para optimizar el uso de la memoria en espera, el servidor web no se ejecuta cuando el proceso no se está ejecutando. El servidor web sólo estará disponible durante una ejecución programada.
Esta imagen está disponible tanto en GitHub Container Registry como en Docker Hub:
ghcr.io/claabs/epicgames-freegames-node:latest
charlocharlie/epicgames-freegames:latest
Si tiene problemas con el inicio de Chromium (se bloquea al iniciar sesión/notificación), puede probar la imagen de Debian:
ghcr.io/claabs/epicgames-freegames-node:debian
charlocharlie/epicgames-freegames:debian
Si está utilizando la configuración JSON completa, los únicos configurables restantes de Docker son el puerto y el volumen.
La mayoría de las opciones de configuración se pueden configurar mediante una variable de entorno. Busque la etiqueta env
en los documentos de configuración para la clave de cada opción.
Si por alguna razón desea cambiar el directorio de configuración predeterminado o el nombre del archivo de configuración, CONFIG_DIR
y CONFIG_FILE_NAME
están disponibles como variables de entorno.
Puerto anfitrión | Puerto de contenedores | Descripción |
---|---|---|
3000 | 3000 | Mapeo de puertos en el que reside el servidor web que aloja la página de resolución de captcha |
Ubicación del anfitrión | Ubicación del contenedor | Modo | Descripción |
---|---|---|---|
/my/host/dir/ | /usr/app/config | rw | Ubicación de los archivos de configuración y cookies |
Se recomienda agregar -m 2g
como parámetro docker run
para establecer un uso máximo de memoria de 2 GB. Los procesos de Chromium a veces pueden fallar y, sin límite, su sistema puede eventualmente bloquearse.
$ docker run -d -v /my/host/dir/:/usr/app/config:rw -p 3000:3000 -m 2g ghcr.io/claabs/epicgames-freegames-node:latest
Sin la configuración JSON, solo puedes configurar una cuenta.
$ 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
Si tiene problemas para iniciar sesión con la autenticación del código del dispositivo, puede importar cookies para una sesión temporal.
https://www.epicgames.com/id
y haga clic en el botón exportar: ./config
montada, cree <email_address>-cookies.json
(por ejemplo, [email protected]
) y pegue sus cookies.Si por alguna razón no desea utilizar Docker para ejecutar esta herramienta, puede ejecutarla desde la fuente clonando este repositorio e instalando Node.js.
git clone https://github.com/claabs/epicgames-freegames-node.git
config
en el directorio clonado/desempaquetadonpm i
npm run start
git pull
npm i
En la versión 5, se agregaron o eliminaron varias opciones. Las opciones agregadas/eliminadas no deberían afectar las configuraciones v4 existentes, pero es posible que sea necesario cambiar su config.json
para obtener una solución estable.
cronSchedule
: el valor predeterminado se cambió a cada seis horas. Debe cambiar su programación cron para que se ejecute con más frecuencia que cada 8 horas, ya que el token de actualización de autenticación del código del dispositivo caduca después de 8 horas. account.password
: las credenciales de inicio de sesión ya no se utilizanaccount.totp
: las credenciales de inicio de sesión ya no se utilizannoHumanErrorHelp
: la compra ya no está automatizadahcaptchaAccessibilityUrl
: quedó obsoleto en v4email
: quedó obsoleto en v4, use notifiers
con "type": "email"
baseUrl
: quedó obsoleto en v4, use webPortalConfig.baseUrl
onlyWeekly
: quedó obsoleto en v4, use searchStrategy
Gracias a epicgames-weekly-freegames por la inspiración.
Gracias a EpicResearch por la documentación que hizo posible la autenticación del código del dispositivo.