How to create a Tour on the homepage?
Every time a page is rendered, the Tour module load all guided tours for this one. Those tours are added at the end of the DOM (with hook_page_bottom) with a css 'hidden' class. Then the Tour JS script (tour.js) handles those hidden elements by watching a triggering html element targeted by the id toolbar-tab-tour. If any tour is registered for the current page, that toolbar-tab-tourelement will also be hidden by tour.js. 
I did this thing for showing a student role tour. I simply created a plugin block within my module:



namespace Drupal\my_module\Plugin\Block;

use Drupal\Core\Block\BlockBase;

/**
 * Provides a 'StudentTourBlock' block.
 *
 * @Block(
 *  id = "student_tour_block",
 *  admin_label = @Translation("Student tour block"),
 * )
 */
class StudentTourBlock extends BlockBase {

  /**
   * {@inheritdoc}
   */
  public function build() {

    if (\Drupal::currentUser()-&gt;hasPermission('access tour') &amp;&amp; !\Drupal::currentUser()-&gt;hasPermission('access toolbar')) {

      $build = [
        'tour_button' =&gt; [
          '#type' =&gt; 'html_tag',
          '#tag' =&gt; 'button',
          '#value' =&gt; '&lt;span class="glyphicon glyphicon-question-sign" aria-hidden="true"&gt;&lt;/span&gt; ' . $this-&gt;t('Help'),
          '#attributes' =&gt; [
            'id' =&gt; 'toolbar-tab-tour',
            'class' =&gt; ['btn btn-success btn-xs hidden-sm hidden-xs']
          ],
          '#cache' =&gt; [
            'contexts' =&gt; [
              'user.permissions'
            ]
          ],
          '#attached' =&gt; [
            'library' =&gt; [
              'tour/tour',
            ],
          ],
        ]
      ];
      return $build;
    }
    else
      return [];
  }

}


Don't forget to attach the tour/tour library :)