I don't know if this has been done already but it's a little project I have had fun with for the last month or so. I'm currently a student worker at my University which is trying to bring digital signage to the campus. I stumbled upon the Raspberry Pi and, due to their low cost, they were approved for use as client machines for the various TVs that will display the signage. (Originally they were going to use old desktops at each TV haha).
So anyways! I spent the last month of my spare time at my 10hr a week job here on campus to piece together this simple script. It's only tested on the Wheezy distro but so far it has worked perfectly. We are running the open sourced Concerto Digital Signage server and this script package will automatically setup a Raspberry Pi to act as a client machine.
The script simply ensures that when ever the Pi starts, the mouse is hidden, the screen does not go to sleep and a Midori browser is opened fullscreen to the concerto signage page for the particular screen the pi is running. I've placed the script in a public GitHub. Let me know what you think!
Thanks
GitHub: https://github.com/flamewave000/concerto_rpi
Concerto: http://www.concerto-signage.org![Signage Signage](/uploads/1/2/6/2/126226810/652347755.png)
User’s Manual Page 1 mediaBOX User’s Manual version 3.0 For W7e (Windows 7 embedded) and Ubuntu DSe (Digital Signage embedded) We thank you for your purchase of the mediaBOX Media Player. The mediaBOX is a reliable small form factor device, which was designed to deliver uninterrupted playback of Digital Signage and Kiosk presentations. Alibaba.com offers 4,744 table touch screen kiosk products. About 69% of these are advertising players, 13% are payment kiosks, and 1% are pos systems. A wide variety of table touch screen kiosk options are available to you, such as indoor, outdoor.
So anyways! I spent the last month of my spare time at my 10hr a week job here on campus to piece together this simple script. It's only tested on the Wheezy distro but so far it has worked perfectly. We are running the open sourced Concerto Digital Signage server and this script package will automatically setup a Raspberry Pi to act as a client machine.
The script simply ensures that when ever the Pi starts, the mouse is hidden, the screen does not go to sleep and a Midori browser is opened fullscreen to the concerto signage page for the particular screen the pi is running. I've placed the script in a public GitHub. Let me know what you think!
![Concerto Digital Signage User Manual Concerto Digital Signage User Manual](https://i.ytimg.com/vi/7hTN-JsW0qs/hqdefault.jpg)
GitHub: https://github.com/flamewave000/concerto_rpi
Concerto: http://www.concerto-signage.org
Choosing an Installation Method
Concerto can be installed via several methods
- Debian Package: By far the easiest method of installation on an APT-based Linux system (such as Debian or Ubuntu). The concerto-full package will install the latest stable Concerto build and get things up and running quickly-- it includes Apache, NodeJS, Phusion Passenger, mySQL and other dependencies. The concerto-lite package includes the application and fewer dependencies and you'll need to set up and configure the stack yourself-- more details below.
- Virtual Machine Image: A total turnkey Concerto server inside a VM image. Simply download one of the images (VirtualBox and Xen images are available, though conversion to other formats should be straightforward) and run it in any compatible VM software (such as VirtualBox) and log in via ssh to go through a simple setup procedure. All packages, configurations, and dependencies are already set up.
- Installation from Source: Download the latest stable build of Concerto and build and install Concerto and its dependencies. Concerto requires a *nix-like operating system and has not been shown to work in any Windows environment.
- Capistrano: Use the included capistrano script to deploy to your server. This is for experienced capistrano users. See the directions here.
- Docker Image: coming soon.
Prerequisites
In general, Concerto 2 requires a webserver capable of serving Ruby on Rails applications and a recent version of Ruby, ImageMagick, RubyGems, and the Bundler gem to get started. Its many other requirements are satisfied through installing the gems specified in the Gemfile via Bundler. Depending on your installation method, much of this may be done for you. Some requirements of note:
- A webserver (Apache 2 is highly recommended for this and Concerto provides VHost configurations for Apache to make this as simple as possible)
- A Rack-compatible adapter (such as Phusion Passenger - which comes in Apache, Nginx, and other flavors). This can be installed as a gem.
- A database (by default, SQLite is used, but this can be altered by changing config/database.yml as suggested in config/database.yml.mysql, using the install script with the MySQL option, or using the Virtual Machine Image)
- ImageMagick is used for image processing and such and is a prerequisite for the RMagick gem that Concerto uses.
- NodeJS is used for the Javascript engine (versions prior to 2.3.7 used therubyracer).
- LibreOffice and Poppler-Utils are used for converting documents of various formats, including PDFs, to images. These are listed as suggestions though and not required, but if you want this feature, these are required.
- Delayed Job is used to process certain long-running tasks asynchronously. It will be installed with all the other Concerto gems and run in the background unless disabled in the Dashboard.
Concerto Debian Packages
Full Concerto Package
The full concerto package (
concerto-full
) will closely replicate the setup of the server virtual image.It includes Imagemagick, NodeJS, Ruby, the MySQL client libraries, Apache2, and Passenger. The package drops the Concerto source code in /usr/share/concerto and then performs a few post-install tasks such as creating the mySQL database concerto_production and user concerto, installation of gems, compilation of assets, migration and seeding of database, and installation of concerto service. (See http://github.com/concerto/concerto-debian repo for more specific details.)
After this package is installed, just browse to the server and you should be up and running.
Lite Concerto Package
The more lightweight Concerto package (
concerto-lite
) will make relatively few assumptions about a system's setup. It requires ImageMagick, NodeJS, Ruby, the MySQL client libraries and the associated ruby bindings.Installing Concerto as a Debian Package
This is assuming you are running as a non-root user that has sudo ability, on Debian 9 (stretch) or Ubuntu (xenial) or later.
- Install curl:
sudo apt-get install curl
- Add Concerto repository and key:
curl -k get.concerto-signage.org/add_repo.sh | sh
- Install Concerto via APT:
sudo apt-get install concerto-full
(or concerto-lite)
After installation of the full package, you can configure Concerto vhost in
/etc/apache2/sites-available/concerto.conf
as needed-- at the very least you need to make sure the ServerName entry matches your server's hostname. If you change the site configuration file you'll need to restart apache sudo apache2ctl restart
. The installation already disables the default site sudo a2dissite 000-default
and enables the concerto site sudo a2ensite concerto
.Virtual Server Image (VirtualBox, VMWare, et. al.)
The virtual server image contains a full-stack installation of the Concerto webserver with all components pre-configured. The default username is concerto and the password is truc9awr. Users are prompted to change this at first logon.
VirtualBox Image: http://dl.concerto-signage.org/concerto_server.ova
- Download the appropriate VM image
- Load it into your VM tool of choice
- Login using the credentials mentioned above (also in the OVA file comments) and follow the initial configuration scripts - which will set a proper root password and proper database credentials for Concerto (using randomized passwords).
- Make any network-specific changes to /etc/apache2/sites-available/concerto and restart Apache if needed
Installing from Source:
NOTE: Upon startup, Concerto will create and configure a SQLite database. If you want to change this, edit
config/database.yml
appropriately-- there is a section for each environment: development, test, and production. When using bundle commands at the shell prompt the environment is assumed to be development unless specified otherwise, so you may need to prefix those commands with RAILS_ENV=production
. A sample MySQL database configuration file is provided in config/database.yml.mysql
.Upon its next startup, Concerto will populate whatever database you've specified.
Prerequisites: As above, make sure you have Ruby, RubyGems, Bundler, ImageMagick, NodeJS, Apache (or compatible webserver), Passenger (or compatible Rack adapter).
Next, set up the appropriate webserver configuration (VHosts such as the one here) (and restart for it to take effect) or simply type
bundle exec rails server
on the command line to get a quick development environment running (on localhost port 3000). Make sure that the permissions on the concerto directory allow the webserver user (generally www-data) access.![Signage Signage](/uploads/1/2/6/2/126226810/652347755.png)
If in production mode (recommended), you will need to precompile static assets:
- For most environments, run
RAILS_ENV=production bundle exec rake assets:precompile
- When deployed to a sub-url (e.g., https://example.com/concerto/), run
bundle exec rake assets:precompile RAILS_ENV=production RAILS_RELATIVE_URL_ROOT='/concerto'
Next, install the service script:
Finally, browse the the Concerto URL and setup the initial admin user.
Post Installation Tasks
- Start (or restart) Concerto background services. Check for a ruby process owned by your web server user running clockwork.
Rotating Logs
If you like to have your logs rotated, you can add this (tweaked to your specific environment) to your /etc/logrotate.d directory. See also: https://gorails.com/guides/rotating-rails-production-logs-with-logrotate
Running in an Isolated Network
If you want to run your Concerto installation in a subnet isolated from the internet then you will need to do the following. Local RSS feed and IFrame content will still work (from sources inside your network), but weather obviously wont work.
- Get your server up and working while connected to the internet. You must be running at least version 2.3.5 (PR #1413 and PR #1414).
- Change the 'notify developers of errors' setting to false/unchecked under System settings.
- Change the
automatic_bundle_installation
andairbrake_enabled_initially
settings tofalse
in the concerto.yml file in the config directory. - Isolate your network from the internet, restart your concerto website and services.
- If you've installed additional concerto plugins then test them to make sure they still work.
- Add content and screens as needed. The concerto player works fine.