Faça login automaticamente e encontre os jogos gratuitos disponíveis na Epic Games Store. Envia a você um link de checkout pré-preenchido para que você possa concluir o checkout após fazer login. Suporta várias contas, sessões de login e execuções agendadas.
A ferramenta pode ser configurada com uma combinação de JSON e variáveis de ambiente. O arquivo de configuração suporta sintaxe JSON5 (comentários, vírgulas finais, etc.). Para cada propriedade, o valor de configuração JSON tem prioridade sobre o respectivo valor da variável de ambiente.
Para obter detalhes sobre cada opção, seus padrões e chave de variável de ambiente, consulte o site de documentação de configuração.
O arquivo de configuração é armazenado no volume /usr/app/config
montado e pode ser denominado config.json
ou config.json5
.
config.json
ou 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"
}
} ,
] ,
}
Este projeto pode ocasionalmente solicitar que você faça login por meio de autenticação de código do dispositivo. A sessão de código do dispositivo da Epic Games expira após 10 minutos, então este projeto usa um servidor web e redireciona para evitar o envio de um novo link a cada 10 minutos. Existem duas opções para executar o servidor web:
Se você estiver familiarizado com hospedagem de servidores web e/ou proxies reversos, siga isto:
-p 81:3000
mapeia a porta 81 da máquina host para a porta 3000 do contêiner)webPortalConfig.baseUrl
na configuração Se você não tiver a capacidade de portar proxy direto/reverso em sua rede, ainda poderá acessar o servidor web remotamente configurando:
{
"webPortalConfig" : {
"localtunnel" : true ,
} ,
}
em seu config.json
.
Cada método de notificação possui instruções de configuração exclusivas. Leia sua documentação (métodos de notificação) no site de configuração para obter detalhes e instruções exatos. A configuração de exemplo também pode ajudar como exemplo.
Como as ações do usuário nem sempre são necessárias, os métodos de notificação e o servidor web podem ser testados manualmente. Essencialmente, você só precisa adicionar:
"testNotifiers" : true ,
para a raiz do seu config.json
. Para mais detalhes, confira os documentos de configuração. Nota: para otimizar o uso da memória em espera, o servidor web não funciona quando o processo não está em execução. O servidor web só estará disponível durante uma execução agendada.
Esta imagem está disponível no GitHub Container Registry e no Docker Hub:
ghcr.io/claabs/epicgames-freegames-node:latest
charlocharlie/epicgames-freegames:latest
Se você estiver tendo problemas com a inicialização do Chromium (trava no login/notificação), você pode tentar a imagem do Debian:
ghcr.io/claabs/epicgames-freegames-node:debian
charlocharlie/epicgames-freegames:debian
Se você estiver usando a configuração JSON completa, os únicos configuráveis restantes do Docker serão a porta e o volume.
A maioria das opções de configuração pode ser definida por meio de variável de ambiente. Procure a tag env
nos documentos de configuração para a chave de cada opção.
Se por algum motivo você quiser alterar o diretório de configuração padrão ou o nome do arquivo de configuração, CONFIG_DIR
e CONFIG_FILE_NAME
estarão disponíveis como variáveis de ambiente.
Porta hospedeira | Porto de contêineres | Descrição |
---|---|---|
3000 | 3000 | Mapeamento de porta na qual reside o servidor web que hospeda a página de resolução de captcha |
Localização do anfitrião | Localização do contêiner | Modo | Descrição |
---|---|---|---|
/my/host/dir/ | /usr/app/config | rw | Localização dos arquivos de configuração e cookie |
É recomendado adicionar -m 2g
como parâmetro docker run
para definir um uso máximo de memória de 2 GB. Os processos do Chromium às vezes podem falhar e, sem limite, seu sistema pode travar.
$ docker run -d -v /my/host/dir/:/usr/app/config:rw -p 3000:3000 -m 2g ghcr.io/claabs/epicgames-freegames-node:latest
Sem a configuração JSON, você só pode configurar uma conta.
$ 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
Se estiver tendo problemas para fazer login com a autenticação do código do dispositivo, você poderá importar cookies para uma sessão temporária.
https://www.epicgames.com/id
e clique no botão exportar: ./config
montada, crie <email_address>-cookies.json
(por exemplo, [email protected]
) e cole seus cookies.Se por algum motivo você não quiser usar o Docker para executar esta ferramenta, você pode executá-la a partir do código-fonte clonando este repositório e instalando o Node.js.
git clone https://github.com/claabs/epicgames-freegames-node.git
config
no diretório clonado/descompactadonpm i
npm run start
git pull
npm i
Na v5, diversas opções foram adicionadas ou removidas. As opções adicionadas/removidas não devem afetar as configurações v4 existentes, mas pode ser necessário alterar seu config.json
para uma solução estável.
cronSchedule
: O padrão foi alterado para a cada seis horas. Você deve alterar sua programação do cron para execução com mais frequência do que a cada 8 horas, pois o token de atualização de autenticação do código do dispositivo expira após 8 horas. account.password
: as credenciais de login não são mais usadasaccount.totp
: credenciais de login não são mais usadasnoHumanErrorHelp
: a compra não é mais automatizadahcaptchaAccessibilityUrl
: foi descontinuado na v4email
: foi descontinuado na v4, use notifiers
com "type": "email"
baseUrl
: foi descontinuado na v4, use webPortalConfig.baseUrl
onlyWeekly
: foi descontinuado na v4, use searchStrategy
Obrigado a Epicgames-weekly-freegames pela inspiração.
Obrigado à EpicResearch pela documentação que tornou possível a autenticação do código do dispositivo.