Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] Viseron v3 - Self-hosted, local only NVR and AI Computer Vision software

Featured Replies

I had to manually create & pass volumes for event_clips, thumbnails, snapshots, & segments, then the container started working.

I had to delete a bunch of variables from the template when I created the container (they didn't apply to me), but I swear none of these paths were in the default template...

I can't tell if the recordings volume is actually even used for anything in this image; the container doesn't auto-create the missing volumes within the recordings directory.

But I got the container to start, and once I got my cameras to behave, they were visible through the Viseron webUI.

  • Replies 83
  • Views 23.1k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Seems so powerful and features rich, thanks.

  • roflcoopter
    roflcoopter

    Viseron v2 is finally out! Check out the release notes: https://github.com/roflcoopter/viseron/releases/tag/v2.0.0

  • For "How do you pass the USB Coral TPU to this container? USB device path is /dev/bus/usb", I use this:

Posted Images

  • Author

Sorry for the delayed response! I dont hang out much here since i do not use Unraid.

That is also the reason for your other issues, the template is outdated now that v3+ is out. Ill see if i can fix the template but there is no way for me to test which is less than ideal sadly.

  • Author

Made some changes to the template. Hopefully the formatting is correct.
Will convert the image to a PNG but cant push it yet since i have other changes pending locally

  • 3 months later...

hi i tried to install this on ubuntu server and it didnt install right . and i installed the docker version and it doesnt work either... the log i guess complains about storage? here is the logs but so far ive not been able to install it on docker ubuntu or docker unraid so much for seemless installi lol

text error warn system array login

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 281, in __call__

return self._compiled([], data)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 625, in validate_dict

return base_validate(path, data.items(), out)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 458, in validate_mapping

raise er.MultipleInvalid(errors)

voluptuous.error.MultipleInvalid: required key not provided @ data['logger']

2025-09-29 16:38:13.171 [ERROR ] [viseron.components] - Setup of component logger failed

2025-09-29 16:38:13.171 [ERROR ] [viseron.components] - Failed setup of component logger

2025-09-29 16:38:13.172 [INFO ] [viseron.components] - Setting up component storage

2025-09-29 16:38:13.172 [ERROR ] [viseron.components] - Error validating config for component storage: The /event_clips folder does not exist. Please mount it to the container.. Got {}

Traceback (most recent call last):

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 281, in __call__

return self._compiled([], data)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/validators.py", line 251, in _run

return self._exec(self._compiled, value, path)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/validators.py", line 381, in _exec

raise e if self.msg is None else AllInvalid(self.msg, path=path)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/validators.py", line 379, in _exec

v = func(path, v)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 855, in validate_callable

return schema(data)

File "/src/viseron/components/storage/config.py", line 600, in validate_tiers

_validate_recorder_tiers(component_config)

File "/src/viseron/components/storage/config.py", line 545, in _validate_recorder_tiers

_check_tier(_tier, previous_tier, paths, CONFIG_RECORDER)

File "/src/viseron/components/storage/config.py", line 473, in _check_tier

_check_path_exists(tier, category)

File "/src/viseron/components/storage/config.py", line 436, in _check_path_exists

raise vol.Invalid(

voluptuous.error.Invalid: The /event_clips folder does not exist. Please mount it to the container.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/src/viseron/components/__init__.py", line 131, in validate_component_config

return component_module.CONFIG_SCHEMA(self._config)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 285, in __call__

raise er.MultipleInvalid([e])

voluptuous.error.MultipleInvalid: The /event_clips folder does not exist. Please mount it to the container.

2025-09-29 16:38:13.173 [ERROR ] [viseron.components] - Setup of component storage failed

2025-09-29 16:38:13.173 [ERROR ] [viseron.components] - Failed setup of component storage

2025-09-29 16:38:13.174 [ERROR ] [root] - Uncaught exception

Traceback (most recent call last):

File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main

return _run_code(code, main_globals, None,

File "/usr/lib/python3.10/runpy.py", line 86, in _run_code

exec(code, run_globals)

File "/src/viseron/__main__.py", line 55, in <module>

sys.exit(init())

File "/src/viseron/__main__.py", line 51, in init

return main()

File "/src/viseron/__main__.py", line 40, in main

viseron = setup_viseron()

File "/src/viseron/__init__.py", line 214, in setup_viseron

vis.storage = vis.data[STORAGE_COMPONENT]

KeyError: 'storage'

error: list of process IDs must follow -p

Usage:

ps [options]

Try 'ps --help <simple|list|output|threads|misc|all>'

or 'ps --help <s|l|o|t|m|a>'

for additional help text.

For more details see ps(1).

2025-09-29 16:38:13.426 EDT [531] LOG: received fast shutdown request

2025-09-29 16:38:13.460 EDT [531] LOG: aborting any active transactions

2025-09-29 16:38:13.463 EDT [531] LOG: background worker "logical replication launcher" (PID 567) exited with exit code 1

2025-09-29 16:38:13.463 EDT [562] LOG: shutting down

2025-09-29 16:38:13.771 EDT [531] LOG: database system is shut down

[viseron-finish] Viseron exit code 1

[viseron-finish] Shutdown completed at Mon Sep 29 16:38:13 EDT 2025

[cont-finish.d] executing container finish scripts...

[cont-finish.d] 10-postgres: executing...

Wait for Viseron to stop...

Viseron has stopped!

Stopping PostgreSQL...

waiting for server to shut down.... done

server stopped

Waiting for PostgreSQL Server to stop...

/var/run/postgresql:5432 - no response

PostgreSQL Server has stopped!

[cont-finish.d] 10-postgres: exited 0.

[cont-finish.d] done.

[s6-finish] waiting for services.

[s6-finish] sending all processes the TERM signal.

[s6-finish] sending all processes the KILL signal and exiting.

On 9/29/2025 at 4:45 PM, comet424 said:

hi i tried to install this on ubuntu server and it didnt install right . and i installed the docker version and it doesnt work either... the log i guess complains about storage? here is the logs but so far ive not been able to install it on docker ubuntu or docker unraid so much for seemless installi lol

text error warn system array login

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 281, in __call__

return self._compiled([], data)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 625, in validate_dict

return base_validate(path, data.items(), out)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 458, in validate_mapping

raise er.MultipleInvalid(errors)

voluptuous.error.MultipleInvalid: required key not provided @ data['logger']

2025-09-29 16:38:13.171 [ERROR ] [viseron.components] - Setup of component logger failed

2025-09-29 16:38:13.171 [ERROR ] [viseron.components] - Failed setup of component logger

2025-09-29 16:38:13.172 [INFO ] [viseron.components] - Setting up component storage

2025-09-29 16:38:13.172 [ERROR ] [viseron.components] - Error validating config for component storage: The /event_clips folder does not exist. Please mount it to the container.. Got {}

Traceback (most recent call last):

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 281, in __call__

return self._compiled([], data)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/validators.py", line 251, in _run

return self._exec(self._compiled, value, path)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/validators.py", line 381, in _exec

raise e if self.msg is None else AllInvalid(self.msg, path=path)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/validators.py", line 379, in _exec

v = func(path, v)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 855, in validate_callable

return schema(data)

File "/src/viseron/components/storage/config.py", line 600, in validate_tiers

_validate_recorder_tiers(component_config)

File "/src/viseron/components/storage/config.py", line 545, in _validate_recorder_tiers

_check_tier(_tier, previous_tier, paths, CONFIG_RECORDER)

File "/src/viseron/components/storage/config.py", line 473, in _check_tier

_check_path_exists(tier, category)

File "/src/viseron/components/storage/config.py", line 436, in _check_path_exists

raise vol.Invalid(

voluptuous.error.Invalid: The /event_clips folder does not exist. Please mount it to the container.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/src/viseron/components/__init__.py", line 131, in validate_component_config

return component_module.CONFIG_SCHEMA(self._config)

File "/usr/local/lib/python3.10/dist-packages/voluptuous/schema_builder.py", line 285, in __call__

raise er.MultipleInvalid([e])

voluptuous.error.MultipleInvalid: The /event_clips folder does not exist. Please mount it to the container.

2025-09-29 16:38:13.173 [ERROR ] [viseron.components] - Setup of component storage failed

2025-09-29 16:38:13.173 [ERROR ] [viseron.components] - Failed setup of component storage

2025-09-29 16:38:13.174 [ERROR ] [root] - Uncaught exception

Traceback (most recent call last):

File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main

return _run_code(code, main_globals, None,

File "/usr/lib/python3.10/runpy.py", line 86, in _run_code

exec(code, run_globals)

File "/src/viseron/__main__.py", line 55, in <module>

sys.exit(init())

File "/src/viseron/__main__.py", line 51, in init

return main()

File "/src/viseron/__main__.py", line 40, in main

viseron = setup_viseron()

File "/src/viseron/__init__.py", line 214, in setup_viseron

vis.storage = vis.data[STORAGE_COMPONENT]

KeyError: 'storage'

error: list of process IDs must follow -p

Usage:

ps [options]

Try 'ps --help <simple|list|output|threads|misc|all>'

or 'ps --help <s|l|o|t|m|a>'

for additional help text.

For more details see ps(1).

2025-09-29 16:38:13.426 EDT [531] LOG: received fast shutdown request

2025-09-29 16:38:13.460 EDT [531] LOG: aborting any active transactions

2025-09-29 16:38:13.463 EDT [531] LOG: background worker "logical replication launcher" (PID 567) exited with exit code 1

2025-09-29 16:38:13.463 EDT [562] LOG: shutting down

2025-09-29 16:38:13.771 EDT [531] LOG: database system is shut down

[viseron-finish] Viseron exit code 1

[viseron-finish] Shutdown completed at Mon Sep 29 16:38:13 EDT 2025

[cont-finish.d] executing container finish scripts...

[cont-finish.d] 10-postgres: executing...

Wait for Viseron to stop...

Viseron has stopped!

Stopping PostgreSQL...

waiting for server to shut down.... done

server stopped

Waiting for PostgreSQL Server to stop...

/var/run/postgresql:5432 - no response

PostgreSQL Server has stopped!

[cont-finish.d] 10-postgres: exited 0.

[cont-finish.d] done.

[s6-finish] waiting for services.

[s6-finish] sending all processes the TERM signal.

[s6-finish] sending all processes the KILL signal and exiting.

I'm not sure I understand correctly (if you're running the container on Unraid or an Ubuntu VM?) but I had exactly the same issue you did. I simply added the paths to the container manually like Porkey suggested above and the container started and I got into the web UI.

  • Author

I am not too familiar with Unraid sadly, but the template has the folders defined for v3+.

Is there some sort of refresh needed in the CA store for it to pick up the new version of the template?

  • roflcoopter changed the title to [Support] Viseron v3 - Self-hosted, local only NVR and AI Computer Vision software
  • 2 weeks later...

@Doak Steezy sorry delay.. what i ment was i tried both

Unraid Docker

Ubuntu Docker

so a dedicated pc running Ubuntu with docker installed and visereon installed

and i tried Unraid Docker... now the logs above are from the Unraid Docker version

ok ill try the porks settings those are the ones you set in the template right?

@Porkey how did u set it up do you have any pics ? i thought i did what you did but it just errors out and orphans the container

v1.png

v2.png

  • Author

You seem to have a typo in teh snapshots volume mount. You are missing a forward slash there if you look carefully at the docker run command.
Unsure how to fix that tho, its not from the template however

ok thanks for noticing.. since the template never had any of those 4 paths and when i filled them in like proky mentioned i just typed them in didnt notice the / missing and took a guess how it set up

sounds good now i can test with reolink cameras the webpage loaded up.. i couldnt get to install right on ubuntu.. but least i can test here.. as the reolink cameras didnt seem to work right with shinobi. and when i googled best os for reolink cameras it said visereon but we shall see lol

  • Author

Interesting, there is no special handling of Reolinks in Viseron, i know they are a bit finnicky sometimes but they should work.

The template has been updated with these new parameters, but it seems its gone from the CA store? Something might be broken. Anyone knows how to check whats wrong?

ah ok do you know how to setup the reolink.. i found with the shinobi on unraid with the spaceinvader worked well but some things glitching the newest version i had nothing but issues from glitchy video wouldnt record right... was soo frustrating it wouldnt upload or record long enough etc.. and i didnt like zoneminder i couldnt get it to install right.. blueiris worked well but i didnt wanna pay a subscription etc. just for home use i not a business.. so i keep testing each one.

ya i not sure how to update you could contact Squid ask him as hes the one you contact when you post a community template.. or ask in the community apps section as i find no one really checks these sub forums.. sometimes i write for help no one replies for a couple months

@roflcoopter is the recordings path still needed, or is everything going into the clips. Its not listed as a path in the new setup docs?

  • 2 weeks later...

How do you pass the USB Coral TPU to this container? USB device path is /dev/bus/usb

Edited by itlists

  • Author
On 10/21/2025 at 2:00 PM, comet424 said:

ah ok do you know how to setup the reolink.. i found with the shinobi on unraid with the spaceinvader worked well but some things glitching the newest version i had nothing but issues from glitchy video wouldnt record right... was soo frustrating it wouldnt upload or record long enough etc.. and i didnt like zoneminder i couldnt get it to install right.. blueiris worked well but i didnt wanna pay a subscription etc. just for home use i not a business.. so i keep testing each one.

ya i not sure how to update you could contact Squid ask him as hes the one you contact when you post a community template.. or ask in the community apps section as i find no one really checks these sub forums.. sometimes i write for help no one replies for a couple months

Sorry i dont have any experience setting up Reolinks. Try if the defaults work for you, otherwise you can search the repo and see if someone else has solved the issue already.

On 10/21/2025 at 10:37 PM, parish99 said:

@roflcoopter is the recordings path still needed, or is everything going into the clips. Its not listed as a path in the new setup docs?

No it is not needed anymore. Recordings was a confusing name for it since 24/7 recordings were introduced

On 11/1/2025 at 8:54 PM, itlists said:

How do you pass the USB Coral TPU to this container? USB device path is /dev/bus/usb

Not familiar with how to pass USB devices on Unraid but it should be done in the standard way, nothing special requried for Viseron

Is there some trick to have the Viseron icon show in in the Docker list (it's just showing as a question mark)?

The Icon URL in the container is : https://github.com/roflcoopter/viseron/raw/master/docs/static/img/viseron-logo.png which works in a browser.

I know it's only cosmetic and everything else seems to be working nicely...

Thanks


Fixed!

I have found my issue and the Icon now shows correctly...

( while looking for the reason the Hailo model was not downloading I found a firewall issue blocking Viseron's access to the Internet).

Thanks

Edited by SG2Unrai48

For "How do you pass the USB Coral TPU to this container? USB device path is /dev/bus/usb", I use this:

Coral TPU Mapping.png

Is AAC audio supported? My cams only support AAC

These errors are showing up in the log and the camera status shows disconnected in gui

2025-11-08 14:58:48.447 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:851:priv_gst_parse_yyparse: no element "avdec_h264"
2025-11-08 14:58:48.448 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:939:priv_gst_parse_yyparse: link has no sink [source=@0x154b3c1d0180]
2025-11-08 14:58:48.450 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:939:priv_gst_parse_yyparse: link has no source [sink=@0x154b3c1d5590]
Process gstreamer_cam_front:
Traceback (most recent call last):
  File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/src/viseron/watchdog/process_watchdog.py", line 107, in wrapped_target
    original_target(*targs, **tkwargs)
  File "/src/viseron/components/gstreamer/stream.py", line 215, in run_gstreamer
    gst_pipeline = Gst.parse_launch(" ".join(self._pipeline.build_pipeline()))
gi.repository.GLib.GError: gst_parse_error: no element "avdec_h264" (1)
2025-11-08 14:59:15.572 [ERROR   ] [viseron.watchdog.process_watchdog] - Process gstreamer_cam_front has exited, restarting
2025-11-08 14:59:15.617 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:851:priv_gst_parse_yyparse: no element "avdec_h264"
2025-11-08 14:59:15.619 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:939:priv_gst_parse_yyparse: link has no sink [source=@0x154b481ce120]
2025-11-08 14:59:15.621 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:939:priv_gst_parse_yyparse: link has no source [sink=@0x154b481d3460]
Process gstreamer_cam_front:
Traceback (most recent call last):
  File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/src/viseron/watchdog/process_watchdog.py", line 107, in wrapped_target
    original_target(*targs, **tkwargs)
  File "/src/viseron/components/gstreamer/stream.py", line 215, in run_gstreamer
    gst_pipeline = Gst.parse_launch(" ".join(self._pipeline.build_pipeline()))
On 11/8/2025 at 3:03 PM, itlists said:

These errors are showing up in the log and the camera status shows disconnected in gui

2025-11-08 14:58:48.447 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:851:priv_gst_parse_yyparse: no element "avdec_h264"
2025-11-08 14:58:48.448 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:939:priv_gst_parse_yyparse: link has no sink [source=@0x154b3c1d0180]
2025-11-08 14:58:48.450 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:939:priv_gst_parse_yyparse: link has no source [sink=@0x154b3c1d5590]
Process gstreamer_cam_front:
Traceback (most recent call last):
  File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/src/viseron/watchdog/process_watchdog.py", line 107, in wrapped_target
    original_target(*targs, **tkwargs)
  File "/src/viseron/components/gstreamer/stream.py", line 215, in run_gstreamer
    gst_pipeline = Gst.parse_launch(" ".join(self._pipeline.build_pipeline()))
gi.repository.GLib.GError: gst_parse_error: no element "avdec_h264" (1)
2025-11-08 14:59:15.572 [ERROR   ] [viseron.watchdog.process_watchdog] - Process gstreamer_cam_front has exited, restarting
2025-11-08 14:59:15.617 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:851:priv_gst_parse_yyparse: no element "avdec_h264"
2025-11-08 14:59:15.619 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:939:priv_gst_parse_yyparse: link has no sink [source=@0x154b481ce120]
2025-11-08 14:59:15.621 [ERROR   ] [viseron.components.gstreamer.stream.cam_front.gstreamer] - GST_PIPELINE gst/parse/grammar.y:939:priv_gst_parse_yyparse: link has no source [sink=@0x154b481d3460]
Process gstreamer_cam_front:
Traceback (most recent call last):
  File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/src/viseron/watchdog/process_watchdog.py", line 107, in wrapped_target
    original_target(*targs, **tkwargs)
  File "/src/viseron/components/gstreamer/stream.py", line 215, in run_gstreamer
    gst_pipeline = Gst.parse_launch(" ".join(self._pipeline.build_pipeline()))
On 11/8/2025 at 2:59 PM, itlists said:

Is AAC audio supported? My cams only support AAC

@roflcoopter any help?

Does Viseron support the Intel arc A310? Is there anything I need to do to enable support? I've passed through to the docker.

  • 3 weeks later...
  • Author
On 11/15/2025 at 5:42 PM, itlists said:

@roflcoopter any help?

Any specific reason you are using GStreamer? FFmpeg is better implemented in Viseron and should solve your issues

  • Author
On 11/7/2025 at 6:56 PM, SG2Unrai48 said:

For "How do you pass the USB Coral TPU to this container? USB device path is /dev/bus/usb", I use this:

Coral TPU Mapping.png

Nothing special should be required in order for the Coral to work in the container. However, i dont use Unraid myself so i am not sure how to achieve that

  • Author
On 11/18/2025 at 11:22 AM, Chrome said:

Does Viseron support the Intel arc A310? Is there anything I need to do to enable support? I've passed through to the docker.

Sadly no, only Nvidia GPUs are supported currently. I dont have an Intel GPU at hand so cant build the support for it myself

54 minutes ago, roflcoopter said:

Any specific reason you are using GStreamer? FFmpeg is better implemented in Viseron and should solve your issues

Same errors with ffmpeg as well. It could be because the camera only supports AAC audio? Or something else?

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.