Can't install File Browser app in ElectricEel

Hi all, I’m new to TrueNas and I just did a clean install of TrueNAS Scale 24.10.0.2.

I did install a couple of Apps but when I tried to install File Browser I got this error:
[EFAULT] Failed ‘up’ action for ‘filebrowser’ app, please check /var/log/app_lifecycle.log for more details

Then I got this from app_lifecycle.log:
(ERROR) app_lifecycle.compose_action():56 - Failed ‘up’ action for ‘filebrowser’ app: Network ix-filebrowser_default Creating Network ix-filebrowser_default Created

Container ix-filebrowser-init-1 service “init” didn’t complet successfully: exit 1

Any clues?

2 Likes

Hello,

Have the same issue … i tried to see some videos in YT but no solution…
(yey i hope)

This may not solve the problem, but I have found this cleanup step allows some installs to work that didn’t before. On the host TrueNAS system, run
[sudo] docker system prune --all

Make sure all the apps/containers you want to keep are running first. It gets rid of broken installs, caches, etc.

Thanks, but didn’t work. The same issue over and over again :frowning:

File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py”, line 248, in create_internal
raise e from None
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py”, line 241, in create_internal
compose_action(app_name, version, ‘up’, force_recreate=True, remove_orphans=True)
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/compose_utils.py”, line 57, in compose_action
raise CallError(
middlewared.service_exception.CallError: [EFAULT] Failed ‘up’ action for ‘filebrowser’ app, please check /var/log/app_lifecycle.log for more details

Inside app_lifecycle.log I see this:

init Pulled
Network ix-filebrowser_default Creating
Network ix-filebrowser_default Created
Container ix-filebrowser-init-1 Creating
Container ix-filebrowser-init-1 Created
Container ix-filebrowser-filebrowser-1 Creating
Container ix-filebrowser-filebrowser-1 Created
Container ix-filebrowser-init-1 Starting
Container ix-filebrowser-init-1 Started
Container ix-filebrowser-init-1 Waiting
Container ix-filebrowser-init-1 service “init” didn’t complete successfully: exit 1
service “init” didn’t complete successfully: exit 1

Anyone??

Can you maybe post how you’re trying to configure the app on the install screen? All this error tells us is the container failed to initialize, but not why, so there’s not much to go on here.

Here is my installation:


Ok two things I can see to check based on that.

  1. Ensure that the user 568 has access to the config storage. You can set this with the dataset ACL or by enabling ACL in the app settings, like this:

  2. filebrowser complains about the propagation mode setting if you set the /mnt root in Additional Storage. Try setting /mnt/ssd-pool for the host path instead.

1 Like

You nailed it!
Thanks … now let’s see how this works, but the installation completed.

I had a look at what you added, still getting an error.



i am getting, this

[EFAULT] Failed to render compose templates: Traceback (most recent call last): File “/usr/bin/apps_render_app”, line 33, in sys.exit(load_entry_point(‘apps-validation==0.1’, ‘console_scripts’, ‘apps_render_app’)()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py”, line 47, in main render_templates_from_path(args.path, args.values) File “/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py”, line 19, in render_templates_from_path rendered_data = render_templates( ^^^^^^^^^^^^^^^^^ File “/usr/lib/python3/dist-packages/catalog_templating/render.py”, line 36, in render_templates ).render({‘ix_lib’: template_libs, ‘values’: test_values}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3/dist-packages/jinja2/environment.py”, line 1301, in render self.environment.handle_exception() File “/usr/lib/python3/dist-packages/jinja2/environment.py”, line 936, in handle_exception raise rewrite_traceback_stack(source=source) File “/mnt/.ix-apps/app_configs/filebrowser/versions/1.2.12/templates/docker-compose.yaml”, line 5, in top-level template code {% do tpl.funcs.fail(“Expected at least 1 [storage.additional_storage] to be set”) %} ^^^^^^^^^^^^^^^^^^^^^^^^^ File “/mnt/.ix-apps/app_configs/filebrowser/versions/1.2.12/templates/library/base_v2_1_16/functions.py”, line 41, in _fail raise RenderError(message) base_v2_1_16.error.RenderError: Expected at least 1 [storage.additional_storage] to be set

Error: Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 509, in run
await self.future
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 556, in __run_body
rv = await self.middleware.run_in_thread(self.method, *args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1367, in run_in_thread
return await self.run_in_executor(io_thread_pool_executor, method, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1364, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/thread.py”, line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/service/crud_service.py”, line 268, in nf
rv = func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 55, in nf
res = f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 183, in nf
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py”, line 203, in do_create
return self.create_internal(job, app_name, version, data[‘values’], complete_app_details)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py”, line 248, in create_internal
raise e from None
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py”, line 233, in create_internal
update_app_config(app_name, version, new_values)
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/ix_apps/lifecycle.py”, line 59, in update_app_config
render_compose_templates(
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/ix_apps/lifecycle.py”, line 50, in render_compose_templates
raise CallError(f’Failed to render compose templates: {cp.stderr}')
middlewared.service_exception.CallError: [EFAULT] Failed to render compose templates: Traceback (most recent call last):
File “/usr/bin/apps_render_app”, line 33, in
sys.exit(load_entry_point(‘apps-validation==0.1’, ‘console_scripts’, ‘apps_render_app’)())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py”, line 47, in main
render_templates_from_path(args.path, args.values)
File “/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py”, line 19, in render_templates_from_path
rendered_data = render_templates(
^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/catalog_templating/render.py”, line 36, in render_templates
).render({‘ix_lib’: template_libs, ‘values’: test_values})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/jinja2/environment.py”, line 1301, in render
self.environment.handle_exception()
File “/usr/lib/python3/dist-packages/jinja2/environment.py”, line 936, in handle_exception
raise rewrite_traceback_stack(source=source)
File “/mnt/.ix-apps/app_configs/filebrowser/versions/1.2.12/templates/docker-compose.yaml”, line 5, in top-level template code
{% do tpl.funcs.fail(“Expected at least 1 [storage.additional_storage] to be set”) %}
^^^^^^^^^^^^^^^^^^^^^^^^^
File “/mnt/.ix-apps/app_configs/filebrowser/versions/1.2.12/templates/library/base_v2_1_16/functions.py”, line 41, in _fail
raise RenderError(message)
base_v2_1_16.error.RenderError: Expected at least 1 [storage.additional_storage] to be set

Ok, finally figured it out

1 Like

FileBrowser still doesn’t work on the current community version of Truenas 25, as of this my writing of this post, without the creation of a user/group to be placed within the dialog, and requisite ACL configuration which is not addressed unless selected. I attempted the install with multiple permutations of the process, prior to coming across this post, and the same thing happenned each time when the ACL was not setup, which should never be optional if this is the use-case.

This solution listed above should be explicitly enforced within the installation dialog. If you do not go back and setup a user and the ACL for config, etc…, the installation simply doesn’t work, and doesn’t tell you why it didn’t work. I setup the dataset first without the ACL and using user/group re-ownership, then with an ACL for the dataset(s) being used, and it did not work until I setup the “enable ACL” radio button behavior as listed above. If this is required, then it should not be optional, and hidden behind a radio button. Also, user 582 should be created if it does not currently exist, or there should be a drop-down with a selection of available current users.

I am not familiar with how this UI is created, however, that would be a good RFC to work for someone. It would make these situations in all the apps, way more manageable, instead of having to guess and hope that the guess is the solution.

You could have used the built in 568 (apps) user

Yes, permissions need to be addressed either through the acl option in the app install wizard or by setting an ACL when you create the dataset itself. This is true of all TrueNAS apps.

I’m not sure I’m entirely following what you are saying. You selected Enable ACL in the app wizard and that’s all you did or you selected Enable ACL and then added an entry for your user/group? If the latter, it’s likely because you had not set the ACL properly and the wizard did it for you when you told it to add entries.

1 Like

I will need to keep my replies shorter, since I tend to be too verbose.

The ACL was setup in the dataset already, after I realized that the default user was not being setup anywhere, and hence the comment about using the 568 user is not correct for me, in my environment. Nothing is being setup to allow the 568 user to exist, nor to own the “in dialog” created datasets.

I first attempted to create the datasets outside the app, without ACL.
Then I setup the ACL, because I had forgotten to do so prior, and realized that there was no reference to a user id 568, so nothing referencing it was coherent, and hence, after finding this thread, I verified my suspicions and setup everything.

The term “everything” is referenced as:

  • user = filebrowser_admin - 3003,
  • filebrowser_group= 3003
  • set ACL for Application-Service-Pool-1/File-Browser/* to filebrowser_admin/filebrowser_admin

However, this still generated the same stack trace at 80% done.

So I utilized the “Enable ACL” radio button, within the “config” and “aditional” storage dialogs, first without adding anyone, because I wasn’t sure if I needed to since it already existed, and then finally I replicated what was already setup on the in-use datasets, via the radio-button dialog.

I used a POSIX-Open ACL when in the “Dataset” menu for Truenas, however, I am not sure what type of ACL is used when adding user/group in the app installation dialog for filebrowser.

568 is a built-in user. Go to Credentials > Users, toggle on Show Build-in Users, and it should be there unless something is very odd about your environment.

I currently have three instances of filebrowser running

The first one is my existing install. It uses a dataset created from the datasets screen, I did not configure an ACL for the dataset at that time. In the install wizard I enabled ACL and added a Full Control entry for 568.

For the second one, I created a dataset in the install wizard. I double checked and this dataset is default created with root:root ownership, so I enabled ACL in the wizard and added a Full Control entry for 568.

For the third, I created a dataset from the Datasets screen before entering the App install wizard. I gave ownership of this dataset to apps:apps (568:568) using the ACL editor. Then I installed as normal in the wizard and did not select Enable ACL.

All three methods deployed without issue.

1 Like