<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><font face="monospace">I'm trying to get Birdseye deployed On
        Ubuntu 20.02 LTS.   Got lighttpd responding but having an issue
        getting birdseye running.</font></p>
    <p><font face="monospace"><b>I am getting access restricted when I
          run from command line:<br>
        </b></font></p>
    <p><font face="monospace">root@ric-as112:/srv/birdseye#
        /usr/bin/sudo /srv/birdseye/bin/birdc -2 -s
        /var/run/bird/bird-ric-as112-ipv4.ctl ?<br>
        BIRD 2.0.7 ready.<br>
        Access restricted<b><br>
          <br>
        </b></font></p>
    <p><font face="monospace"><b>Do I need to setup a cache key?</b></font></p>
    <p><font face="monospace"><a class="moz-txt-link-freetext" href="https://github.com/inex/birdseye/blob/master/bootstrap/app.php">https://github.com/inex/birdseye/blob/master/bootstrap/app.php</a><b><br>
        </b></font></p>
    <p><font face="monospace"><b><br>
        </b></font></p>
    <p><font face="monospace"><b>lighttpd is listening:</b><br>
      </font></p>
    <p><font face="monospace">netstat -ntulp<br>
        Active Internet connections (only servers)<br>
        Proto Recv-Q Send-Q Local Address           Foreign
        Address         State       PID/Program name<br>
        tcp        0      0 0.0.0.0:80             
        0.0.0.0:*               LISTEN      242141/lighttpd<br>
        tcp        0      0 0.0.0.0:179            
        0.0.0.0:*               LISTEN      938/bird</font></p>
    <p><b><font face="monospace"><br>
        </font></b></p>
    <p><b><font face="monospace"><br>
        </font></b></p>
    <p><b><font face="monospace">Cant pull up the api:</font></b></p>
    <p><font face="monospace">curl -v
        <a class="moz-txt-link-freetext" href="http://as112.ric.nix-ops.net/api/status">http://as112.ric.nix-ops.net/api/status</a><br>
        *   Trying 23.152.192.13:80...<br>
        * TCP_NODELAY set<br>
        * Connected to as112.ric.nix-ops.net (23.152.192.13) port 80
        (#0)<br>
        > GET /api/status HTTP/1.1<br>
        > Host: as112.ric.nix-ops.net<br>
        > User-Agent: curl/7.68.0<br>
        > Accept: */*<br>
        ><br>
        * Mark bundle as not supporting multiuse<br>
        < HTTP/1.1 500 Internal Server Error<br>
        < Content-type: text/html; charset=UTF-8<br>
        < Content-Length: 0<br>
        < Date: Mon, 11 Apr 2022 01:43:07 GMT<br>
        < Server: lighttpd/1.4.55<br>
        <<br>
        * Connection #0 to host as112.ric.nix-ops.net left intact<br>
      </font></p>
    <p><font face="monospace"><br>
      </font></p>
    <p><font face="monospace"><br>
      </font></p>
    <p><b><font face="monospace">Running tasks:</font></b></p>
    <p><font face="monospace">bird         744  0.0  0.2   7468  4316
        ?        SLs  00:05   0:00 /usr/sbin/bird -f -u bird -g bird<br>
        root         949  0.0  0.1   7648  3416 ?        Ss   00:05  
        0:02 /usr/sbin/bird -c
        /usr/local/etc/bird/bird-ric-as112-ipv4.conf -s
        /var/run/bird/bird-ric-as112-ipv4.ctl<br>
        root         957  0.0  0.1   7644  3272 ?        Ss   00:05  
        0:01 /usr/sbin/bird -c
        /usr/local/etc/bird/bird-ric-as112-ipv6.conf -s
        /var/run/bird/bird-ric-as112-ipv6.ctl<br>
      </font></p>
    <p><font face="monospace"><br>
      </font></p>
    <p><b><font face="monospace">Here is
          /srv/birdseye/birdseye-ric-as112-ipv4.env</font></b></p>
    <p><font face="monospace"># Bird's Eye - see
        <a class="moz-txt-link-freetext" href="https://github.com/inex/birdseye">https://github.com/inex/birdseye</a><br>
        #<br>
        # Values that are commented show their default setting.<br>
        <br>
        # To query Bird securely, we use a wrapper script<br>
        BIRDC="/usr/bin/sudo /srv/birdseye/bin/birdc -2 -s
        /usr/local/etc/bird"<br>
        <br>
        # We use caching as a natural API -> birdc rate limiter<br>
        # Changing to 'array' will disable the cache but this is
        strongly discouraged<br>
        # [this is Memcache for 127.0.0.1:11211 by default]<br>
        CACHE_DRIVER=file<br>
        <br>
        # A cache key is required only if relying on a default .env
        configuration.<br>
        # If you're relying on the automated configuration discovery
        detailed at:<br>
        #   <a class="moz-txt-link-freetext" href="https://github.com/inex/birdseye#configuration">https://github.com/inex/birdseye#configuration</a><br>
        # then this is set automatically and appropriatly.<br>
        # BIRDSEYE_CACHE_KEY="SomeCacheKey"<br>
        <br>
        # Set to true for testing / debugging.<br>
        # This will provide stack dumps and reveal internal logic /
        configuration.<br>
        # It also added "env" and "cache_disabled" to the api section of
        responses.<br>
        # APP_DEBUG=false<br>
        APP_DEBUG=true<br>
        <br>
        # For testing, we have including some real Bird IPv4 dumps.<br>
        # Setting to true makes Bird's Eye use those rather than
        querying a local Bird daemon<br>
        # USE_BIRD_DUMMY=false<br>
        <br>
        # Time (in monutes - Lumen restriction) to store cache objects
        for:<br>
        # CACHE_SHOW_STATUS=1<br>
        # CACHE_SHOW_SYMBOLS=5<br>
        # CACHE_PROTOCOLS=2<br>
        # CACHE_ROUTES=5<br>
        <br>
        # Maximum routes that will be sent back in an API query. We have
        not created pagination yet so this will be<br>
        # a hard limit. The looking glass implementation does not add
        links for tables / protocols exceeding this.<br>
        # Aborts with a 403 when a table/protocol route list has more
        than this. Uses 'show route ... count' internally.<br>
        # MAX_ROUTES=1000<br>
        <br>
        # Maximum API requests per client per minute<br>
        # THROTTLE_PER_MIN=20<br>
        <br>
        # This micro server also includes a built in looking glass which
        can be enabled by setting this to true<br>
        # The loogking glass is really just to deomostrate the API and
        uses the same API calls internally as<br>
        # are publically available. If enabled, it's available under /lg<br>
        #LOOKING_GLASS_ENABLED=false<br>
        LOOKING_GLASS_ENABLED=true<br>
        <br>
        # Page title for looking glass [note: {!VERSION!} will be
        replaced with the actual version]<br>
        # LOOKING_GLASS_TITLE="Bird's Eye Looking Glass - API
        V{!VERSION!}"<br>
        <br>
        # The LG displays the BGP protocol description. These can
        sometimes be internal<br>
        # machine generated / unwieldy strings. If you want to pluck out
        just a bit of<br>
        # this you can set a regex here and, when valid and matches
        against the description,<br>
        # it plucks the first subpattern match (i.e. (xxx) ) and sets
        that in<br>
        # the API response as description_short. The frontend LG will
        also prefer this if set.<br>
        #<br>
        # Note that the system adds anchors and Bird output matching so
        the evaluated regex is:<br>
        #      '/^\s+Description:\s+' . env(
        'PARSER_PROTOCOL_BGP_DESCRIPTION' ) . '$/'<br>
        #<br>
        # E.g. to pluck 'ppp-rb01' out of 'RR Client - ppp-rb01', you
        might use:<br>
        #     PARSER_PROTOCOL_BGP_DESCRIPTION=".*\s+([a-zA-Z0-9\-_]+)"<br>
        #<br>
        #PARSER_PROTOCOL_BGP_DESCRIPTION=""</font></p>
    <p><b><font face="monospace"><br>
        </font></b></p>
    <p><b><font face="monospace">/etc/lightpad/lightpad.conf</font></b></p>
    <p><font face="monospace"># Sample Bird's Eye Lighttpd config - just
        added a small amount to<br>
        # the standard Lighttpd configuration.<br>
        <br>
        server.modules = (<br>
            "mod_access",<br>
            "mod_alias",<br>
            "mod_compress",<br>
            "mod_redirect",<br>
            "mod_rewrite",<br>
        )<br>
        <br>
        server.document-root        = "/srv/birdseye/public"<br>
        server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )<br>
        server.errorlog             = "/var/log/lighttpd/error.log"<br>
        server.pid-file             = "/var/run/lighttpd.pid"<br>
        server.username             = "www-data"<br>
        server.groupname            = "www-data"<br>
        server.port                 = 80<br>
        #server.bind                 = "23.152.129.13"<br>
        <br>
        index-file.names            = ( "index.php", "index.html",
        "index.lighttpd.html" )<br>
        url.access-deny             = ( "~", ".inc" )<br>
        static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )<br>
        <br>
        compress.cache-dir          = "/var/cache/lighttpd/compress/"<br>
        compress.filetype           = ( "application/javascript",
        "text/css", "text/html", "text/plain" )<br>
        <br>
        # default listening port for IPv6 falls back to the IPv4 port<br>
        ## Use ipv6 if available<br>
        #include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port<br>
        #include_shell "/usr/share/lighttpd/create-mime.assign.pl"<br>
        <br>
        <br>
        include_shell "/usr/share/lighttpd/create-mime.conf.pl"<br>
        <br>
        include "/etc/lighttpd/conf-enabled/*.conf"<br>
        #include_shell "/usr/share/lighttpd/include-conf-enabled.pl"<br>
        <br>
        url.redirect = ()<br>
        <br>
        url.rewrite-once = (<br>
        #       
"^/(css|img|js|fonts)/.*\.(jpg|jpeg|gif|png|swf|avi|mpg|mpeg|mp3|flv|ico|css|js|woff|ttf)$"
        => "$0",<br>
        #        "^/(favicon\.ico|robots\.txt|sitemap\.xml)$" =>
        "$0",<br>
        #        "^/test\.php$" => "$0",<br>
        #        "^/[^\?]*(\?.*)?$" => "index.php/$1"<br>
"^/(css|img|js|fonts)/.*\.(jpg|jpeg|gif|png|swf|avi|mpg|mpeg|mp3|flv|ico|css|js|woff|ttf)$"
        => "/$0",<br>
        "^/(favicon\.ico|robots\.txt|sitemap\.xml)$" => "/$0",
        "^/[^\?]*(\?.*)?$" => "/index.php/$1"<br>
        )<br>
        <br>
      </font></p>
    <p><font face="monospace"><br>
      </font></p>
  </body>
</html>