auto-mcs: Create a Minecraft server in less than a minute, for free! reddit / selfhosted ---------------------------------------------------------------------- macarooni_man · 2023-12-29 20:18 # Welcome to auto-mcs! Hello there, I am the sole developer of auto-mcs and wish to share my Minecraft server manager with the self-hosted community! This software provides a simple and easy-to-digest experience for those who want to play Minecraft with their friends without the hassle of server installation & maintenance. ## Some notable features include: * Create/import any Paper, Fabric, Forge, CraftBukkit, Spigot, or Vanilla server in [less than a minute](https://www.auto- mcs.com/guides/getting-started) * [Built-in scripting engine and IDE for writing custom plugins](https://www.auto-mcs.com/guides/amscript) (works in Vanilla and any version as well!) * [Internal mod & plugin browser/installer](https://www.auto- mcs.com/guides/add-ons) (auto-mcs can update plugins as well) * [Firewall-like Access Control menu](https://www.auto- mcs.com/guides/access-control) to manage bans, whitelist, and operators from a single page * Automatic server installation, updates, [and back- ups](https://www.auto-mcs.com/guides/back-ups) * Switch worlds, versions, and distributions on the fly * Full Windows & Linux compatibility * And much more... ## [Feel free to try it out here!](https://auto-mcs.com/) ---------------------------------------------------------------------- Kyyul · 2023-12-29 21:02 I was just about to set up a new server. I’ll have to give this a shot. Thanks! ---------------------------------------------------------------------- myerscarpenter · 2023-12-29 21:27 Is there a docker image? ---------------------------------------------------------------------- macarooni_man · 2023-12-29 21:30 Currently auto-mcs doesn't have Docker support, but it will certainly be added in a future update! As of now, it's a standalone binary with no installation. ---------------------------------------------------------------------- BadFCA · 2023-12-29 21:37 I'm assuming you're planning to stay closed-source? ---------------------------------------------------------------------- Palaract · 2023-12-29 21:40 I'm not affiliated with them but have seen a Github repo on their website. I haven't looked deeply into it, but isn't this their codebase? The license (GNU general public license v3) hints on it being open source. ---------------------------------------------------------------------- BadFCA · 2023-12-29 21:41 I already edited my comment! :) ---------------------------------------------------------------------- Palaract · 2023-12-29 21:42 Oh sorry, didn't reload in time ^^ ---------------------------------------------------------------------- BadFCA · 2023-12-29 21:42 No problem ahah ---------------------------------------------------------------------- macarooni_man · 2023-12-29 21:44 Hello there, yes that's correct! [This is my GitHub repo for auto- mcs](https://github.com/macarooni-man/auto-mcs). It is indeed free, open-source, and licensed under the GPLv3! ---------------------------------------------------------------------- takethecrowpill · 2023-12-29 22:00 Sweet! I was just looking into setting a server up. ---------------------------------------------------------------------- Cynyr36 · 2023-12-29 22:15 Does this support bedrock? I've got kids on switch, android/ipad, and xbox. ---------------------------------------------------------------------- macarooni_man · 2023-12-29 22:20 During the server creation, select a distribution like Paper and there's actually a checkbox to enable Bedrock Support on the additional features page! ---------------------------------------------------------------------- Cynyr36 · 2023-12-29 22:25 I've looked briefly before, but will Paper announce on lan that it's a server? And does it support doing that for multiple servers on the same host? The mobile clients are especially locked down and wont let you enter an ip address and port. ---------------------------------------------------------------------- DaGloaDone · 2023-12-29 22:26 This looks AWESOME!!! I would love a docker image! ---------------------------------------------------------------------- macarooni_man · 2023-12-29 22:32 To answer all your questions: ## Will Paper announce on LAN that it's a server? The magic behind Bedrock support is a plugin called Geyser - which auto-mcs installs and configures automatically. [You can learn more about Geyser here!](https://geysermc.org/) In my experience, on mobile, as long as you have node sharing enabled on your router, the Paper server will show up under the Friends tab. ## And does it support doing that for multiple servers on the same host? By default, Bedrock servers run on port 19132. One of the nice things about auto-mcs is that it detects which servers are already running and will temporarily assign a new port if you're running multiple servers at the same time! ---------------------------------------------------------------------- Cynyr36 · 2023-12-29 22:35 Okay, I'm going to have to check this out when I'm back home, I've been working on automating podman containers rubbing the official bedrock server, and using macvlan networking to get the same effect. ---------------------------------------------------------------------- Kazeazen · 2023-12-29 22:46 This is sweet!! I’m going to save this for when i get my own home server going ---------------------------------------------------------------------- Cylian91460 · 2023-12-29 23:12 Create your own? ---------------------------------------------------------------------- Arxari · 2023-12-29 23:14 Why not just use something like ATLauncher and create a server using that? ---------------------------------------------------------------------- Cylian91460 · 2023-12-29 23:21 Look great ! Do you sandbox the python for the script? ---------------------------------------------------------------------- macarooni_man · 2023-12-29 23:21 I've never tried that, personally, but auto-mcs supports much more than just mods. It can create, update, backup, implement custom scripting, and so much more with the most common server distributions. Also, if you wanted to create a server with the ATLauncher, you can always import it into auto-mcs later. ---------------------------------------------------------------------- macarooni_man · 2023-12-29 23:24 It's not sandboxed as in containerized, but it's using a framework called Pyinstaller. [You can learn more about it here!](https://pyinstaller.org/en/stable/) The nice thing about this approach is you don't need to install Python, or any of the dependencies for it to work! Because of the way Pyinstaller compiles a binary, it's impossible to share, modify, or sideload new code with the running Python interpreter from your application. ---------------------------------------------------------------------- DanGarion · 2023-12-29 23:54 If you are looking for a docker image (that is Java Minecraft + Geyser + Floodgate + Paper) works for all systems (both Xbox and Java). https://github.com/TheRemote/Legendary-Java-Minecraft-Geyser-Floodgate ---------------------------------------------------------------------- Trainzack · 2023-12-29 23:59 I use [itzg/minecraft-server](https://github.com/itzg/docker- minecraft-server), which has a pretty wide selection of distributions. I don't know if it has all the same features as this project out of the box, but it's worked well for me so far. ---------------------------------------------------------------------- Cylian91460 · 2023-12-30 00:04 Ok now I have another question, how hard is it to separate files? Like seriously menu.py is 19116 lines, also you have a lot of hardcore value for displaying things, this is bad but it can't be fixed without major overall, you need to stop using TK and use qt (and pyside6 so you can use it in python) for displaying stuff. Also the app is creating, I have made an issue on the GitHub and your compile script doesn't work for Linux. ---------------------------------------------------------------------- macarooni_man · 2023-12-30 00:26 Kivy is convoluted to work with and when I started this project I didn't utilize it properly. There are a lot of issues from when I started, and I slowly learned how to use it. I plan on refactoring a lot of the old code at some point but as of now it works well enough to push back to a later release. Also, Tk has been working pretty well for this project, and I'd prefer to not rewrite my IDE. Can you provide any examples as to why it would be beneficial to use a different library? With the build script, I plan on posting detailed instructions to build it from source. Currently, the build scripts are pointing to my server locally and therefore it won't work when you run it. You'd need to edit the script to point to the source directory, and edit the Pyinstaller \`.spec\` files to point there as well. I apologize for the inconvenience! ---------------------------------------------------------------------- la_tete_finance · 2023-12-30 00:27 I’m sure the developer would welcome a pull request to assist with any technical improvements you may want to suggest. ---------------------------------------------------------------------- macarooni_man · 2023-12-30 00:33 Indeed! I'm open to any suggestions, please feel free to submit an issue with the `feature request` and any other relevant tags, or submit a pull request. ---------------------------------------------------------------------- TwitchyToes · 2023-12-30 00:36 Does anyone happen to have a list of dependencies for this? ---------------------------------------------------------------------- macarooni_man · 2023-12-30 01:02 If you run it as the compiled executable, there are no dependencies! If you plan to run it from source, you need any version of Python 3.9 [and these libraries](https://github.com/macarooni-man/auto- mcs/blob/main/build-tools/requirements.txt). ---------------------------------------------------------------------- TwitchyToes · 2023-12-30 01:05 Interesting, I'm running into a few errors running the exec that seems linked to missing libraries. This is being run in a LXC, so that could be part of it. I installed tcl/tk and tcllib, tklib per the error `[470] LOADER: Failed to load tcl/tk libraries` Now I'm getting Exception in thread foreground: Traceback (most recent call last): File "wrapper.py", line 182, in foreground File "main.py", line 21, in mainLoop File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module File "menu.py", line 9, in File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module File "simpleaudio/__init__.py", line 1, in File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module File "simpleaudio/shiny.py", line 5, in ImportError: libasound.so.2: cannot open shared object file: No such file or directory During handling of the above exception, another exception occurred: Traceback (most recent call last): File "threading.py", line 980, in _bootstrap_inner File "threading.py", line 917, in run File "wrapper.py", line 190, in foreground UnboundLocalError: local variable 'f' referenced before assignment ^CTraceback (most recent call last): File "wrapper.py", line 212, in File "threading.py", line 1060, in join File "threading.py", line 1080, in _wait_for_tstate_lock KeyboardInterrupt During handling of the above exception, another exception occurred: Traceback (most recent call last): File "wrapper.py", line 212, in KeyboardInterrupt [1029] Failed to execute script 'wrapper' due to unhandled exception! ---------------------------------------------------------------------- RovingShroom · 2023-12-30 01:33 It's not really clear what this does. Is this a terminal app or a GUI app? Does it run on a web browser? Can it be run from a headless server? ---------------------------------------------------------------------- lobowarrior14 · 2023-12-30 01:44 Same here, this might work out very well for me ---------------------------------------------------------------------- macarooni_man · 2023-12-30 02:37 This is a GUI app that can not be accessed from a web browser. Currently, it can only be run from a device with a desktop environment. ---------------------------------------------------------------------- nik282000 · 2023-12-30 04:09 It's a single binary, just make the image yourself. ---------------------------------------------------------------------- infinitejones · 2023-12-30 04:34 What's it doing (or supposed to be doing) when it's at the Verifying Java Installation step of the final setup? For me, the progress bar is crawling along for an hour or two and then stalling when it reaches 30%. This is running on Debian Linux with OpenJDK JRE installed, on a server machine with eight 3.1Ghz CPUs and 16 GB of RAM. \`htop\` reports it's using a lot of CPU and about 500MB of RAM. ---------------------------------------------------------------------- UltraPlankton · 2023-12-30 04:44 This looks amazing. Question for you I’m already running a server could I export the world and put it in here or would I have to start fresh ---------------------------------------------------------------------- macarooni_man · 2023-12-30 04:46 If you're already running a server, auto-mcs has an [import server functionality](https://www.auto-mcs.com/guides/getting-started#import- a-server) where you can select the root folder of your server and will work as expected! ---------------------------------------------------------------------- macarooni_man · 2023-12-30 04:48 This is almost certainly a bug, in this case I believe that it downloaded Java and was unable to verify that the downloaded installation works. I wonder why though. Could you send me more information about your distribution? During the setup process, auto-mcs downloads specific versions of Java for compatibility purposes. ---------------------------------------------------------------------- macarooni_man · 2023-12-30 04:49 This is a bug, I have noticed some issues on Linux that I didn't notice before making this post. I am working on this now, and thank you for the detailed information! ---------------------------------------------------------------------- UltraPlankton · 2023-12-30 04:54 Awesome I’ll have to give it a go then ---------------------------------------------------------------------- macarooni_man · 2023-12-30 06:18 Hello everyone, I wanted to post an update regarding the status of the Linux build. [There appears to be an issue](https://github.com/macarooni-man/auto-mcs/issues/26) affecting kernels >= 6.5.0 causing a segmentation fault. Older kernels are unaffected. I'm currently working on a fix, and have [released a patch](https://github.com/macarooni-man/auto-mcs/releases/tag/v2.0.3) to address some other issues you have mentioned. If you've already downloaded auto-mcs, you'll be prompted to update automatically on the next launch. I appreciate all of you taking the time to look into this, and finding things I haven't considered. Please feel free to let me know if there are more! ---------------------------------------------------------------------- Nestramutat- · 2023-12-30 07:32 RemindMe! 10 hours "Maybe containerize this if I have some free time" ---------------------------------------------------------------------- RemindMeBot · 2023-12-30 07:33 I will be messaging you in 10 hours on [**2023-12-30 17:32:54 UTC**](h ttp://www.wolframalpha.com/input/?i=2023-12- 30%2017:32:54%20UTC%20To%20Local%20Time) to remind you of [**this link **](https://www.reddit.com/r/selfhosted/comments/18twcat/automcs_creat e_a_minecraft_server_in_less_than_a/kfj257v/?context=3) [**CLICK THIS LINK**](https://www.reddit.com/message/compose/?to=Remin dMeBot&subject=Reminder&message=%5Bhttps%3A%2F%2Fwww.reddit.com%2Fr%2F selfhosted%2Fcomments%2F18twcat%2Fautomcs_create_a_minecraft_server_in _less_than_a%2Fkfj257v%2F%5D%0A%0ARemindMe%21%202023-12- 30%2017%3A32%3A54%20UTC) to send a PM to also be reminded and to reduce spam. ^(Parent commenter can ) [^(delete this message to hide from others.)] (https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Delete %20Comment&message=Delete%21%2018twcat) ***** |[^(Info)](https://www.reddit.com/r/RemindMeBot/comments/e1bko7/remind mebot_info_v21/)|[^(Custom)](https://www.reddit.com/message/compose/?t o=RemindMeBot&subject=Reminder&message=%5BLink%20or%20message%20inside %20square%20brackets%5D%0A%0ARemindMe%21%20Time%20period%20here)|[^(Yo ur Reminders)](https://www.reddit.com/message/compose/?to=RemindMeBot& subject=List%20Of%20Reminders&message=MyReminders%21)|[^(Feedback)](ht tps://www.reddit.com/message/compose/?to=Watchful1&subject=RemindMeBot %20Feedback)| |-|-|-|-| ---------------------------------------------------------------------- Offbeatalchemy · 2023-12-30 07:49 along with [itzg/mc-router](https://github.com/itzg/mc-router), which allows you to only access it with a FQDN and allows multi-multiple instances, it's the best docker setup imo. ---------------------------------------------------------------------- infinitejones · 2023-12-30 08:54 OK - I'm using Debian Bookworm, and I'm running it from \~/auto-mcs, where \~ is the home folder of my non-root user. It's creating \~/.auto-mcs, and I can see it's downloading 265MB into Downloads within that. That's where the progress bar stops at 30%. I can see that there's also \~/.auto-mcs/Tools/java/modern, which is where auto-mcs initially checks for bin/java - I assume if it doesn't find it there, it downloads them instead. But, once the download is finished (ie. folder size of Downloads stops increasing), htop shows the CPU usage seems really high, but nothing else happens. Presumably auto-mcs should be un-compressing the two java.tar.gz's it downloaded into that folder, but that doesn't seem to be happening. I manually un-compressed to the tar.gz's to the Tools/java/modern and Tool/java/legacy folders and that's let me go straight to downloading server.jar and after that everything works fine, so it's definitely the un-compressing of the Java downloads that's causing the problem. Couple of side notes: * The Java downloads are reallllly slow - like 20 mins for 265MB slow. It's absolutely not my network causing the slowness, but I haven't looked into what actually is causing it. Have you hard-coded download URLs to a server that's limited (or struggling) with bandwidth? * It seems to be impossible to stop the auto-mcs executable once it's started - Ctrl-C in the terminal (after running \~/auto-mcs/auto-mcs) doesn't stop it, and even \`kill\` on the PIDs or \`killall auto-mcs\` as sudo makes no difference - the processes just sit there chewing through my CPU cycles. I don't know much about the nuts and bolts of running (or stopping) Python executables but this doesn't feel like it's appropriate for software you're realising to the world... ---------------------------------------------------------------------- Sab44 · 2023-12-30 09:24 That's too bad, it would be great to be able to run it on a headless server and manage via web browser. Cool project nonetheless. ---------------------------------------------------------------------- computerjunkie7410 · 2023-12-30 09:27 Will this work for bedrock? ---------------------------------------------------------------------- bastrian · 2023-12-30 10:02 What would be nice to have is a modpack installer. You give him the modpad id or whatever and it deploys it. I am using it on a larger scale in pterodactyl ---------------------------------------------------------------------- Cybasura · 2023-12-30 11:50 Damn, what framework are you using? This is fabulous ---------------------------------------------------------------------- FunDeckHermit · 2023-12-30 13:59 That's important, was about to spin up a headless LXC. Maybe add it in the docs. ---------------------------------------------------------------------- TofuHummus · 2023-12-30 15:49 Am I seeing this right that the entire UI is in as single almost 20000 line script? If so you're a madman :D ---------------------------------------------------------------------- macarooni_man · 2023-12-30 16:07 It can certainly be optimized in the future...... lol ---------------------------------------------------------------------- macarooni_man · 2023-12-30 16:08 Absolutely! I didn't consider that it would be unclear, I will put that on my website and the README ---------------------------------------------------------------------- macarooni_man · 2023-12-30 16:09 Thank you! For the GUI I'm using Kivy and Tkinter, for the server interface/API I wrote that from scratch ---------------------------------------------------------------------- macarooni_man · 2023-12-30 16:12 Don't worry, this is in the works! It's impossible to scrape the data with an ID due to Curseforge schennagans, though it will be possible to import modpacks. For now, you can follow this guide: https://www.auto-mcs.com/guides/add-ons#modpacks ---------------------------------------------------------------------- macarooni_man · 2023-12-30 16:14 Yes! Select Paper or Fabric for the distribution, and turn on Bedrock Support on the additional features page. You can also enable it later under the server settings. ---------------------------------------------------------------------- macarooni_man · 2023-12-30 16:15 I agree, but I preferred the flexibility of a GUI over a web interface. It's something I'm looking into implementing though! ---------------------------------------------------------------------- macarooni_man · 2023-12-30 16:19 That's interesting. It should work if you run `pkill auto-mcs`, it's probably getting stuck due to that hung thread. If you press CTRL-Z it should force close in the terminal. I'm not sure what's causing this, as I never noticed it while testing! It's something I'm currently looking into. Thanks for the detailed information! ---------------------------------------------------------------------- AlfofMelmac · 2023-12-30 16:39 Do these take a lot of computing resources or will a 5 year old symbology NAS work? ---------------------------------------------------------------------- ikiya13 · 2023-12-30 16:49 This looks super cool! I’m currently using AMP for my mc hosting needs. Does this have any notable differences? ---------------------------------------------------------------------- TofuHummus · 2023-12-30 16:50 Honestly I don't know python so I don't know how easy this would be, but having the application running in docker and being able to access it through web would be superb. Hosting a VM and having to connect to it to do anything sounds like a hassle. The app looks really good though, would definitely use it if it worked like above. ---------------------------------------------------------------------- macarooni_man · 2023-12-30 17:11 Of course! I would say the biggest feature is a scripting interface directly into your server. There's a built in IDE and API to make plugins yourself, and they even work in Vanilla! [You can learn more about amscript here](https://auto-mcs.com/guides/amscript). On top of that, you can automatically update plugins, switch from Fabric to Paper in two clicks, and a ton of other functionality not currently present in other panels/managers. ---------------------------------------------------------------------- macarooni_man · 2023-12-30 17:12 [We are currently working on making this a reality!](https://github.com/macarooni-man/auto-mcs/issues/21) ---------------------------------------------------------------------- bastrian · 2023-12-30 18:26 Modrinth has a great API for that stuff. ---------------------------------------------------------------------- AcanthocephalaNo262 · 2023-12-30 18:33 RemindMe! 1 month ---------------------------------------------------------------------- macarooni_man · 2023-12-30 18:35 I'm currently using the Modrinth API for my mod browser in the app, and updating add-ons! I will check on implementing modpacks from there as well, I didn't know they had those! ---------------------------------------------------------------------- macarooni_man · 2023-12-30 18:38 It's a cool project! It doesn't nearly have as many features as auto- mcs, for example the custom scripting engine, the plugin/mod browser, and the access control manager for example. We are currently working on a docker image! ---------------------------------------------------------------------- ItsAddles · 2023-12-30 20:56 I need more photos, I wanna see what it looks like ---------------------------------------------------------------------- infinitejones · 2023-12-30 21:05 Yep, \`tar\` is installed... I was wondering if it could be something permission-related but presumably not, since everything's running/being saved within my /home folder... ---------------------------------------------------------------------- macarooni_man · 2023-12-30 21:20 [You can see some example images on the homepage!](https://auto- mcs.com) ---------------------------------------------------------------------- RovingShroom · 2023-12-30 22:44 I use cubecoders' amp. It runs great on Docker and supports Minecraft. Does require a license but it's only $5. ---------------------------------------------------------------------- DanGarion · 2023-12-31 05:02 I think it really depends on how many people you're having on the server. We have at most 3, but it's usually just my kiddo and I. ---------------------------------------------------------------------- NewDad907 · 2023-12-31 06:03 I have a server setup for the kiddo off my NAS, would using auto-mcs (windows download) with a tiny pic like this one: [GMKtec Nucbox7](https://www.amazon.com/GMKtec-i5-1135G7-Computers-Windows- Thunderbolt4/dp/B0BGHWPW69) work? I’d love to get the MC server(s) off my NAS and onto dedicated hardware with an easy to manage GUI for multiple servers all linked together with bungee cord. They’d have to be mainly bedrock though. ---------------------------------------------------------------------- macarooni_man · 2023-12-31 06:35 That sounds so cool! Yeah the specs are more than capable to pull it off, you don't need much for a Minecraft server. I will mention BungeeCord isn't supported in the interface currently, but it's a planned feature. You can still set it up manually though! Just make sure to create your servers in auto-mcs with Paper, and to enable Bedrock Support (Geyser) in the additional settings. And definitely send a pic of that vinyl decal, that sounds awesome! Wish you luck with your endeavors ---------------------------------------------------------------------- macarooni_man · 2023-12-31 06:38 I think it's an issue with the Python implementation of tarfile. It seems to be PAINFULLY slow in certain circumstances. I switched it from `tar` for compatibility, though, I plan to add a switch to use `tar` if it exists for extraction. It would certainly improve the speed if available! ---------------------------------------------------------------------- macarooni_man · 2023-12-31 06:41 I should also mention, I looked into the download issues and I'm using Oracle's archive since it doesn't require a login, but I think you're right with throttling. I need to do some more testing to be sure, but I ran into this today on both Windows 11 and an Arch build. I will release another patch when this is resolved!