Digital Signage with an old mac mini(2011)

abc101
6 min readNov 10, 2020

--

There are very two old TV on my company hallway wall. The TVs have displayed 10 years old floor information. My boss wanted to upgrade them. He especially wanted a digital signage system that can be updated or changed easily.

My colleagues said TVs have a small PC and the PCs had connected internet, but when I opened the box, those were totally different what they said.

Two TVs have small PCs, but one TV had displayed USB images and the other TV had displayed a very old linux based digital signage without network connection.

I looked around the acer PCs. The PC has been running Windows XP without WiFi. One TV box has a 10 Mbps wired network, end the other box has nothing.

However, I tested the PCs performance with linux system. It so slow and really useless. For digital signage, the system should change images or documents fast. It is too slow.

So, I changed the PCs to old MacMini (2011) which has WiFi module. The 2011 MacMini is supported by High Sierra. There is no more OS upgrade for the Mac Mini. In the reason, I installed Debian linux first time. It works great. A problem is my colleagues don’t know Linux. I restored High Sierra again because they have to maintain the system.

Anyhow, what does the Mac need to be digital signage system?

I looked around many digital signage software and I decided to use Wordpress with “Foyer” plugin. It is the easiest way to control and change the contents.

I think everyone agree that Wordpress is the easiest tool to create contents to display some contents. However, there are two big problems, one is changing the pages by time and the other is TV resolution. The plugin “Foyer” solved this problems.

Steps

  1. Crean install High Sierra on the Mac mini 2011.
  2. Install “homebrew”.
  3. Install “Nginx” and “php” by brew.
  4. Install “MariaDB” by brew.
  5. Install “Wordpress” with Nginx and MariaDB.
  6. Install “Foyer” plugin.
  7. Install “Delay Start”.
  8. Install “Cursorcerer” by “brew”.
  9. Create contents and make a Foyer channel.
  10. Set “Safari” home as the Wordpress Foyer channel.
  11. Add Cursorcerer and Safari in the “Delay Start” (I set 2 mins delay).
  12. Set the Cursorcercer’s idle time. (I set 5 sec).
  13. Set the Mac’s Power on and off time.
  14. Set auto login.
  15. Set “Hide” for dock and menu bar.
  16. Open Safari as a full screen mode.
  17. Go to the Foyer channel.
  18. Restart system to check it.
  19. Uncheck the “Reopen windows when logging back in”

Ok, Let’s do it.

  • Download the High Sierra here and install it. It does not matter the Mac OS. You can use your own Mac OS version.
  • Install “Homebrew”.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  • Install “Nginx”, “php” and “MariaDB”.
$ brew install nginx php mariadb
  • Download “Wordpress” and extract some directory, or
$ brew install wget
$ wget -qO- https://wordpress.org/latest.tar.gz | tar xvz - -C ~/public_html
  • Create database for Wordpress
$ mysql -uroot -pmysql > CREATE DATABASE wordpress;
mysql > GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost' identified by 'wppasswd';
mysql > FLUSH PRIVILEGES;
mysql > exit;
  • If you are using default apache server, then skip the Nginx installation, or
$ sudo apachectl -k stop
  • Set “Nginx” for Wordpress
$ cd /usr/local/etc/nginx
$ vi nginx
.
.
.
# gzip on;
# PHP upstream
upstream php {
server 127.0.0.1:9000; #default php-fpm setting
}
.
.
  • Add a server configuration for Wordpress. If you have a domain for the server, set the domain name here for the other system.
$ vi servers/wordpress.cong
server {
listen 80;
#server_name localhost; # set system domain
root /Users/[User name]/public_html;
index index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
  • Start “Nginx”
$ nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
$ brew services restart nginx
  • Open “Safari: IP address” and install follow the Wordpress installation.
  • Install “Foyer” and activate it.

Foyer has three sub-categories, Display, Channels, and Slides. Slides are contents and a Channel is group of slides. A Display is a page for a Channel.

Add a content what you want in the slide and publish it. I added a text content slide and an image slide.

Add two slide in a channel. Set the duration and transition method. Publish it.

Click the permalink or view post.

You will have the demo screen. There are two option “Landscape” and “Portrait”. Click it that your TV setting.

  • Install cursorcerer by brew,
$ brew cask install cursorcerer

or from http://doomlaser.com/cursorcerer-hide-your-cursor-at-will/ and set the time. I set the hide time 5 seconds.

and add Cursorcerer and Safari. I set the time 120(2 mins)

  • Set auto login: Preferences > User & Groups > Login Option.
  • Set Power on and off time: Preferences > Energy Saver > Schedule.
  • Set “Hide” menu bar and dock: Preferences > Dock & Menu bar
  • Open Safari as a full screen mode and go to the foyer’s a display site.
  • Restart the Mac mini to check everything is ok.
  • When you see the restart option, uncheck “Reopen windows when logging back in” because we will run Safari by Delay Start.

All done!

--

--