User management - Global rights and attributes

When managing user accounts you can set some attributes and assign different rights. Here's a little more explaination on what theses attributes and rights are used for.

RightsDescriptionExamples
ROLE_WRITECreate and manipulate data.Create/Upload folders and files, Create labels, notes, tasks, bookmarks, sensors, controls, ...
ROLE_EDIT_USER_DETAILSChange own user details.Change password, Change language
ROLE_ACCESS_FILESYSTEMAllows operations accessing the local filesystem.
Note that access is performed under the user that runs the LimboMedia server.
Bind/Scan filesystem folder.
ROLE_NETWORKPerform custom network requests (HTTP/UDP)IoT Control actions, IoT Data pull
ROLE_ADMINISTRATIONAdministrative tasksUser management, System shutdown, System settings, Logfile access, Console
AttributesDescription
ActiveAllow a user to login. Usually used to temporarily "deactive" a user without deleting all it's data, shares, etc..
SystemSystem users are "virtual" users created and required by LimboMedia itself to handle system-internal tasks or anonymous requests. The LAN user for example is used whenever local DLNA/UPnP devices access limbomedia. The guest user is used for token-based authentication scenarios like whenever someone access limbomedia through a share-link. These users cannot be deleted but deactivated if not required for your setup scenario.

Cron expressions and scheduling

LimboMedia comes with an internal (quartz) scheduler managing different kinds of periodically running background jobs like the file scanner, media converter or IoT data pull. To define when and how often to run these jobs, there's a well known mechanism called cron expressions. Such an expression might look like this:

0 30 3 * * ?

This expressions says: Run the job every night at 3:30am.


We don't want to explain things others already did quite good, so here are our 2 favorite links when it comes to cron expressions:

Quartz tutorial - Cron expression syntax explanation and examples.
CronMaker - Online utility to build cron expressions.

Run as system service (Start LimboMedia on system startup)

In the old days things were easy: Windows used its own system services and linux SysVInit to manage system services. Nowadays windows is still the same but on linux there's SysVInit, Upstart, Systemd, docker and custom startup scripts.

Since our first goal is to keep things clean, easy and portable, we don't want to provide and support so many different kinds of installers placing files all around your system directories. If you'd like to have a system service it's up to you to configure one on your own. Here're some recommendations:

Windows

On windows we recommend two variants:

  • A simple link placed in your autostart menu.
  • Create your own windows service as described here (HowToGeek.com).

Linux (systemd)

Systemd gets more and more popular and is already used by most mainstream distributions. We like it because it's easy as hell to create custom services, so here's how it done:

Create the systemd service file /usr/lib/systemd/system/limbomedia.service with the following content. For sure paths needs to be adjusted to your environment.

[Unit]
Description=LimboMedia
After=network.target

[Service]
ExecStart=/usr/bin/java -jar /opt/limbomedia-2.6/limbomedia.jar
KillMode=mixed

[Install]
WantedBy=multi-user.target

That's it! Now you can manually start and stop limbomedia as a service or enable and disable to start on system boot:

#Start/stop manually
systemctl start limbomedia
systemctl stop limbomedia

#Enable/disable autostart on bboot
systemctl enable limbomedia
systemctl disable limbomedia

#Check status
systemctl status limbomedia

Linux (screen)

A really nice little tool for running linux things in background is screen which basically creates and manages virtual terminals you can always hook on and off while they're running in background. If you don't know it yet, give it a try. Even if you're not using limbomedia you should know this tool as linux user! Here's a small introduction: HowToForge - Linux screen.

Problems with special characters, date and time

If you see strange characters or character combinations like ö,0xF6 or � in your webinterface or if you have problems with special characters like ü,ö,ä,é,&,ß,æ in texts and filenames or if shown times and dates seems to be wrong, you most likely have a missing or wrong configured so called system locale. The locale is managed by the OS and must be set before starting limbomedia. When running limbomedia as a normal user this is usually no problem since locales are set for user sessions on login. When running limbomedia as system service there's a chance that noone set the locale before your system service is started.

Check locale

On limbomedia startup charset, file encoding and timezone are logged in one of the very first lines. This might look like this:

#Typical linux output:
OS environment: Charset: UTF-8, File encoding: UTF-8, Timezone: Europe/Berlin - Mitteleuropäische Zeit

#Typical windows output:
OS environment: Charset: windows-1252, File encoding: Cp1252, Timezone: Europe/Berlin - Mitteleuropäische Zeit

Timezone: If the printed timezone doesn't match your actual timezone you very likely see wrong date- and timestamps. Most obviously in logfiles and the webinterface as 'Added on' date. Time will differ as much as the printed timezone differs from the real one.

Charset/Encoding: Here's no right or wrong, but depending on your OS and what characters you want to support, another charset might fit better. Here's a general guideline:

  • UTF-8: If this is printed, you should be completely fine. Not only it supports a wide range of different characters and languages but it also is the best tested and defacto-standard charset in modern software. Highly recommended.
  • Cp125x/windows-125x: On windows systems you might find something between Cp1250 and Cp1258. This is ok as it supports the characters of your language and some more but might lead to problems whenever one of your users lives anywhere else or filenames contain special or foreign characters. We recommend a change to UTF-8 only if you've international audience or already noticed problems. Note that other tools accessing data (i.e. windows explorer, etc.) should use the same charset.
  • ANSI/ASCII: If you read something like ANSI or ASCII there's propably no locale set. You really should do it or otherwise you need to get along with only some basic characters like a-z, A-Z and 0-9.

Set locale (Windows)

On windows you should configure the timezone in your system control center or users language settings. The charset and file encoding cannot be set to UTF-8 by windows itself, so you need to start limbomedia using the following command:

java -Dfile.encoding=UTF-8 -jar limbomedia.jar

Set locale (linux)

On linux the locale is configured through the system environment, so you need to make sure some variables are set before starting limbomedia. Here are some useful commands:

#Print current locale
locale

#Print available locales
locale -a

#Generate locale if the required one is not available yet.
#On ubuntu it'll work like this:
locale-gen en_US.UTF-8
#On arch linux you need to edit /etc/local.gen and then run
locale-gen

#Set locale (Before starting limbomedia if default locale isn't set or doesn't fit)
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8