MMDVM dashboard installation on Raspberry Pi

This dashboard will inform you about the real-time operation of the MMDVM repeater.

This dashboard is proposed by Kim DG9VH. It exploits the MMDVM logs and must be installed on a web server. It is written in php.

Here are five steps to realize to have this functional dashboard on the raspberry pi MMDVM.

Preliminary step

Update the operating system with two commands

Install the git (community of codes opensource) downloading / synchronizing software

Validate the installation by Y for Yes

Installing the web server

Install the lightweight web server called lighttpd

Validate the installation by Y for Yes


Installing php

The php language must now be installed by these four command lines.


and move the files to the web server directory

Give access rights to the user www-data

Setting the MMDVM dashboard

Now we will configure the software so that it can retrieve the necessary elements from MMDVM.

From a web browser connect to the local network, launch a page pointing to the IP address of your Raspberry Pi MMDVM. To know his address, the following instruction on the Raspberry Pi will help you.

For example :

You will be prompted to go to the setup on the setup.php page


Here is the operating part of MMDVM configurations

General configuration part

To have the Raspberry Pi restart or shutdown command buttons functional, you must enter the login and password.


The dashboard works correctly when you see the contact history in the “Last Heard List” section on the main page. Also when the relay is transmitting, a line is displayed in the “Currently TXing”

You can delete or simply rename the setup.php file to remove the warning message.

I take this opportunity to thank DG9VH for this very successful and working software.

If you would be interested to participate in a possible future new grouped order (MMDVM board, SvxLink Card), leave your email below to be reported!

20 thoughts on “MMDVM dashboard installation on Raspberry Pi

    1. Merci Jean-Yves, toujours dans l’idée que cela puisse servir largement.
      Thank you Jean-Yves, always with the idea that it can be used as widely as possible.
      73 Christian

  1. Many thanks 😃 It’s nice to see the own work doing a good job at many locations meanwhile.


    Merci beaucoup 😃 C’est agréable de voir son propre travail se concrétiser à de multiples endroits.


    1. Thank you Kim for your contribution to the MMDVM project and help to follow up the working of digital repeaters.
      Merci Kim pour votre contribution au projet MMDVM et aide au suivi des fonctionnements de relais numériques

  2. Advertisements
  3. Il faut que les commandes récursives qui donnent les droits à l’utilisateur www-data au répertoire /var/www/html soient exécutées après avoir recopié le contenu du dashboard récupéré à partir de gitHub.

    Il faut faire:
    sudo chown -R www-data:www-data /var/www/html
    sudo chmod -R 775 /var/www/html

    Après la commande
    sudo mv /home/pi/MMDVMHost-Dashboard/* /var/www/html/

    Recursive commands that give the user www-data rights to the /var/www/html directory must be executed after copying the dashboard content recovered from gitHub.

    We have to do something:
    sudo chown -R www-data: www-data /var/wwww/html
    sudo chmod -R 775 /var/www/html

    After ordering
    sudo mv /home/pi/MMDVMHost-Dashboard/* /var/wwww/html/html

    1. Tu as tout à fait raison, Ghislain, c’est mieux dans cet ordre ! La page est mise à jour
      Merci !

      You’re absolutely right, Ghislain, it’s better in that order! The page is updated
      Thanks !

  4. Pour que les commandes s’exécutent, il faut s’assurer que l’utilisateur www-data soit dans la liste des sudoers.


    In order for the commands to be executed, you must make sure that the user www-data is in the sudoers list.

    1. Bonjour,

      Même en ayant ajouté www-data au groupe sudo, aucune commande ne fonctionne, même après un reboot
      Une idée ?
      J'ai une hiérarchie différente, j'ai laissé le dashboard dans son rep d'origine, soit :
      Ce qui me permet de pouvoir continuer à utiliser le "git pull" pour les mises à jour.


      Even after adding www-data to the sudo group, no commands work, even after a reboot
      Any ideas?
      I have a different hierarchy, I left the dashboard in its original directory :
      This allows me to continue to use the "git pull" for updates.

      1. Pierre-Philippe,

        Comme l'indique Ghislain, il faut ajouter le user www-data au fichier des sudoers. Mais pour des raisons de sécurité, je préconise de limiter les droits aux commandes que l'on veut autoriser

        sudo nano /etc/sudoers
        et ajouter la ligne
        www-data ALL=NOPASSWD: /home/pi/commande_executable, /home/pi/autre_commande et_option, /home/pi/troisieme_commande

        où vous listerez les chemins vers les scripts exécutables depuis le tableau de bord (

        Ghislain peut éventuellement préciser ce qu'il aurait mis en place sur F1ZGG…
        J'espère avoir pu aider.


        As Ghislain points out, the user www-data must be added to the sudoers file. But for safety reasons, I recommend limiting the rights to the orders you want to authorize
        sudo nano /etc/sudoers
        and add the line
        www-data ALL=NOPASSWD: /home/pi/command_executable, /home/pi/other_command and_option, /home/pi/third_command

        where you will list the paths to the executable scripts from the dashboard (

        Ghislain can possibly specify what he has implemented on F1ZGG….
        I hope I could have helped.

  5. Advertisements
  6. Trying to install php5 into my raspbian I get this error:

    sudo apt-get install php5-common php5-cgi php5

    Package php5 is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Package 'php5-common' has no installation candidate
    E: Package 'php5-cgi' has no installation candidate
    E: Package 'php5' has no installation candidate

    PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
    NAME="Raspbian GNU/Linux"
    VERSION="9 (stretch)"

    What will be the right packages for this?

    En essayant d’installer php5 dans mon raspbian j’obtiens cette erreur:

    sudo apt-get install php5-common php5-cgi php5-common

    Package php5 is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Package 'php5-common' has no installation candidate
    E: Package 'php5-cgi' has no installation candidate
    E: Package 'php5' has no installation candidate

    PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
    NAME="Raspbian GNU/Linux"
    VERSION="9 (stretch)"

    Quels sont les bons paquets pour cela?

    1. Franck,

      With the raspbian stretch version (v9) comes with PHP7 as the standard, so there are no PHP5 packages.

      So you can try to install the MMDVM dashboard with PHP7:
      sudo apt-get install php7.0 php7.0-mcrypt php7-common php7-cgi

      If you php5 is required, you can follow the instructions to install this version on this page :


      Avec la version raspbian stretch (v9) est livré avec PHP7 en standard, donc il n’ y a pas de paquets PHP5.

      Vous pouvez donc essayer d’installer le dashboard MMDVM avec PHP7:
      sudo apt-get install php7.0 php7.0-mcrypt php7-common php7-cgicode

      Si vous avez besoin de php5, vous pouvez suivre les instructions d’installation de cette version sur cette page: “.

  7. sudo apt-get install php7.0 php7.0-mcrypt php7-common php7-cgi
    sudo apt-get install php7.0

    Now all is done.

    I have my rasp with OLED and dashboard working using your great step-by-step. I build a ZUM board in a veroboard (don’t looks so bad)
    But by the way what will be the DMR server and some others details like TG or my ID that I must setup to start to test ,I mean what I need to set into MMDVMHost.ini to see some activity ?

    My RF is a couple of TM8110, the TX looks great but did you set some att for the receiver output ? (I’m using a voltage divider 10K+1K).
    I don’t see any activity when I transmit with a DMR handheld. What I’m doing wrong?

    Best Regards!

    sudo apt-get install php7.0 php7.0 php7.0-mcrypt php7-common php7-cgi
    sudo apt-get install php7.0 de sudo apt-get

    Maintenant tout est bon.

    J’ai mon raspi avec OLED et le tableau de bord qui fonctionne en utilisant votre super tutoriel pas à pas. Je construis une platine ZUM sur un veroboard (donne pas si mal)
    Mais il me reste à définir le serveur DMR et quelques autres détails comme TG, mon ID que je dois configurer pour commencer à tester; que dois-je mettre dans MMDVMHost.ini pour voir de l’activité ?

    Pour la partie HF, j’utilise un couple de TM8110, l’émission est ok, mais avez-vous une atténuation pour attaquer du récepteur? (J’utilise un diviseur de tension 10K+1K).
    Je ne vois aucune activité lorsque je transmets avec un terminal DMR. Qu’est-ce que je fais de mauvais ?

    Meilleures salutations!

  8. Advertisements
  9. I found it necessary to edit the lighttpd config to Stop pointing to the ‘dashboard’ directory
    *Maybe this is something new in the version of the image I used?

    sudo nano /etc/lighttpd/lighttpd.conf

    and change
    server.document-root = “/var/www/dashboard”
    to be
    server.document-root = “/var/www/html”

    J’ai trouvé nécessaire d’éditer la configuration de lighttpd pour arrêter de pointer vers le répertoire’dashboard’.
    Peut-être que c’est quelque chose de nouveau dans la version de l’image que j’ai utilisée ?

    sudo nano /etc/lighttpd/lighttpd/lighttpd.conf

    et le changement
    server.document-root = “/var/www/dashboard”.
    server.document-root = “/var/www/html”.

  10. After spending time, I am not sure if this is up-to-date. and the 3 hours spent reviewing … this is worth doing …. no page update…. owner please revisit this

    Après avoir passé du temps, je ne suis pas sûr que ce soit à jour. et les 3 heures consacrées à l’examen …. cela vaut la peine d’être fait. pas de mise à jour de la page. propriétaire s’il vous plaît revisiter ceci

    1. Mike,
      You’re probably right, applications are always evolving. Do not hesitate to publish your discoveries in order to help the readers of the evolutions to apply to the tutorial.

      Vous avez surement raison, les applications évolues toujours. N’hésitez pas à publier vos découvertes afin d’aider les lecteurs sur les évolutions à appliquer au tutoriel.

  11. Mny TNX for your guide.
    Only a question….in my dashboard have this info

    “File custom.php not found! Did you forget to create it?”

    but i don’t know the custom.php file !!

    What is it for? What should I enter in the file

    Tnx again

    Merci beaucoup pour votre guide.
    Seule une question……dans mon tableau de bord apparait ce message
    “Fichier custom.php introuvable ! Avez-vous oublié de le créer ?”
    mais je ne connais pas le fichier custom.php.
    A quoi cela sert-il ? Que dois-je créer dans le dossier ?

    Merci à nouveau

    1. Adam,

      You have ticked “Show Custom Info” on the setup page. You have just to uncheck it.


      Vous avez coché “Afficher les informations personnalisées” sur la page de configuration. Il faut juste la décocher.

  12. Advertisements
  13. Hi.
    I don’t find file DMRIds.dat and file CALLSIGN_NAME.txt.
    I can not find in my raspberry the DMRIds.dat file and the CALLSIGN_NAME.txt file.
    Where should they be? Do I have to create them or import them the first time?
    Thank you

    Je ne trouve pas le fichier DMRIds.dat et le fichier CALLSIGNNAME_NAME.txt.
    Je ne trouve pas dans ma framboise le fichier DMRIds.dat et le fichier CALLSIGNNAME_NAME.txt.
    Où devraient-ils être ? Dois-je les créer ou les importer la première fois ?
    Je vous remercie

    1. This DMRIds.dat file is updated by the script provided by MMDVMHost ( The script distributed by DG9VH is obsolete today. Indeed, the new European data protection law (PDRG) has entered into effect. The file is no longer available is now hosted here and no longer downloadable from

      This script must be configured (DMRIDPATH path) then be running daily by a crontab ( to receive the latest updates automatically.
      73 Chris

      Ce fichier est mis à jour par le script fournis par MMDVMHost ( Le script distribué par DG9VH est obsolète à ce jour. En effet le nouveau règlement européen de protection des données est entré en vigueur. Le fichier n’est plus disponible est à présent hébergé ici et n’est plus téléchargeable depuis

      Ce script doit être configuré (chemin DMRIDPATH) puis lancé quotidiennement par un crontab ( pour recevoir les dernières mises à jour automatiquement.
      73 Christian

  14. I realized that when I call the IP of the system and then the dashboard responds to me, the temperature of the raspberry rises dramatically.
    In a moment it rises from the normal 56/59 degrees, up to almost 80 degrees.
    If I go out of the dashboard, the temperature in a very short time returns to normal values.
    Does anyone know how we can try to solve this problem?
    Thank you

    (Traduction) J’ai réalisé que lorsque j’appelle l’IP du système et que le tableau de bord me répond, la température de la framboise monte en flèche.
    En un instant, il passe de 56/59 degrés à presque 80 degrés.
    Si je sors du tableau de bord, la température en très peu de temps revient aux valeurs normales.
    Quelqu’un sait-il comment nous pouvons essayer de résoudre ce problème ?
    Je vous remercie

Leave a Reply

Your email address will not be published. Required fields are marked *