# Verify RudderStack Installation

<p>Before using RudderStack, it is highly recommended to verify that your installation works as expected by sending some test events. You can use any of the following approaches:</p>
<ul>
<li><a href="#bundled-shell-script" >Use the bundled shell script</a></li>
<li><a href="#rudderstack-http-api" >Use RudderStack&rsquo;s HTTP API</a></li>
</ul>

<html lang="en">
<blockquote class="info">
  <div class="tip-quote">
    
    <div class="tip-text">This guide assumes that you have already installed and set up RudderStack in your preferred environment.</div>
  </div>
</blockquote>

</html>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="bundled-shell-script">Bundled shell script</h2><p>The <a href="https://github.com/rudderlabs/rudder-server" ><code>rudder-server</code> GitHub repository</a> contains a bundled shell script that generates test events. Clone the repository by running the following command:</p>
<div class="rs-code">
  <div class="rs-code__head">bash<button class="rs-code__copy" type="button">
      
      Copy
    </button>
  </div>
  <div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">git clone https://github.com/rudderlabs/rudder-server.git</code></pre></div>
</div>
<p>Then, follow the steps below to send test events.</p>
<!-- end-chunk -->
<!-- begin-chunk -->
<h3 id="step-1-get-source-write-key">Step 1: Get source write key</h3><!-- end-chunk -->
<!-- begin-chunk -->
<h4 id="rudderstack-open-source-dashboard">RudderStack Open Source dashboard</h4><p>If you have signed up for <a href="https://app.rudderstack.com/signup?type=opensource" >RudderStack open source</a>, follow these steps:</p>
<ol>
<li>Log in to your RudderStack Open Source dashboard.</li>
<li>Set up a source and connect it to a destination.</li>
<li>You can find the write key in the <strong>Setup</strong> tab of your source.</li>
</ol>

<figure class="image--main "  >
    <a 
         href="/docs/images/rudderstack-open-source/write-key.webp"
        
        >
        <img src="/docs/images/rudderstack-open-source/write-key.webp" 
         alt="RudderStack source write key"  
         
         
        decoding="async" loading="lazy" class="img-shortcode"/>
    </a>
    
</figure>

<!-- end-chunk -->
<!-- begin-chunk -->
<h4 id="self-hosted-control-plane">Self-hosted control plane</h4><p>If you are self-hosting the control plane using <a href="https://www.rudderstack.com/docs/get-started/rudderstack-open-source/control-plane-lite/" >Control Plane Lite</a>, follow these steps:</p>
<ol>
<li>Set up a source and connect it to a destination.</li>
<li>Note the write key for the source:</li>
</ol>

<figure class="image--main "  >
    <a 
         href="/docs/images/rudderstack-open-source/control-plane-lite-source-writekey.webp"
        
        >
        <img src="/docs/images/rudderstack-open-source/control-plane-lite-source-writekey.webp" 
         alt="Control plane lite source write Key"  
         
         
        decoding="async" loading="lazy" class="img-shortcode"/>
    </a>
    
</figure>

<!-- end-chunk -->
<!-- begin-chunk -->
<h3 id="step-2-send-test-events">Step 2: Send test events</h3><p>To send test events, follow the steps in the sections below depending on your preferred setup:</p>
<!-- end-chunk -->
<!-- begin-chunk -->
<h4 id="local-setup">Local setup</h4><ol>
<li>Navigate to the folder where RudderStack is installed.</li>
<li>Run the following command:</li>
</ol>
<div class="rs-code">
  <div class="rs-code__head">bash<button class="rs-code__copy" type="button">
      
      Copy
    </button>
  </div>
  <div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">./scripts/generate-event &lt;WRITE_KEY&gt; &lt;DATA_PLANE_URL&gt;/v1/batch</code></pre></div>
</div>

<html lang="en">
<blockquote class="info">
  <div class="tip-quote">
    
    <div class="tip-text">Replace <code>&lt;WRITE_KEY&gt;</code> and <code>&lt;DATA_PLANE_URL&gt;</code> with your source write key and <a href="https://www.rudderstack.com/docs/dashboard-guides/#connections" >data plane URL</a>.</div>
  </div>
</blockquote>

</html>
<ol start="3">
<li>Go to your source in the RudderStack Open Source dashboard and check the <strong>Live Events</strong> tab to verify if the events are delivered.</li>
</ol>

<figure class="image--main "  >
    <a 
         href="/docs/images/rudderstack-open-source/source-live-events.webp"
        
        >
        <img src="/docs/images/rudderstack-open-source/source-live-events.webp" 
         alt="Source live events"  
         
         
        decoding="async" loading="lazy" class="img-shortcode"/>
    </a>
    
</figure>

<p>An example is shown below:</p>

<figure class="image--main "  >
    <a 
         href="/docs/images/rudderstack-open-source/test-event.webp"
        
        >
        <img src="/docs/images/rudderstack-open-source/test-event.webp" 
         alt="Test Event"  
         
         
        decoding="async" loading="lazy" class="img-shortcode"/>
    </a>
    
</figure>

<!-- end-chunk -->
<!-- begin-chunk -->
<h4 id="docker-setup">Docker setup</h4><ol>
<li>Run the following command:</li>
</ol>
<div class="rs-code">
  <div class="rs-code__head">bash<button class="rs-code__copy" type="button">
      
      Copy
    </button>
  </div>
  <div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">docker exec -ti \
    &lt;rudder-server-running-container-id&gt; \
    ./scripts/generate-event &lt;WRITE_KEY&gt; &lt;DATA_PLANE_URL&gt;/v1/batch</code></pre></div>
</div>

<html lang="en">
<blockquote class="info">
  <div class="tip-quote">
    
    <div class="tip-text">Replace <code>&lt;WRITE_KEY&gt;</code> and <code>&lt;DATA_PLANE_URL&gt;</code> with your source write key and <a href="https://www.rudderstack.com/docs/dashboard-guides/#connections" >data plane URL</a>.</div>
  </div>
</blockquote>

</html>
<ol start="2">
<li>Go to your source in the RudderStack Open Source dashboard and check the <strong>Live Events</strong> tab to verify if the events are delivered.</li>
</ol>

<blockquote class="warning">
  <div class="tip-quote">
    
    <div class="tip-text">Unlike RudderStack Open Source, the control plane set up using <a href="https://www.rudderstack.com/docs/get-started/rudderstack-open-source/control-plane-lite/" >Control Plane Lite</a> does not support the <strong>Live Events</strong> feature.</div>
  </div>
</blockquote>
<p>If you supply an invalid source write key or data plane URL, you will get the following error:</p>

<figure class="image--main "  >
    <a 
         href="/docs/images/rudderstack-open-source/test-event-error.webp"
        
        >
        <img src="/docs/images/rudderstack-open-source/test-event-error.webp" 
         alt="Test Event error"  
         
         
        decoding="async" loading="lazy" class="img-shortcode"/>
    </a>
    
</figure>

<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="rudderstack-http-api">RudderStack HTTP API</h2><p>To send test events using the <a href="https://www.rudderstack.com/docs/api/http-api/" >RudderStack HTTP API</a>, follow these steps:</p>
<ol>
<li>Import this <a href="https://www.getpostman.com/collections/480307c55ad2b9dd4e27" >Postman collection</a>.</li>
<li>Edit the variables <code>source_write_key</code> and <code>data_plane_url</code> in this collection with your source write key and <a href="https://www.rudderstack.com/docs/dashboard-guides/#connections" >data plane URL</a>.</li>
</ol>
<p>RudderStack uses <strong>Basic Authentication</strong> for authenticating all HTTP requests. The HTTP Basic Authentication requires a user name and password, where:</p>
<ul>
<li>Username is the <code>source_write_key</code>.</li>
<li>Password is an empty string (<code>&quot;&quot;</code>).</li>
</ul>
<ol start="3">
<li>Send the test API requests.</li>
<li>Go to your source in the RudderStack Open Source dashboard and check the <strong>Live Events</strong> tab to verify if the events are delivered.</li>
</ol>

