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.

RightsDescriptionDetails
Userdetails
ROLE_EDIT_USER_DETAILS
Change own user details.Change own password, language and other settings.
Write
ROLE_WRITE
Create and share own folders.With this right a user can create own top level folders and share/admin those folders. Everything else afterwards is controlled by folder permissions: The owner is always allowd to admin/share and write into that folder, even without write permissions, so this right isn't a global write permission.
Network
ROLE_NETWORK
Perform custom network requests.This right allows to create items or do things resulting in network requests with user-configurable target address. An example is to create a stream-file connecting to a webcam.
Filesystem
ROLE_ACCESS_FILESYSTEM
Access the local filesystem.This right is required to bind and sync folders from your local disk.
Note that access is performed under the user that runs the LimboMedia server, so this right should be handled with great care because it allows to manipulate files on your host and limbomedia files itself.
Admin
ROLE_ADMINISTRATION
Administrative tasksAllows everything: User management, system shutdown, system settings, logfile access, console. Moreover an admin sees and can admin all folders of all limbomedia users.
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-VERSION/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