Skip to content
Go to file


Server code to manage piSignage players in a LAN or Private Network or to setup your own server!

run npm install command after git pull and before starting the server

Recommended Server configuration

  • Intel CPU based VM or server
  • 2GB minimum memory
  • 30GB+ SSD or hard disk
  • Linux based OS

Pi 4 and Ubuntu based pisignage-server image - Experimental

  • You could download the SD card image from here
  • The PDF guide for the same is available here

Upgrading to latest from existing versions**

  1. Change to pisignage-server directory where you have pulled the code last time
  2. Issue the command git pull origin master IMPORTANT: If you are upadating from before 24 Nov 2016, after git pull, please change the uri variable in config/env/development.js to 'mongodb://localhost/pisignage-dev' to retain the old data
  3. Apply your code changes if any
  4. Do "npm install"
  5. Start the pisignage-server and go to url localhost:3000
  6. Enter the username of yours at (not the email ID) (or change under settings, otherwise player license will not be enabled)
  7. Default authentication credentials for player webUI has been changed to pi:pi
  8. New settings tab has been added for settings instead of config/env/all.js file
  9. New player software upgrades are automatically pulled to the server and you can upgrade from the local server itself
  10. Upload new licenses bought to the local server so that they are automatically installed in the pi
  11. Authentication has been added to the server UI which can be changed under settings (default pi:pi)

##2.0.0 compatible release-features

  1. Introduction of domination playlist
  2. Play multiple assets when a advertisement event is triggered
  3. PDF slide mode
  4. Media RSS option to show only text
  5. Zoom and sending keystrokes option for webpage links (can be used for login and other uses)
  6. Blend transition mode
  7. Option to use youtube-dl, disable welcome screen
  8. Letterboxed and stretched mode for video and image

Getting Started

Note: Instructions may change, please refer to the respective package/OS websites for the latest,   
        Write to us at for help.
  1. Install mongodb - open-source document database

    Refer mongodb install guides to install mongodb.

  2. Install node.js and npm - open source server framework

  3. Install ffmpeg - video converter

  4. Install imagemagick - tool for image edit, conversion

  5. Install Git - distributed version control system

  6. Clone this reporsitory and run follwing commands

  7. Currently network port is configured as 3000 in local server. Modify in the file config/env/development.js for the port

  8. Run node server with node server.js

  9. Open Chrome browser and check at http://localhost:3000 OR http://[your-ip]:3000 (ex:,

  10. Do the following configuration before you start

    • Under settings, configure the username to be same as that of your signin username at (it is not your email id)
    • Download the license files either from email or from, upload them to your local server under settings
    • You can upgrade your players directly from your local server
    • authentication is pi & pi, you can change this under settings

NOTE: Please make sure mongod process is running and /data/db owenership is changed to regular user. If not use, sudo chown -R your-username:user-group /data

Configure Pi

In player settings, PORT number should be part of server name for e.g.
  1. Download the pisignage player software and prepare SD card as per instructions

  2. After player boots, configure admin and media server to your local address and port using one of the below methods

    a. Using the webUI of the player at http://[player IP]:8000/settings

    b. Connect Keyboard and press Ctrl-N or F6

    • Change config and media server to http://[your server ip]:port (ex:,
    • Open terminal ctrl+Alt+ t and delete any existing _config.json and _settings.json file from /home/pi/piSignagePro/config directory

    c. Connect through ssh

    • Edit /home/pi/piSignagePro/package.json for admin and media server configuration
    • delete any existing _config.json and _settings.json file from /home/pi/piSignagePro/config directory


  1. Player management

    • Auto discovery of players in a network
    • Monitor Players
  2. Group management - create groups and assign players to groups

    • Display settings - 1080p/720p and landscape or portrait mode
    • Deploy default playlist, scheduled playlists and advt playlist
    • Assign Players to Groups
  3. Assets Management

    • Upload assets (video,mp3,html/zip,images, links, google calendar feed)
    • Videos are automatically converted to mp4 using ffmpeg
    • Thumbnail creation for videos and video metadat extraction to store in data base
    • Add labels to manage assets
    • View Details of files
    • rename or delete files
    • view assets locally
    • auto label creation for uploaded time (in coming releases)
  4. Playlist management

    • Create, rename or delete playlists
    • Assign assets & drag to change order
    • assign duration for non-video assets
    • select a layout to show (1,2a,2b,3a,3b,4,4b,2ab)
    • Enable ticker & set Ticker text
    • Make it ad playlist with configurable interval timer

Points to remember

  1. angularjs-dropdown-multiselect is taken directly from instead of bower (for close-on-select to work)

  2. Requires following programs to work

    • ffmpeg >= 0.9 (in certain OS, these may have to be compiled since the package does not exist, please see the issue #9)
    • ffprobe associated with ffmpeg needed to convert videos
    • imagemagick creates thumbnails
  3. Two directories are created by the program ../media and ../media/_thumbnails. If these directories are not created server won't work as expected (for e.g. thumbnails won't be created if _thumbnails directory does not exit). In that case create those directories manually.

  4. You can also manage players using Browser(http://playerip:8000) or downloading Chrome app

  5. Make sure installation under settings page is same as your username (not email) at

Please raise an issue for problems or send us email at

You can’t perform that action at this time.