April 15Apr 15 Hello,I'm testing this docker container to maybe move from AMP.I do folder and file permissions set, but the Files tab for the Minecraft server just never loads.Am I missing something? I don't mind uploading from unraid into the plugins folder but would be nice to be able to do it from the Files section too.It seems to do the same thing from local IP and from reverse proxy (pangolin, cloudflare).Any help would be great.
August 31Aug 31 Hello, suddenly my crafty 4 server is not loading properly. My daughter and I play together still, she is in Germany and had a little time to play and discovered the server was not working... I am running 7.3.1 of Unraid and the latest crafty 4 version. I have rebooted the server, stopped/started the crafty container and get the following logs everytime. BTW, the container says it is running, I can console into it but not get to the web gui.Any help would be appreciated.Matt2026-08-31 04:51:54,626 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: There is nothing to migrate 2026-08-31 04:51:54,656 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Loaded Server: ID 5bcb2015-94b6-428a-b5bb-96b2caadc910 | Name: Sam and Dad Original 1.20.0 | Autostart: False | Delay: 10 2026-08-31 04:51:54,657 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Starting migrations 2026-08-31 04:51:54,659 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: There is nothing to migrate 2026-08-31 04:51:54,686 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Loaded Server: ID e0b1e732-70fb-417d-adfb-93ed6d33a1d7 | Name: Sam and Dad home 1.20.4 | Autostart: False | Delay: 20 2026-08-31 04:51:54,687 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Starting migrations 2026-08-31 04:51:54,688 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: There is nothing to migrate 2026-08-31 04:51:54,717 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Loaded Server: ID 95a0b731-11d3-4bf1-87f9-06c07fd93152 | Name: 1.20.6 import world | Autostart: False | Delay: 10 2026-08-31 04:51:54,719 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Starting migrations 2026-08-31 04:51:54,720 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: There is nothing to migrate 2026-08-31 04:51:54,752 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Loaded Server: ID 0dcbfcb1-5ae8-40cf-b834-69e936d82795 | Name: 1.21.4 import world | Autostart: False | Delay: 10 2026-08-31 04:51:54,754 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Starting migrations 2026-08-31 04:51:54,754 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: There is nothing to migrate 2026-08-31 04:51:54,787 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Loaded Server: ID 193700a7-8650-4415-aa8a-7e5445551891 | Name: Tower 1.21.5 import | Autostart: False | Delay: 30 2026-08-31 04:51:54,788 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: Starting migrations 2026-08-31 04:51:54,789 DEBG 'start-script' stdout output: [+] Crafty: 31/08/26 04:51:54 - INFO: There is nothing to migrate 2026-08-31 04:51:54,791 DEBG 'start-script' stderr output: Traceback (most recent call last): 2026-08-31 04:51:54,792 DEBG 'start-script' stderr output: File "/opt/crafty/main.py", line 462, in <module> controller.servers.init_all_servers() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/opt/crafty/app/classes/controllers/servers_controller.py", line 270, in init_all_servers "server_obj": ServerInstance( ~~~~~~~~~~~~~~^ server.get("server_id"), ^^^^^^^^^^^^^^^^^^^^^^^^ ...<5 lines>... self.import_helper, ^^^^^^^^^^^^^^^^^^^ ), ^ File "/opt/crafty/app/classes/shared/server.py", line 285, in __init__ self.player_cache = list(json.load(f).values()) ~~~~~~~~~^^^ 2026-08-31 04:51:54,792 DEBG 'start-script' stderr output: File "/usr/lib/python3.14/json/__init__.py", line 298, in load return loads(fp.read(), cls=cls, object_hook=object_hook, parse_float=parse_float, parse_int=parse_int, parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) File "/usr/lib/python3.14/json/__init__.py", line 352, in loads return _default_decoder.decode(s) ~~~~~~~~~~~~~~~~~~~~~~~^^^ File "/usr/lib/python3.14/json/decoder.py", line 345, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/json/decoder.py", line 363, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 2026-08-31 04:51:54,900 DEBG fd 9 closed, stopped monitoring <POutputDispatcher at 22875317376672 for <Subprocess at 22875318647984 with name start-script in state RUNNING> (stdout)> 2026-08-31 04:51:54,900 DEBG fd 11 closed, stopped monitoring <POutputDispatcher at 22875317310544 for <Subprocess at 22875318647984 with name start-script in state RUNNING> (stderr)> 2026-08-31 04:51:54,900 WARN exited: start-script (exit status 1; not expected) 2026-08-31 04:51:54,900 DEBG received SIGCHLD indicating a child quit
September 3Sep 3 Hey fellow crafties, I am posting this in case someone finds it helpful:I was having problems with the files tab in crafty4, due to a bug in the binhex container messing with the latest crafty version.All was working, but the files in files tab wouldn't show.Root cause:The container's init script symlinks /opt/crafty/servers → /config/crafty/servers (and the other Crafty dirs) for persistence. Crafty stores server paths in its database as /opt/crafty/servers/<id>. However, Crafty's files API resolves paths with Path(...).resolve() before running its path-traversal safety check — resolve() follows the symlink and returns /config/crafty/servers/..., which is then compared against the unresolved DB path /opt/crafty/servers/.... The prefixes don't match, relative_to() raises ValueError, and the endpoint returns 500. (See app/classes/web/routes/api/servers/server/files.py, line 357 in v4.10.8.)So this is a collision between Crafty's path validation and the symlink layout of this image — it likely affects every user of this container on recent Crafty versions, they just may not have checked the dev console.Workaround (tested, works):Stop the container, back up crafty.sqlite, then rewrite the stored paths from /opt/crafty/ to /config/crafty/ (both point to the same data, but /config/... survives the resolve() comparison):Copycp /path/to/appdata/binhex-crafty-4/crafty/app/config/db/crafty.sqlite /path/to/appdata/binhex-crafty-4/crafty/app/config/db/crafty.sqlite.bak docker run --rm -i --entrypoint python3 -v /path/to/appdata/binhex-crafty-4:/config binhex/arch-crafty-4 - <<'PYEOF' import sqlite3 con = sqlite3.connect('/config/crafty/app/config/db/crafty.sqlite') cur = con.cursor() for c in ("path", "log_path", "execution_command"): cur.execute(f"UPDATE servers SET {c} = REPLACE({c}, '/opt/crafty/', '/config/crafty/')") con.commit() PYEOF After restarting the container, the Files tab works again for all servers. Note: newly created/imported servers get /opt/crafty/... paths again and need the same treatment.Simply rerun the same command as before and the newly added/imported server addresses will be adjusted, the existing ones stay untouched.Happy crafting :) Edited September 3Sep 3 by McFex
September 9Sep 9 Asking again... if I need to ask elsewhere please let me know as I would like to get this server back up and running. When started, the container appears to start, but the crafty web interface does not start and I get the following logged error...2026-09-09 04:52:01,400 DEBG 'start-script' stderr output:File "/opt/crafty/main.py", line 462, in <module>controller.servers.init_all_servers()~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^File "/opt/crafty/app/classes/controllers/servers_controller.py", line 270, in init_all_servers"server_obj": ServerInstance(~~~~~~~~~~~~~~^server.get("server_id"),^^^^^^^^^^^^^^^^^^^^^^^^...<5 lines>...self.import_helper,^^^^^^^^^^^^^^^^^^^),^File "/opt/crafty/app/classes/shared/server.py", line 285, in initself.player_cache = list(json.load(f).values())~~~~~~~~~^^^File "/usr/lib/python3.14/json/__init__.py", line 298, in loadreturn loads(fp.read(),cls=cls, object_hook=object_hook,parse_float=parse_float, parse_int=parse_int,parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)File "/usr/lib/python3.14/json/__init__.py", line 352, in loadsreturn defaultdecoder.decode(s)~~~~~~~~~~~~~~~~~~~~~~~^^^File "/usr/lib/python3.14/json/decoder.py", line 345, in decodeobj, end = self.raw_decode(s, idx=_w(s, 0).end())~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3.14/json/decoder.py", line 363, in raw_decoderaise JSONDecodeError("Expecting value", s, err.value) from Nonejson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)2026-09-09 04:52:01,512 DEBG fd 9 closed, stopped monitoring <POutputDispatcher at 23165816542880 for <Subprocess at 23165817830576 with name start-script in state RUNNING> (stdout)>2026-09-09 04:52:01,512 DEBG fd 11 closed, stopped monitoring <POutputDispatcher at 23165816476752 for <Subprocess at 23165817830576 with name start-script in state RUNNING> (stderr)>2026-09-09 04:52:01,512 WARN exited: start-script (exit status 1; not expected)2026-09-09 04:52:01,512 DEBG received SIGCHLD indicating a child quit2026-09-09 13:44:16,213 WARN received SIGTERM indicating exit request
September 9Sep 9 Author 14 minutes ago, mattw said:Asking again... if I need to ask elsewhere please let me know as I would like to get this server back up and running. When started, the container appears to start, but the crafty web interface does not start and I get the following logged error...i would suspect the issue is corrupt configuration, but your best bet for support is to talk directly to the crafty dev's, raise a issue here:- https://gitlab.com/crafty-controller/crafty-4/-/boards#/ or if you prefer chat then talk to them on discord:- https://discord.com/invite/XR5x3ZM
September 9Sep 9 I will try to do that this evening! You are not the dev? Only the person that supplies the Unraid container? Just trying to understand the pecking order here. Thanks Matt
September 9Sep 9 Author 13 minutes ago, mattw said:You are not the dev? Only the person that supplies the Unraid container?you got it, i dont have anything to do with the code if crafty, i simply package up what is supplied by the crafty dev's into a unraid user friendly format.
October 5Oct 5 What happened? Why my binhex-crafty-4 does not show as "installed" in apps (although it is) and this is like a "new" same name container?It even has different docker parameters... Edited October 5Oct 5 by NLS
October 7Oct 7 Author 13 minutes ago, NLS said:Should we consider this project dead?Nope it's not dead.On 10/5/2026 at 7:26 PM, NLS said:What happened? Why my binhex-crafty-4 does not show as "installed" in apps (although it is) and this is like a "new" same name container?It even has different docker parameters...But low effort posts like this are ignored by me, no logs, no screenshots, nothing!.
October 8Oct 8 22 hours ago, binhex said:Nope it's not dead.But low effort posts like this are ignored by me, no logs, no screenshots, nothing!.Great that it is not dead.I didn't have anything to post to you, a log without an error means nothing and the screenshot would just show what I described (except if the point is that I was possibly lying)...So, I have binhex-crafty-4 for long time (since you released it and had 3 before that). It even updated fine until I don't know... last week?The weird thing is that when I went to "apps" and looked for it (to see for alternatives), it did not show "installed" tag on it and would actually allow me to re-install it.Clicking to install, just to see the parameters, I did see a few different than my (older?) template, even some ports proposed where different.In any case I removed mine and re-installed it after deleting my template and then (a bit painfully) re-imported my world and everything is fine now.Not that low effort I believe.Anyway keep up the good work. Thanks. Edited October 8Oct 8 by NLS
October 8Oct 8 Author 8 minutes ago, NLS said:The weird thing is that when I went to "apps" and looked for it (to see for alternatives), it did not show "installed" tag on it and would actually allow me to re-install it.Are you talking about CA here when you say 'apps'? i assume so but it's not clear, thus screenshots would of helped here, as well as the 'tag' you are on about, again i assume this is the tag shown in CA right?. If my assumptions are correct then i cannot explain why a container that exists and was installed via CA would suddenly not be marked as installed, that sounds like a possible CA related issue, i can confirm only one VERY minor change to the template on my side, where i changed the webui link, but i very much doubt this would trigger what you saw.In any case i'm happy you got it resolved.
October 9Oct 9 Yes by apps I mean CA. Was originally installed via CA (quite a long time ago) and again removed and installed "new" (?) template again via CA.Yes resolved. Thanks.
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.