Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Unraid OS] Error when starting docker #386

Closed
OnlyDads opened this issue Oct 22, 2023 · 26 comments
Closed

[Unraid OS] Error when starting docker #386

OnlyDads opened this issue Oct 22, 2023 · 26 comments

Comments

@OnlyDads
Copy link

Describe the bug

I am running this on unraid from the app store, this in particular (Twitch-Channel-Points-Miner-Leander
rdavidoff)

I have updated the example run.py and placed it into the folder as outlined in the setup.

When trying to start, the log shows the following: /usr/local/bin/python: can't find 'main' module in '/usr/src/app/run.py'

I'm not sure how to troubleshoot further. I hope this is the right place to ask this question, any help/advice would be appreciated as I am pretty inexperienced with this.

Steps to reproduce

  1. install image from unraid store
  2. update run.py
  3. place run.py in the designated folder
  4. start the docker
  5. read the log with the error /usr/local/bin/python: can't find 'main' module in '/usr/src/app/run.py'

Expected behavior

I would like the docker to start.

Operating system

linux unraid

Python version

UNK

Miner version

UNK

Other relevant software versions

No response

Logs

I am unsure how to add this to my script. I'm sorry.

Additional context

No response

@rdavydov
Copy link
Owner

rdavydov commented Oct 22, 2023

Need more info.

  1. install image from unraid store

How exactly was this done? I mean what commands/actions?

  1. place run.py in the designated folder

What folder exactly?

  1. start the docker

How exactly was this done? I mean what commands/actions?

@rdavydov rdavydov added the ❌ invalid This doesn't seem right label Oct 22, 2023
@NoxRare
Copy link

NoxRare commented Oct 23, 2023

You need to get in contact with whomever is maintaining that unraid app install as it is not being managed by rdavydov and therefore out of their hands, my guess is that the installer is misconfigured. Please contact Unraid do not make an report here as this is not caused by the application / docker image but rather the container being misconfigured.

@c0rrre
Copy link

c0rrre commented Oct 24, 2023

Hi,
im also using the miner in Unraid and here is my configuration:
image

Make sure to check the path for main.py and mount the file directly:
image

The run.py (or main.py in my case) has to exist in the appdata folder

@OnlyDads
Copy link
Author

OnlyDads commented Oct 24, 2023 via email

@OnlyDads
Copy link
Author

Need more info.

  1. install image from unraid store

How exactly was this done? I mean what commands/actions?
It's an automated process, I'm assuming that unraid runs compose commands but I could get into the logs to figure that out. I'm relatively new to docker in general. I'm sorry that wasn't very helpful.

  1. place run.py in the designated folder

What folder exactly?
run.py is located at
\UNRAID\appdata\twitchminer\run.py\run.py\file here.
I think I'm one level too deep and will move/copy the file to one directory UP in the stack. I didn't realize this until right now and looking at the other users unraid settings.

  1. start the docker

How exactly was this done? I mean what commands/actions?

**I'm sorry I am not currently equipped with the knowledge that you are seeking.

Essentially, I installed the docker application from the unraid store, this is the one: Twitch-Channel-Points-Miner-Leander**

You need to get in contact with whomever is maintaining that unraid app install as it is not being managed by rdavydov and therefore out of their hands, my guess is that the installer is misconfigured. Please contact Unraid do not make an report here as this is not caused by the application / docker image but rather the container being misconfigured.

I am sorry, I did not intend to create issues. I reported the problem to the wrong place. I am new to github and lack epertise to answer most of these questions. no doubt it's a configuration error. I'm sorry again to bother you.

@OnlyDads
Copy link
Author

I was able to move the run.py to the directory its looking for, however I cannot get the container to start. In the log I get the following error message..

/usr/local/bin/python: can't find 'main' module in '/usr/src/app/run.py'

I only added my twitch credentials and a single streamer in the run.py example.

Any thoughts or ideas are much appreciated.

@c0rrre
Copy link

c0rrre commented Oct 24, 2023

\UNRAID\appdata\twitchminer\run.py\run.py

This path is wrong

@rdavydov rdavydov removed the ❌ invalid This doesn't seem right label Oct 24, 2023
@rdavydov rdavydov changed the title Error when starting docker [Unraid OS] Error when starting docker Oct 24, 2023
@NoxRare
Copy link

NoxRare commented Oct 24, 2023

@segaastrocity You need to give us more to go on here, Please provide screenshots of your current set up with more detail we cant help you at all.
Feel free to contact me on discord aswell: majjoduran

While I know very little about unraid I know a fair bit about docker.

@rdavydov
Copy link
Owner

Most likely it should be \UNRAID\appdata\twitchminer\run.py

What is the contents of your \UNRAID\appdata\twitchminer folder?

@rdavydov
Copy link
Owner

Please provide screenshots of your current set up with more detail we cant help you at all.

Right, and these too. @segaastrocity please also provide screenshots just like @c0rrre did.

This will help a lot in understanding what's wrong.

@OnlyDads
Copy link
Author

I think I fixed it! It's now running and i just activated it through the twitch window from the log file with the code.

I'm now trying to access the web interface and coming into some issues but i will mess with them for a few minutes and then report back with screenshots. I apologize for not providing everything needed but I wanted to specifically thank all of you for your time, efforts and energy. I am truly grateful for you and appreciate you very much!

@OnlyDads
Copy link
Author

twitchminer

These are my current settings, but I cannot access the web ui at myinternalserverip:5555 as i have set it.

@rdavydov
Copy link
Owner

These are my current settings, but I cannot access the web ui at myinternalserverip:5555 as i have set it.

Most likely you should change the run.py file accordingly. Please provide its full contents. Don't forget to omit your credentials.

@NoxRare
Copy link

NoxRare commented Oct 24, 2023

in your .py file make sure the port is set to 5000 and not 5555. Is the logs saying that the analytics page is running?

@rdavydov
Copy link
Owner

image

The fact that the container port is displayed as 5000 should give you a hint.

@OnlyDads
Copy link
Author

The container port is 5000, but in unraid I can set a specific port to avoid conflicts with other services. I don't think the webserver is running. Can you tell me how I can tell?

Here is a copy of my file, with the import stuff removed:
If there is a different way to share this, Please let me know and I can do whatever is required.

`# -- coding: utf-8 --

import logging
from colorama import Fore
from TwitchChannelPointsMiner import TwitchChannelPointsMiner
from TwitchChannelPointsMiner.logger import LoggerSettings, ColorPalette
from TwitchChannelPointsMiner.classes.Chat import ChatPresence
from TwitchChannelPointsMiner.classes.Discord import Discord
from TwitchChannelPointsMiner.classes.Telegram import Telegram
from TwitchChannelPointsMiner.classes.Matrix import Matrix
from TwitchChannelPointsMiner.classes.Pushover import Pushover
from TwitchChannelPointsMiner.classes.Settings import Priority, Events, FollowersOrder
from TwitchChannelPointsMiner.classes.entities.Bet import Strategy, BetSettings, Condition, OutcomeKeys, FilterCondition, DelayMode
from TwitchChannelPointsMiner.classes.entities.Streamer import Streamer, StreamerSettings

twitch_miner = TwitchChannelPointsMiner(
username="myusername",
password="mypassword$", # If no password will be provided, the script will ask interactively
claim_drops_startup=False, # If you want to auto claim all drops from Twitch inventory on the startup
priority=[ # Custom priority in this case for example:
Priority.STREAK, # - We want first of all to catch all watch streak from all streamers
Priority.DROPS, # - When we don't have anymore watch streak to catch, wait until all drops are collected over the streamers
Priority.ORDER # - When we have all of the drops claimed and no watch-streak available, use the order priority (POINTS_ASCENDING, POINTS_DESCEDING)
],
enable_analytics=False, # Disables Analytics if False. Disabling it significantly reduces memory consumption
disable_ssl_cert_verification=False, # Set to True at your own risk and only to fix SSL: CERTIFICATE_VERIFY_FAILED error
disable_at_in_nickname=False, # Set to True if you want to check for your nickname mentions in the chat even without @ sign
logger_settings=LoggerSettings(
save=True, # If you want to save logs in a file (suggested)
console_level=logging.INFO, # Level of logs - use logging.DEBUG for more info
console_username=False, # Adds a username to every console log line if True. Also adds it to Telegram, Discord, etc. Useful when you have several accounts
auto_clear=True, # Create a file rotation handler with interval = 1D and backupCount = 7 if True (default)
time_zone="", # Set a specific time zone for console and file loggers. Use tz database names. Example: "America/Denver"
file_level=logging.DEBUG, # Level of logs - If you think the log file it's too big, use logging.INFO
emoji=True, # On Windows, we have a problem printing emoji. Set to false if you have a problem
less=False, # If you think that the logs are too verbose, set this to True
colored=True, # If you want to print colored text
color_palette=ColorPalette( # You can also create a custom palette color (for the common message).
STREAMER_online="GREEN", # Don't worry about lower/upper case. The script will parse all the values.
streamer_offline="red", # Read more in README.md
BET_wiN=Fore.MAGENTA # Color allowed are: [BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET].
),
telegram=Telegram( # You can omit or set to None if you don't want to receive updates on Telegram
chat_id=123456789, # Chat ID to send messages @getmyid_bot
token="123456789:shfuihreuifheuifhiu34578347", # Telegram API token @Botfather
events=[Events.STREAMER_ONLINE, Events.STREAMER_OFFLINE,
Events.BET_LOSE, Events.CHAT_MENTION], # Only these events will be sent to the chat
disable_notification=True, # Revoke the notification (sound/vibration)
),
discord=Discord(
webhook_api="https://discord.com/api/webhooks/0123456789/0a1B2c3D4e5F6g7H8i9J", # Discord Webhook URL
events=[Events.STREAMER_ONLINE, Events.STREAMER_OFFLINE,
Events.BET_LOSE, Events.CHAT_MENTION], # Only these events will be sent to the chat
),
matrix=Matrix(
username="twitch_miner", # Matrix username (without homeserver)
password="...", # Matrix password
homeserver="matrix.org", # Matrix homeserver
room_id="...", # Room ID
events=[Events.STREAMER_ONLINE, Events.STREAMER_OFFLINE, Events.BET_LOSE], # Only these events will be sent to the chat
),
pushover=Pushover(
userkey="YOUR-ACCOUNT-TOKEN", # Login to https://pushover.net/, the user token is on the main page.
token="YOUR-APPLICATION-TOKEN", # Create a application on the website, and use the token shown in your application.
priority=0, # Read more about priority here: https://pushover.net/api#priority
sound="pushover", # A list of sounds can be found here: https://pushover.net/api#sounds
events=[Events.CHAT_MENTION, Events.DROP_CLAIM], # Only these events will be sent.
)
),
streamer_settings=StreamerSettings(
make_predictions=True, # If you want to Bet / Make prediction
follow_raid=True, # Follow raid to obtain more points
claim_drops=True, # We can't filter rewards base on stream. Set to False for skip viewing counter increase and you will never obtain a drop reward from this script. Issue #21
claim_moments=True, # If set to True, https://help.twitch.tv/s/article/moments will be claimed when available
watch_streak=True, # If a streamer go online change the priority of streamers array and catch the watch screak. Issue #11
chat=ChatPresence.ONLINE, # Join irc chat to increase watch-time [ALWAYS, NEVER, ONLINE, OFFLINE]
bet=BetSettings(
strategy=Strategy.SMART, # Choose you strategy!
percentage=5, # Place the x% of your channel points
percentage_gap=20, # Gap difference between outcomesA and outcomesB (for SMART strategy)
max_points=50000, # If the x percentage of your channel points is gt bet_max_points set this value
stealth_mode=True, # If the calculated amount of channel points is GT the highest bet, place the highest value minus 1-2 points Issue Tkd-Alex#33
delay_mode=DelayMode.FROM_END, # When placing a bet, we will wait until delay seconds before the end of the timer
delay=6,
minimum_points=20000, # Place the bet only if we have at least 20k points. Issue #113
filter_condition=FilterCondition(
by=OutcomeKeys.TOTAL_USERS, # Where apply the filter. Allowed [PERCENTAGE_USERS, ODDS_PERCENTAGE, ODDS, TOP_POINTS, TOTAL_USERS, TOTAL_POINTS]
where=Condition.LTE, # 'by' must be [GT, LT, GTE, LTE] than value
value=800
)
)
)
)

You can customize the settings for each streamer. If not settings were provided, the script would use the streamer_settings from TwitchChannelPointsMiner.

If no streamer_settings are provided in TwitchChannelPointsMiner the script will use default settings.

The streamers array can be a String -> username or Streamer instance.

The settings priority are: settings in mine function, settings in TwitchChannelPointsMiner instance, default settings.

For example, if in the mine function you don't provide any value for 'make_prediction' but you have set it on TwitchChannelPointsMiner instance, the script will take the value from here.

If you haven't set any value even in the instance the default one will be used

#twitch_miner.analytics(host="127.0.0.1", port=5000, refresh=5, days_ago=7) # Start the Analytics web-server

twitch_miner.mine(
[
Streamer("jeffgerstmann", settings=StreamerSettings(make_predictions=True , follow_raid=True , claim_drops=True , watch_streak=True , bet=BetSettings(strategy=Strategy.SMART , percentage=5 , stealth_mode=True, percentage_gap=20 , max_points=234 , filter_condition=FilterCondition(by=OutcomeKeys.TOTAL_USERS, where=Condition.LTE, value=800 ) ) )),
Streamer("GiantBomb", settings=StreamerSettings(make_predictions=False , follow_raid=True , claim_drops=False , bet=BetSettings(strategy=Strategy.PERCENTAGE , percentage=5 , stealth_mode=False, percentage_gap=20 , max_points=1234 , filter_condition=FilterCondition(by=OutcomeKeys.TOTAL_POINTS, where=Condition.GTE, value=250 ) ) )),
Streamer("streamer-username03", settings=StreamerSettings(make_predictions=True , follow_raid=False , watch_streak=True , bet=BetSettings(strategy=Strategy.SMART , percentage=5 , stealth_mode=False, percentage_gap=30 , max_points=50000 , filter_condition=FilterCondition(by=OutcomeKeys.ODDS, where=Condition.LT, value=300 ) ) )),
Streamer("streamer-username04", settings=StreamerSettings(make_predictions=False , follow_raid=True , watch_streak=True )),
Streamer("streamer-username05", settings=StreamerSettings(make_predictions=True , follow_raid=True , claim_drops=True , watch_streak=True , bet=BetSettings(strategy=Strategy.HIGH_ODDS , percentage=7 , stealth_mode=True, percentage_gap=20 , max_points=90 , filter_condition=FilterCondition(by=OutcomeKeys.PERCENTAGE_USERS, where=Condition.GTE, value=300 ) ) )),
Streamer("streamer-username06"),
Streamer("streamer-username07"),
Streamer("streamer-username08"),
"streamer-username09",
"streamer-username10",
"streamer-username11"
], # Array of streamers (order = priority)
followers=False, # Automatic download the list of your followers
followers_order=FollowersOrder.ASC # Sort the followers list by follow date. ASC or DESC`

@OnlyDads
Copy link
Author

https://pastebin.com/MKT24fQf

if this is easier, IDK why the formatting got strange, I copied out of notepad++

@rdavydov
Copy link
Owner

Uncomment the line #twitch_miner.analytics(host="127.0.0.1", port=5000, refresh=5, days_ago=7) # Start the Analytics web-server

Just remove the # sign in the beginning of the line.

@NoxRare
Copy link

NoxRare commented Oct 24, 2023

At this point you need to actually read the config options, this is basic configuration stuff.

Change enable_analytics=False to enable_analytics=True

remove the # at the start at: #twitch_miner.analytics(host="127.0.0.1", port=5000, refresh=5, days_ago=7)

@rdavydov
Copy link
Owner

And set enable_analytics=True

@rdavydov
Copy link
Owner

Also, changing host="127.0.0.1" to host="0.0.0.0" in the run.py file should be your next step in case it still doesn't work.

@OnlyDads
Copy link
Author

OnlyDads commented Oct 24, 2023 via email

@rdavydov
Copy link
Owner

Is this issue solved and can be closed? @segaastrocity It would be nice of you to leave a comment before closing the issue, so it will help other people with the same problem. Did you manage to solve this issue? What was the cause?

@OnlyDads
Copy link
Author

OnlyDads commented Oct 26, 2023 via email

@WaffleMaster22
Copy link

I have the same issue on unraid. Where is the correct location?

@rdavydov
Copy link
Owner

@WaffleMaster22 you can tag @segaastrocity so they would receive a mention notification.
This is an old and closed issue, no guarantees that they would read it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants