[Support] Goobaroo - Modded Minecraft Java Servers


Recommended Posts

Hey @Goobaroo , awesome job on the containers, they're very easy to use!

I have a suggestion regarding modpack versions that might make your life easier: you can call the modpacks.ch api and get the installer id with the version string. For example, I want to play version 1.14.0 of the OceanBlock modpack but i noticed the latest container targets 1.12.0 which is the latest stable. The launch.sh script could do something like
 

curl -s https://api.modpacks.ch/public/modpack/91 | jq '.versions[] | select(.name=="1.14.0") | .id'



Where both the modpack id (91 for OceanBlock) and the version (1.14.0 in this case) could be changed but the rest remains the same.

That particular snippet prints out "2230" which is the id needed for the installer.

Please let me know if you find this useful.

Also: I'm new to unraid so this might be a stupid question, but is there a reason these packages cause me a lot more permission headaches than other ones? Again, thanks for these containers, very useful.

Link to comment

Hi @diogotr7, that is precisely what I'm doing when building the containers, using the APIs both through modpacks.ch and from Curseforge.  

 

While the FTB modpacks do come with that universal installer, there have been bugs that I've fixed on my end when installing the servers.  You also have to take into account the Java version that the container is based on and that could change between modpack versions.

 

2 hours ago, diogotr7 said:

Also: I'm new to unraid so this might be a stupid question, but is there a reason these packages cause me a lot more permission headaches than other ones? Again, thanks for these containers, very useful.

 

I think I've found the issue with the permissions I'm in the process of republishing all the current versions of the modpacks to apply the fix.  From my tests it now correctly writes out the files as nobody:users

Link to comment

Hello, i have updated to the new Docker and i get the following Error:

2022-07-16 12:58:04,141 main ERROR Unable to locate appender "DebugFile" for logger config "root"
[12:58:04] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 40.1.54, --fml.mcVersion, 1.18.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220404.173914]
[12:58:04] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 9.1.3+9.1.3+main.9b69c82a starting: java version 17.0.2 by Oracle Corporation
[12:58:05] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/data/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2314!/ Service=ModLauncher Env=SERVER
Exception in thread "main" com.electronwill.nightconfig.core.io.WritingException: An I/O error occured
        at MC-BOOTSTRAP/[email protected]/com.electronwill.nightconfig.core.io.ConfigWriter.write(ConfigWriter.java:90)
        at MC-BOOTSTRAP/[email protected]/com.electronwill.nightconfig.core.file.WriteSyncFileConfig.save(WriteSyncFileConfig.java:61)
        at MC-BOOTSTRAP/[email protected]/com.electronwill.nightconfig.core.file.AutoreloadFileConfig.save(AutoreloadFileConfig.java:36)
        at MC-BOOTSTRAP/[email protected]/com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.save(AutosaveCommentedFileConfig.java:80)
        at MC-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.FMLConfig.loadFrom(FMLConfig.java:56)
        at MC-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.FMLConfig.load(FMLConfig.java:62)
        at MC-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.FMLServiceProvider.initialize(FMLServiceProvider.java:65)
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServiceDecorator.onInitialize(TransformationServiceDecorator.java:68)
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.lambda$initialiseTransformationServices$7(TransformationServicesHandler.java:92)
        at java.base/java.util.HashMap$Values.forEach(HashMap.java:1065)
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initialiseTransformationServices(TransformationServicesHandler.java:92)
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:51)
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:87)
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:77)
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
        at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
        at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149)
Caused by: java.nio.file.AccessDeniedException: /data/config/fml.toml
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
        at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:484)
        at java.base/java.nio.file.Files.newOutputStream(Files.java:228)
        at MC-BOOTSTRAP/[email protected]/com.electronwill.nightconfig.core.io.ConfigWriter.write(ConfigWriter.java:87)
        ... 16 more
+ ./start.sh
/launch.sh: line 45: ./start.sh: No such file or directory

 

On the Filesystem the start.sh is missing, i think that is the issue.

 

BR

MVLP

 

Link to comment

Let me clarify my request:

Do you think it would make sense to accept the modpack version as an environment variable? It would allow users to update to newer versions of each modpack without the need for you to do so manually. I'm playing a beta version of my modpack and since your containers seem to target latest stable, i can't play it without modifications.

Could even make the user pick latest stable or beta when installing the app, and get the corresponding id with the script i mentioned.

Sorry if it seems like i'm being annoying, just trying to make your life easier as a maintainer :D

Link to comment

@MVLP In a console, change the ownership of the files in /mnt/user/appdata/ftbdirewolf20_118.  

 

chown -R nobody:users /mnt/user/appdata/ftbdirewolf20_118

 

@Z-Server I don't know which container you're running but try fixing the ownership like above, but the directory that is configured for which ever container you're running.

 

 

Longer explanation.

 

All the original containers were running the server inside using a user running under UID 1001.  For anyone who created a new account on their unraid server this would have matched up with a user on the unraid host.  Containers should be running as the nobody user (UID 99).  So all the containers now map to the correct user on the unraid server when running in the containers.   This is really only an issue when you have to write out persistent files like the Minecraft files.

Edited by Goobaroo
  • Like 1
Link to comment
On 7/17/2022 at 10:32 AM, Goobaroo said:

@MVLP In a console, change the ownership of the files in /mnt/user/appdata/ftbdirewolf20_118.  

 

chown -R nobody:users /mnt/user/appdata/ftbdirewolf20_118

 

@Z-Server I don't know which container you're running but try fixing the ownership like above, but the directory that is configured for which ever container you're running.

 

 

Longer explanation.

 

All the original containers were running the server inside using a user running under UID 1001.  For anyone who created a new account on their unraid server this would have matched up with a user on the unraid host.  Containers should be running as the nobody user (UID 99).  So all the containers now map to the correct user on the unraid server when running in the containers.   This is really only an issue when you have to write out persistent files like the Minecraft files.

  

Hey again @Goobaroo, I updated the OceanBlock Docker as it said it had an update. I'm assuming to take care of the user permissions you mentioned. I did the command (customized for the ftboceanblock folder) and I still get the below error in my logs when turning the docker on, then it shuts off. Any suggestions?

+ ID=91
+ VER=2230
+ cd /data
+ [[ true = \f\a\l\s\e ]]
+ echo eula=true
+ [[ -f serverinstall_91_2230 ]]
+ [[ -n FTB OceanBlock v1.14.0 Server Powered by Docker ]]
+ sed -i '/motd\s*=/ c motd=FTB OceanBlock v1.14.0 Server Powered by Docker' /data/server.properties
+ [[ -n world ]]
+ sed -i '/level-name\s*=/ c level-name=world' /data/server.properties
+ [[ -n Kalaup,aRand0mB0t ]]
+ echo Kalaup,aRand0mB0t
+ awk -v RS=, '{print}'
+ [[ -n '' ]]
+ sed -i 's/server-port.*/server-port=25565/g' server.properties
+ [[ -f run.sh ]]
+ [[ -f start.sh ]]
+ [[ -f run.sh ]]
+ [[ -f start.sh ]]
++ ls forge-1.16.5-36.2.33-installer.jar forge-1.16.5-36.2.33.jar
+ FORGE_JAR='forge-1.16.5-36.2.33-installer.jar
forge-1.16.5-36.2.33.jar'
+ curl -Lo log4j2_112-116.xml https://launcher.mojang.com/v1/objects/02937d122c86ce73319ef9975b58896fc1b491d1/log4j2_112-116.xml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1131  100  1131    0     0  13962      0 --:--:-- --:--:-- --:--:-- 13962
+ java -server -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -Dfml.queryResult=confirm -Dlog4j.configurationFile=log4j2_112-116.xml -Xms6144m -Xmx9182m -jar forge-1.16.5-36.2.33-installer.jar forge-1.16.5-36.2.33.jar nogui
+ ID=91
+ VER=2230
+ cd /data
+ [[ true = \f\a\l\s\e ]]
+ echo eula=true
+ [[ -f serverinstall_91_2230 ]]
+ [[ -n FTB OceanBlock v1.14.0 Server Powered by Docker ]]
+ sed -i '/motd\s*=/ c motd=FTB OceanBlock v1.14.0 Server Powered by Docker' /data/server.properties
+ [[ -n world ]]
+ sed -i '/level-name\s*=/ c level-name=world' /data/server.properties
+ [[ -n Kalaup,aRand0mB0t ]]
+ echo Kalaup,aRand0mB0t
+ awk -v RS=, '{print}'
+ [[ -n '' ]]
+ sed -i 's/server-port.*/server-port=25565/g' server.properties
+ [[ -f run.sh ]]
+ [[ -f start.sh ]]
+ [[ -f run.sh ]]
+ [[ -f start.sh ]]
++ ls forge-1.16.5-36.2.33-installer.jar forge-1.16.5-36.2.33.jar
+ FORGE_JAR='forge-1.16.5-36.2.33-installer.jar
forge-1.16.5-36.2.33.jar'
+ curl -Lo log4j2_112-116.xml https://launcher.mojang.com/v1/objects/02937d122c86ce73319ef9975b58896fc1b491d1/log4j2_112-116.xml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1131  100  1131    0     0  14500      0 --:--:-- --:--:-- --:--:-- 14500
+ java -server -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -Dfml.queryResult=confirm -Dlog4j.configurationFile=log4j2_112-116.xml -Xms6144m -Xmx9182m -jar forge-1.16.5-36.2.33-installer.jar forge-1.16.5-36.2.33.jar nogui
JVM info: Oracle Corporation - 1.8.0_312 - 25.312-b07
java.net.preferIPv4Stack=true
Found java version 1.8.0_312
Exception in thread "main" 
java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
        at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
        at java.awt.Window.<init>(Window.java:536)
        at java.awt.Frame.<init>(Frame.java:420)
        at java.awt.Frame.<init>(Frame.java:385)
        at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1763)
        at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1838)
        at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1696)
        at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:863)
        at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:666)
        at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:637)
        at net.minecraftforge.installer.SimpleInstaller.launchGui(SimpleInstaller.java:177)
        at net.minecraftforge.installer.SimpleInstaller.main(SimpleInstaller.java:147)
JVM info: Oracle Corporation - 1.8.0_312 - 25.312-b07
java.net.preferIPv4Stack=true
Found java version 1.8.0_312
Exception in thread "main" 
java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
        at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
        at java.awt.Window.<init>(Window.java:536)
        at java.awt.Frame.<init>(Frame.java:420)
        at java.awt.Frame.<init>(Frame.java:385)
        at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1763)
        at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1838)
        at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1696)
        at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:863)
        at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:666)
        at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:637)
        at net.minecraftforge.installer.SimpleInstaller.launchGui(SimpleInstaller.java:177)
        at net.minecraftforge.installer.SimpleInstaller.main(SimpleInstaller.java:147)

 

Link to comment
  • 2 weeks later...

Brand new to unraid. I was successful at setting up the binhex minecraft container and my kids are enjoying playing in their own world. Now they would like the mod packs so I installed ATM7, but I don't know how to "connect" that to the minecraft container -- if that's even how it's stated. I do know that I can't have both of them running on the same port so is it a matter of copying the jar files from the ATM7 into the binhex minecraft installation or does it require something else like parameters or modifying the server.properties file? I'm new to unraid, linux, dockers, etc. but I'm a software developer so I can follow bread crumbs -- I just have yet to find anything definitive on youtube or on this forum/community that addresses this so I'm just guessing it's basic knowledge if you're into this stuff everyday.

Sorry if it sounds like I have no clue, but I'm just trying to get to the next milestone of success so I can keep expanding on my knowledge of Unraid, dockers, vms, etc. Any help is very much appreciated!

Link to comment

@hoss Docker containers are fully contained with everything they need to run the application that they are meant to run. I don't know what support the binhex Minecraft container has, but you don't need it to install my ATM7 container.

 

Once ATM7 is installed on your unraid server, you have two options.

  1. By default the ATM7 should be configured to run in bridge network mode and you can set a different port number using the PORT  config item in the ATM7 container settings.  Do not change the port in the server.properties.  The Host port will be used by clients for connecting to the server.
    port_config.png.3dcb3496af1d9979ad58b21fe1511619.png

    You can see in the screenshot that docker is forwarding the network traffic from the bridge docker network to the unraid server IP and the configured port.
    bridge_port.png.184cd08329e73056ba2e9cf13128dd17.png
  2. You can change the networking in the ATM7 container to use your br0 network.  This should allow the container to acquire it's own IP address from your local network and you can connect on that.  You can even set a static IP as part of the container configuration.
    br_network.png.b3eeb0ee8d8a98b74b2b21be7c8c5cdb.png
Link to comment

That was exactly what I needed and made complete sense. I went with option 1. 

image.png.76d97e7cff333fb6e56292b47a07df78.png

 

It took a very long time to load all 300+ mod packs, but I think most of them went in without errors. I don't think it's necessary to chase down all the errors / warnings in the log. Do I need to restart one or both of the containers for the changes to take effect? Is there an order that they should be started? I'd think it would be the ATM7 started first then wait until the log is finished with loading all the mods then start the minecraft container.....but I don't know.

And last question for now (sorry)....how can I tell if the mods are loaded while playing the game?

 

And how do I buy you a beer or coffee?

  • Like 1
Link to comment

Order doesn't matter because those are now two completely independent Minecraft server instances.  One is the base vanilla Minecraft and the other is ATM7.

 

Good little overview of a docker container here: https://www.docker.com/resources/what-container/

 

That 12345 port number can be pretty much anything you want in the range of 1024-65535.

 

Modded Minecraft servers are pretty resource heavy.  So depending on how powerful your Unraid server is, it will determine how many different instances you can run simultaneously.  

  • Like 1
Link to comment

OMG I can't believe I didn't realize the ATM7 was an actual minecraft server instance.....it makes sense now because we didn't see any changes to the inventory or how the world looks.....nothing really. I just thought maybe those mods had to be unlocked somehow and that was going to be another quest.....I'm glad you cleared that up! I'll have my kids give port 12345 a run and see how that goes.

Again, really appreciate the help and all the work you put into this for the community. I'm finding that a lot of people on here really know their stuff and hope I can someday contribute.

Link to comment
1 hour ago, Goobaroo said:

Can you send the log?

"Warning: Failed to create the file serverpack905.zip: Permission denied
  0 43.7M    0 15944    0     0  29094      0  0:26:16 --:--:--  0:26:16 29094
curl: (23) Failed writing body (0 != 15944)
+ [[ -d serverpack ]]
+ chmod u+x Install.sh
chmod: cannot access 'Install.sh': No such file or directory
+ ./Install.sh
/launch.sh: line 23: ./Install.sh: No such file or directory
+ [[ -n '' ]]
+ [[ -n  Server ]]
+ sed -i 's/motd\s*=/ c motd= Server' /data/server.properties
sed: -e expression #1, char 26: unterminated `s' command
+ [[ -n '' ]]
+ sed -i 's/server-port.*/server-port=25565/g' server.properties
sed: can't read server.properties: No such file or directory
+ . ./settings.sh
/launch.sh: line 38: ./settings.sh: No such file or directory
+ java -server -Xms2048m -Xmx4096m -jar nogui
Error: Unable to access jarfile nogui"

Link to comment

Hi Goobaroo,

 

I just updated the ATM 7 pack to the most recent docker version. Prior to this, everything was working and running great. When I updated, the docker fails to start and in the logs provides the error of "Error: could not open `libraries/net/minecraftforge/forge/1.18.2-40.1.68/unix_args.txt' When I went into the file location, I couldn't find this directory at all. Any suggestions?

Link to comment
4 minutes ago, Deblobman said:

When I went into the file location, I couldn't find this directory at all. Any suggestions?

Are you looking in the container, or are you looking in Unraid? You can get a console inside the container by clicking its icon and selecting >_ Console

Link to comment
3 minutes ago, trurl said:

Are you looking in the container, or are you looking in Unraid? You can get a console inside the container by clicking its icon and selecting >_ Console

Since it can't start in the docker, I can only open the log within Unraid itself. That's where I pulled that error code from.

Edited by Deblobman
Link to comment
  • Goobaroo changed the title to [Support] Goobaroo - Modded Minecraft Server Containers
  • Goobaroo changed the title to [Support] Goobaroo - Modded Minecraft Java Servers

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.