claabs / epicgames-freegames-node

Automatically login and find available free games the Epic Games Store. Sends you a prepopulated checkout link so you can complete the checkout after logging in. Supports multiple accounts, login sessions, and scheduled runs.
https://hub.docker.com/r/charlocharlie/epicgames-freegames
MIT License
1.39k stars 93 forks source link

Help setting up localtunnel #347

Closed mgrimace closed 1 year ago

mgrimace commented 1 year ago

What I don't understand is this webserver setup (and I don't yet grasp reverse proxy, etc.), here's what I have setup so far and my questions follow:

my compose.yaml

services:
  epicgames-freegames:
    restart: unless-stopped
    container_name: epicgames-freegames
    environment:
      - TZ=Canada/Toronto
    volumes:
      - /opt/appdata/epic/config:/usr/app/config
    image: charlocharlie/epicgames-freegames:latest
    ports:
      - 3000:3000

My config.json (with senstive info removed of course)

{
  "runOnStartup": true,
  "cronSchedule": "5 16 * * *",
  "logLevel": "info",
  "webPortalConfig": {
    "baseUrl": "https://store.epicgames.com"
  },
  "accounts": [
    {
      "email": "removed",
      "password": "removed",
      "totp": "removed"
    },
  ],
  "notifiers": [
    // You may configure as many of any notifier as needed
    // Here are some examples of each type
    {
      "type": "email",
      "smtpHost": "smtp-mail.outlook.com",
      "smtpPort": 587,
      "emailSenderAddress": "removed",
      "emailSenderName": "Epic Games Captchas",
      "emailRecipientAddress": "removed",
      "secure": false,
      "auth": {
          "user": "removed",
          "pass": "removed",
      },
    },
  ],
}

What I don't understand is, what goes in the baseurl? My container IP? Where does the localtunnel bit below actually go in the config (e.g., at the end)? And do I need to do anything else once that's in the config or just run the container?

{
  "webPortalConfig": {
    "localtunnel": true,
  },
}

I fully realize these are very beginner questions and I very much appreciate any advice! I should also mention this project lives in a linux container (LXC) on a small Proxmox home server and has it's own IP on the local network (e.g., 192.168....).

CH3NGYZ commented 1 year ago

"baseurl" is the address where you access the pupperteer in the container (to challenge hcaptcha). In your case, you should set "baseurl" to "http://192.168.x.x:3000" instead of "https://store.epicgames.com", because you cannot access the container through" https://store.epicgames.com". If you configure a reverse proxy, for example, you can access port 3000 of the 192.168.x.x host in the local area network through the public network address "http(s)://example.com", then "baseurl" can be set to the address of the reverse proxy (http (s)://example.com) to access the local area network container on the public network to challenge hcaptcha.

This passage is translated. If you don't understand anything, please let me know.

mgrimace commented 1 year ago

"baseurl" is the address where you access the pupperteer in the container (to challenge hcaptcha). In your case, you should set "baseurl" to "http://192.168.x.x:3000" instead of "https://store.epicgames.com", because you cannot access the container through" https://store.epicgames.com".

Thanks so much, that resolved the local piece for me. I kept everything the same but just changed the baseurl tohttp://192.168.x.x:3000 and it seems to be working. I had the login issue but using the temporary cookie seems to have resolved that.

In terms of localtunnel setup, where does this go in the config? And are there any other steps needed, or truly just add it to the config?

{
  "webPortalConfig": {
    "localtunnel": true,
  },
}
alyx4000 commented 1 year ago

Am I able to contact you anywhere @mgrimace