The Xibo system seems tuned for Unixalike-on-Windows with a .NET base and Python plus XAMPP being a suggested variant stack; and thence backported into Ubuntu with a straight-up LAMP stack as a secondary option. Subtly this means that Fedora should work but there will be “issues.” There is some wording that there are Windows-specific and Ubuntu-specific components that are necessary for the client player. The player does direct access to the GPU so hardware support ls limited against a Hardware Compatibility List.
“Porting” to Fedora
- Who: Alex Harrington, Dan Garner
- Where: Launchpad Xibo
- License: GNU Affero GPL v3
- Source: bzr lp:xibo
Clients are (stationary, static) venues connect to the server which contains the media schedule and the media library. Venues are only defined in this dynamic sense by the act of a client connection. Once a client connects, it can operate in a sporadic offline mode. If there are no clients connecting, yet or ever, there are no venues. Thus there is no way to prepopulate the definition and schedule for a media campaign. Venues are expected to be fullscreen (i.e. this isn’t an in-browser type ad server).
Server, Admin UI and Media Database
Client (Venue Player)
- Bespoke with direct GPU rendering
- i.e. not Firefox in Kiosk mode
- i.e. not mplayer
- i.e. not anything else easy.
- There are no other client options besides direct GPU hacking
- libbrowsernode Build Instructions
- Server => easy as a WordPress install; as noted; further details herein.
- Client => you’re on your own with GPU-level source code assembly;
- The server install is pretty walk-through easy
- You install and build on-site from source (a copied php tree).
- As such there are SELinux issues because there are no appropriate labels
- but there is a semanage fcontext pattern set herein.
- It self-checks to ensure that latent errors don’t crop up later
- It rechecks the self-checks to ensure that changes didn’t occur with the install flow
- It conveniently restarts the install flow again if it didn’t work
For example the servicename could something unimaginative such as billboard
root is the apache server DocumentRoot; install the xibo server distribution here; the php files, etc.
uploadsis an area for storing media files outside the DocumentRoot
The site configuration (database passwords, secret keys, etc.) is written as a data file during the on-site installation workflow:
The apache httpd.conf VirtualHost Declaration
<VirtualHost *:80> ServerName servername.example.com ServerAdmin firstname.lastname@example.org DocumentRoot /var/xibo/servername/root <Directory "/var/xibo/servername/root"> Options Indexes FollowSymLinks Order allow,deny Allow from all </Directory> </VirtualHost>
The MySQL is on localhost
- database user xibo
- grants against just the billboard database.
You will have significant issues with SELinux. Be strong and power through them. The following will get you most of the way there.
$ sudo semanage -o - | grep xibo fcontext -a -f 'all files' -t httpd_sys_script_exec_t '/var/xibo/org.baker.emerson.billboard/(index|maintenance|services|xmds)\.php' fcontext -a -f 'all files' -t httpd_sys_rw_content_t '/var/xibo/org.baker.emerson.billboard/(settings|install|upgrade)\.php' fcontext -a -f 'all files' -t httpd_sys_content_t '/var/xibo/org.baker.emerson.billboard/.*\.(css|gif|html|htm|ico|jpg|js|png|sql|txt|TXT|wsdl|xml)' fcontext -a -f 'all files' -t httpd_sys_script_exec_t '/var/xibo/org.baker.emerson.billboard/[^/]+/.*\.(inc|php)'
- View the dribbles into /var/log/messages interactively looking for sealert messages
- Run the install flow, restarting and retrying as directed.
- Use semanage and restorecon to get the tree “right enough” to get past the install.
- You may have to warp the labels on the tree one way and then the other way during the install. Substantially this is because Xibo wants to write data to php scripts and then execute those scripts.