<?php /* * We only get here after setup, or if there's an error in the configuration. * * Display a table to the user showing the necessary dependencies * (both PHP and binary) and the status of any application services, * along with steps to fix them if they're not found or misconfigured. */ global $extensions; $phpDependencies = checkPhpDependencies(); $externalServices = checkExternalServices(); $postgres = $phpDependencies['postgres']; $database = $externalServices['database']; $rabbitmq = $externalServices['rabbitmq']; $systemd = with_systemd(); if ($systemd) { $pypo = $externalServices['pypo']; $liquidsoap = $externalServices['liquidsoap']; $analyzer = $externalServices['analyzer']; $celery = $externalServices['celery']; $api = $externalServices['api']; } $r1 = array_reduce($phpDependencies, 'booleanReduce', true); $r2 = array_reduce($externalServices, 'booleanReduce', true); $result = $r1 && $r2; ?> <html> <head> <link rel="stylesheet" type="text/css" href="css/bootstrap-3.3.1.min.css"> <link rel="stylesheet" type="text/css" href="css/setup/config-check.css"> </head> <style> /* This is here because we're using the config-check css for both this page and the system status page */ html { background-color: #f5f5f5; } body { padding: 2em; min-width: 600px; text-align: center; margin: 3em; border: 1px solid lightgray; border-radius: 5px; } </style> <body> <h2> <img class="logo" src="css/images/airtime_logo_jp.png" /><br /> <strong>Configuration Checklist</strong> </h2> <?php if (!$result) { ?> <br /> <h3 class="error">Looks like something went wrong!</h3> <p> Take a look at the checklist below for possible solutions. If you're tried the suggestions and are still experiencing issues, read the <a href="https://github.com/libretime/libretime/releases">release notes</a>, come <a href="https://discourse.libretime.org/">visit our discourse</a> or, check <a href="https://www.libretime.org/">the website and main docs</a>. </p> <?php } else { ?> <p> Your Airtime station is up and running! Get started by logging in with the default username and password: admin/admin </p> <button onclick="location = location.pathname;">Log in to Airtime!</button> <?php } ?> <table class="table"> <thead> <tr> <th class="component"> Component </th> <th class="description"> <strong>Description</strong> </th> <th class="solution"> <strong>Status or Solution</strong> </th> </tr> </thead> </table> <div class="checklist"> <table class="table table-striped"> <caption class="caption"> PHP Dependencies </caption> <tbody> <tr class="<?php echo $postgres ? 'success' : 'danger'; ?>"> <td class="component"> Postgres </td> <td class="description"> PDO and PostgreSQL libraries </td> <?php if ($postgres) { ?> <td class="solution check"></td> <?php } else { ?> <td class="solution">Try running <code>sudo apt-get install php5-pgsql</code></td> <?php } ?> </tr> </tbody> </table> <table class="table table-striped"> <caption class="caption"> External Services </caption> <tbody> <tr class="<?php echo $database ? 'success' : 'danger'; ?>"> <td class="component"> Database </td> <td class="description"> Database configuration for Airtime </td> <?php if ($database) { ?> <td class="solution check"></td> <?php } else { ?> <td class="solution"> Make sure you aren't missing any of the Postgres dependencies in the table above. If your dependencies check out, make sure your database configuration settings in <code><?php echo LIBRETIME_CONFIG_FILEPATH; ?></code> are correct and the Airtime database was installed correctly. </td> <?php } ?> </tr> <tr class="<?php echo $rabbitmq ? 'success' : 'danger'; ?>"> <td class="component"> RabbitMQ </td> <td class="description"> RabbitMQ configuration for Airtime </td> <?php if ($rabbitmq) { ?> <td class="solution check"></td> <?php } else { ?> <td class="solution"> Make sure RabbitMQ is installed correctly, and that your settings in <?php echo LIBRETIME_CONFIG_FILEPATH; ?> are correct. Try using <code>sudo rabbitmqctl list_users</code> and <code>sudo rabbitmqctl list_vhosts</code> to see if the airtime user (or your custom RabbitMQ user) exists, then checking that <code>sudo rabbitmqctl list_exchanges</code> contains entries for airtime-pypo and airtime-uploads. </td> <?php } ?> </tr> <?php if ($systemd) { ?> <tr class="<?php echo $analyzer ? 'success' : 'danger'; ?>"> <td class="component"> Media Analyzer </td> <td class="description"> <?php echo _('LibreTime media analyzer service'); ?> </td> <?php if ($analyzer) { ?> <td class="solution check"></td> <?php } else { ?> <td class="solution"> <?php echo _('Check that the libretime-analyzer service is installed correctly in '); ?><code>/etc/systemd/system/</code>, <?php echo _(" and ensure that it's running with "); ?> <br /><code>systemctl status libretime-analyzer</code><br /> <?php echo _('If not, try '); ?><br /><code>sudo systemctl restart libretime-analyzer</code> </td> <?php } ?> </tr> <tr class="<?php echo $pypo ? 'success' : 'danger'; ?>"> <td class="component"> Pypo </td> <td class="description"> <?php echo _('LibreTime playout service'); ?> </td> <?php if ($pypo) { ?> <td class="solution check"></td> <?php } else { ?> <td class="solution"> <?php echo _('Check that the libretime-playout service is installed correctly in '); ?><code>/etc/systemd/system/</code>, <?php echo _(" and ensure that it's running with "); ?> <br /><code>systemctl status libretime-playout</code><br /> <?php echo _('If not, try '); ?><br /><code>sudo systemctl restart libretime-playout</code> </td> <?php } ?> </tr> <tr class="<?php echo $liquidsoap ? 'success' : 'danger'; ?>"> <td class="component"> Liquidsoap </td> <td class="description"> <?php echo _('LibreTime liquidsoap service'); ?> </td> <?php if ($liquidsoap) { ?> <td class="solution check"></td> <?php } else { ?> <td class="solution"> <?php echo _('Check that the libretime-liquidsoap service is installed correctly in '); ?><code>/etc/systemd/system/</code>, <?php echo _(" and ensure that it's running with "); ?> <br /><code>systemctl status libretime-liquidsoap</code><br /> <?php echo _('If not, try '); ?><br /><code>sudo systemctl restart libretime-liquidsoap</code> </td> <?php } ?> </tr> <tr class="<?php echo $celery ? 'success' : 'danger'; ?>"> <td class="component"> Celery </td> <td class="description"> <?php echo _('LibreTime Celery Task service'); ?> </td> <?php if ($celery) { ?> <td class="solution check"></td> <?php } else { ?> <td class="solution"> <?php echo _('Check that the libretime-worker service is installed correctly in '); ?><code>/etc/systemd/system/</code>, <?php echo _(" and ensure that it's running with "); ?> <br /><code>systemctl status libretime-worker</code><br /> <?php echo _('If not, try '); ?><br /><code>sudo systemctl restart libretime-worker</code> </td> <?php } ?> </tr> <tr class="<?php echo $api ? 'success' : 'danger'; ?>"> <td class="component"> API </td> <td class="description"> <?php echo _('LibreTime API service'); ?> </td> <?php if ($api) { ?> <td class="solution check"></td> <?php } else { ?> <td class="solution"> <?php echo _('Check that the libretime-api service is installed correctly in '); ?><code>/etc/init.d/</code>, <?php echo _(" and ensure that it's running with "); ?> <br /><code>systemctl status libretime-api</code><br /> <?php echo _('If not, try '); ?><br /><code>sudo systemctl restart libretime-api</code> </td> <?php } ?> </tr> <?php } ?> </tbody> </table> </div> <div class="footer"> <h3> PHP Extension List </h3> <p> <?php echo implode('|', $extensions); ?> </p> </div>