]> arthur.barton.de Git - netdata.git/commitdiff
optimizatons suggested by sitespeed.io
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sat, 24 Sep 2016 14:34:24 +0000 (17:34 +0300)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sat, 24 Sep 2016 14:34:24 +0000 (17:34 +0300)
web/dashboard.html
web/demo.html
web/demo2.html
web/demosites.html
web/goto-host-from-alarm.html
web/index.html
web/netdata-swagger.json
web/netdata-swagger.yaml
web/registry.html
web/tv.html

index 7f1b45bfcc7de6a2696463bd6666347cbf72e52f..72a5d25c3efe240c1e8f65b170a071ca148f63c6 100644 (file)
@@ -643,16 +643,13 @@ So, to avoid flashing the charts, we destroy and re-create the charts on each up
     <small>rendered in <span id="time803">X</span> ms</small>
 </div>
 
-
-
-
-
 </div> <!-- 1st container -->
 </body>
 </html>
-    <!-- you can set your netdata server globally, by ucommenting this -->
-    <!-- you can also give a different server per chart, with the attribute: data-host="http://netdata.server:19999" -->
-    <!-- <script> netdataServer = "http://box:19999"; </script> -->
 
-    <!-- load the dashboard manager - it will do the rest -->
-    <script type="text/javascript" src="dashboard.js?v51"></script>
+<!-- you can set your netdata server globally, by ucommenting this -->
+<!-- you can also give a different server per chart, with the attribute: data-host="http://netdata.server:19999" -->
+<!-- <script> netdataServer = "http://box:19999"; </script> -->
+
+<!-- load the dashboard manager - it will do the rest -->
+<script type="text/javascript" src="dashboard.js?v51"></script>
index a04dae024d9ae97060d9f1b0c31f480ba8797dc7..2b360e42ecbfe498c4b7eef62d11c0818fb213ff 100644 (file)
@@ -19,9 +19,8 @@
     <meta property="og:site_name" content="netdata"/>
     <meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
     <meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
-    
-    <script type="text/javascript" src="dashboard.js?v51"></script>
 </head>
+<script type="text/javascript" src="dashboard.js?v51"></script>
 <body>
 
 <div style="width: 100%; text-align: center;">
index 1c5482e83f343be159115d696fc0007af5959e9b..d4a88d68f794c7887ffa3e4d64ebdeeecf669bf6 100644 (file)
     <meta property="og:site_name" content="netdata"/>
     <meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
     <meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
-
-    <script>var netdataTheme = 'slate';</script>
-    <script type="text/javascript" src="http://my-netdata.io/dashboard.js?v51"></script>
 </head>
+<script>var netdataTheme = 'slate';</script>
+<script type="text/javascript" src="http://my-netdata.io/dashboard.js?v51"></script>
 <body>
 
 <div class="container" style="width: 90%; padding-top: 10px; text-align: center; color: #AAA">
index 4370d159c5987269f39d0abcc98a8d178957108c..8d050359b66c0c8f3f27ffa874d81fea1ec652dc 100644 (file)
@@ -18,8 +18,9 @@
     <meta property="og:site_name" content="netdata"/>
     <meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
     <meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
+</head>
 
-    <script>
+<script>
     // --- OPTIONS FOR THE DASHBOARD --
 
     // this section has to appear before loading dashboard.js
 
     // set this to false, to always update the charts, even if focus is lost
     NETDATA.options.current.stop_updates_when_focus_is_lost = true;
-    </script>
+</script>
+<style>
+    body {
+        font-size: 1vw;
+    }
+
+    .mysparkline {
+        position: relative;
+        display: inline-block;
+        min-height: 50px;
+        width: 100%;
+        height: 8vmax;
+        text-align: left;
+    }
+
+    .mysparkline-overchart-label {
+        position: absolute;
+        display: block;
+        top: 0;
+        left: 10px;
+        bottom: 0;
+        right: 0;
+        font-size: 1vmax;
+        z-index: 1;
+    }
 
-    <style>
-
-body {
-    font-size: 1vw;
-}
-
-.mysparkline {
-    position: relative;
-    display: inline-block;
-    min-height: 50px;
-    width: 100%;
-    height: 8vmax;
-    text-align: left;
-}
-
-.mysparkline-overchart-label {
-    position: absolute;
-    display: block;
-    top: 0;
-    left: 10px;
-    bottom: 0;
-    right: 0;
-    font-size: 1vmax;
-    z-index: 1;
-}
-
-.mysparkline-overchart-value {
-    position: absolute;
-    display: block;
-    top: 1.1vmax;
-    left: 10px;
-    bottom: 0;
-    right: 0;
-    font-size: 5vmax;
-    z-index: 2;
-    text-shadow: #333 0px 0px 2px;
-}
-
-.myfullchart {
-    position: relative;
-    display: inline-block;
-    width: 100%;
-    height: 14vmax;
-    min-height: 150px;
-    text-align: left;
-}
-
-.mygauge-combo {
-    display: inline-block;
-}
-
-.mygauge {
-    position: relative;
-    display: block;
-    width: 18vw;
-    height: 11vw;
-}
-
-.mygauge-button {
-    display: block;
-}
-
-.mytitle {
-    padding-top: 6vw;
-    padding-bottom: 1vw;
-    text-align: center;
-    font-size: 2.4vw;
-}
-
-.mysubtitle {
-    padding-top: 2vw;
-    padding-bottom: 1vw;
-    text-align: center;
-    font-size: 1.8vw;
-}
-
-.mycontent {
-    text-align: center;
-    font-size: 1.5vw;
-}
-
-@media only screen and (min-width : 992px) {
-    .container {
-        width: 90%;
+    .mysparkline-overchart-value {
+        position: absolute;
+        display: block;
+        top: 1.1vmax;
+        left: 10px;
+        bottom: 0;
+        right: 0;
+        font-size: 5vmax;
+        z-index: 2;
+        text-shadow: #333 0px 0px 2px;
     }
-}
-@media only screen and (max-width : 992px) {
-    .container {
+
+    .myfullchart {
+        position: relative;
+        display: inline-block;
         width: 100%;
+        height: 14vmax;
+        min-height: 150px;
+        text-align: left;
     }
-}
-    </style>
 
-</head>
-<body style="text-align: center;">
+    .mygauge-combo {
+        display: inline-block;
+    }
+
+    .mygauge {
+        position: relative;
+        display: block;
+        width: 18vw;
+        height: 11vw;
+    }
+
+    .mygauge-button {
+        display: block;
+    }
+
+    .mytitle {
+        padding-top: 6vw;
+        padding-bottom: 1vw;
+        text-align: center;
+        font-size: 2.4vw;
+    }
+
+    .mysubtitle {
+        padding-top: 2vw;
+        padding-bottom: 1vw;
+        text-align: center;
+        font-size: 1.8vw;
+    }
+
+    .mycontent {
+        text-align: center;
+        font-size: 1.5vw;
+    }
+
+    @media only screen and (min-width : 992px) {
+        .container {
+            width: 80%;
+        }
+    }
+    @media only screen and (max-width : 992px) {
+        .container {
+            width: 100%;
+        }
+    }
+</style>
+
+<body style="text-align: center; background-color: #272b30;">
 
 <div class="container">
 
index ff7a00ffd36215ca77328a33fd1e4ecd29ba9233..e3f4391f8bc4c50fc17d631e825dbe548fa0ed9b 100755 (executable)
     <meta name="apple-mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
 
-    <script>
-        var netdataRegistry = true;
-        var netdataRegistryAfterMs = 0;
-        var netdataTheme = 'slate';
-        var netdataShowHelp = true;
-    </script>
-    <script type="text/javascript" src="dashboard.js?v51"></script>
-
-    <script>
-    var urlOptions = {
-        host: null,
-        chart: null,
-        family: null,
-        alarm: null,
-        alarm_unique_id: 0,
-        alarm_id: 0,
-        alarm_event_id: 0,
-        hasProperty: function(property) {
-            return typeof this[property] !== 'undefined';
-        }
-    };
-
-    function netdataQueryParse() {
-        var query = document.location.search.split('?');
-        var variables = query[1].split('&');
-        var len = variables.length;
-        while(len--) {
-            var p = variables[len].split('=');
-            if(urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined')
-                urlOptions[p[0]] = decodeURIComponent(p[1]);
-        }
-
-        if(typeof urlOptions.family !== 'string')
-            urlOptions.family = '';
-
-        if(typeof urlOptions.chart !== 'string')
-            urlOptions.chart = '';
+</head>
+<script>
+    var netdataRegistry = true;
+    var netdataRegistryAfterMs = 0;
+    var netdataTheme = 'slate';
+    var netdataShowHelp = true;
+</script>
+<script type="text/javascript" src="dashboard.js?v51"></script>
+
+<script>
+var urlOptions = {
+    host: null,
+    chart: null,
+    family: null,
+    alarm: null,
+    alarm_unique_id: 0,
+    alarm_id: 0,
+    alarm_event_id: 0,
+    hasProperty: function(property) {
+        return typeof this[property] !== 'undefined';
     }
-
-    function netdataURL(url) {
-        return url + '#top'
-            + ';nowelcome=1'
-            // + ';show_alarms=1'
-            + ';chart=' + encodeURIComponent(urlOptions.chart)
-            + ';family=' + encodeURIComponent(urlOptions.family)
-            + ';alarm=' + encodeURIComponent(urlOptions.alarm)
-            + ';alarm_unique_id=' + urlOptions.alarm_unique_id.toString()
-            + ';alarm_id=' + urlOptions.alarm_id.toString()
-            + ';alarm_event_id=' + urlOptions.alarm_event_id.toString()
-            ;
+};
+
+function netdataQueryParse() {
+    var query = document.location.search.split('?');
+    var variables = query[1].split('&');
+    var len = variables.length;
+    while(len--) {
+        var p = variables[len].split('=');
+        if(urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined')
+            urlOptions[p[0]] = decodeURIComponent(p[1]);
     }
 
-    var gotoServerValidateRemaining = 0;
-    var gotoServerMiddleClick = false;
-    var gotoServerStop = false;
-    var thisIsHttps = false;
-    var urlsInHttp = 0;
-    function gotoServerValidateUrl(id, guid, url) {
-        var penaldy = 0;
-        var error = 'failed';
-
-        if(thisIsHttps === false && url.toString().startsWith('https://')) {
-            // we penalize https only if the current url is http
-            // to allow the user walk through all its servers.
-            penaldy = 500;
-        }
+    if(typeof urlOptions.family !== 'string')
+        urlOptions.family = '';
+
+    if(typeof urlOptions.chart !== 'string')
+        urlOptions.chart = '';
+}
+
+function netdataURL(url) {
+    return url + '#top'
+        + ';nowelcome=1'
+        // + ';show_alarms=1'
+        + ';chart=' + encodeURIComponent(urlOptions.chart)
+        + ';family=' + encodeURIComponent(urlOptions.family)
+        + ';alarm=' + encodeURIComponent(urlOptions.alarm)
+        + ';alarm_unique_id=' + urlOptions.alarm_unique_id.toString()
+        + ';alarm_id=' + urlOptions.alarm_id.toString()
+        + ';alarm_event_id=' + urlOptions.alarm_event_id.toString()
+        ;
+}
+
+var gotoServerValidateRemaining = 0;
+var gotoServerMiddleClick = false;
+var gotoServerStop = false;
+var thisIsHttps = false;
+var urlsInHttp = 0;
+function gotoServerValidateUrl(id, guid, url) {
+    var penaldy = 0;
+    var error = 'failed';
+
+    if(thisIsHttps === false && url.toString().startsWith('https://')) {
+        // we penalize https only if the current url is http
+        // to allow the user walk through all its servers.
+        penaldy = 500;
+    }
 
-        else if(thisIsHttps === true && url.toString().startsWith('http://')) {
-            error = 'can\'t check';
-            urlsInHttp++;
-        }
+    else if(thisIsHttps === true && url.toString().startsWith('http://')) {
+        error = 'can\'t check';
+        urlsInHttp++;
+    }
 
-        var finalURL = netdataURL(url);
+    var finalURL = netdataURL(url);
 
-        setTimeout(function() {
-            document.getElementById('gotoServerList').innerHTML += '<tr><td style="padding-left: 20px;"><a href="' + finalURL + '" target="_blank">' + url + '</a></td><td style="padding-left: 30px;"><code id="' + guid + '-' + id + '-status">checking...</code></td></tr>';
+    setTimeout(function() {
+        document.getElementById('gotoServerList').innerHTML += '<tr><td style="padding-left: 20px;"><a href="' + finalURL + '" target="_blank">' + url + '</a></td><td style="padding-left: 30px;"><code id="' + guid + '-' + id + '-status">checking...</code></td></tr>';
 
-            NETDATA.registry.hello(url, function(data) {
-                if (data) {
-                    document.getElementById(guid + '-' + id + '-status').innerHTML = "OK";
+        NETDATA.registry.hello(url, function(data) {
+            if (data) {
+                document.getElementById(guid + '-' + id + '-status').innerHTML = "OK";
 
-                    if(!gotoServerStop) {
-                        gotoServerStop = true;
+                if(!gotoServerStop) {
+                    gotoServerStop = true;
 
-                        if(gotoServerMiddleClick) {
-                            window.open(finalURL);
-                            gotoServerMiddleClick = false;
-                            document.getElementById('gotoServerResponse').innerHTML = '<b>Opening new window to ' + NETDATA.registry.machines[guid].name + '<br/><a href="' + finalURL + '">' + url + '</a></b><br/>(check your pop-up blocker if it fails)';
-                        }
-                        else
-                            document.location = finalURL;
+                    if(gotoServerMiddleClick) {
+                        window.open(finalURL);
+                        gotoServerMiddleClick = false;
+                        document.getElementById('gotoServerResponse').innerHTML = '<b>Opening new window to ' + NETDATA.registry.machines[guid].name + '<br/><a href="' + finalURL + '">' + url + '</a></b><br/>(check your pop-up blocker if it fails)';
                     }
+                    else
+                        document.location = finalURL;
                 }
-                else {
-                    document.getElementById(guid + '-' + id + '-status').innerHTML = error;
-                    gotoServerValidateRemaining--;
-                    if(gotoServerValidateRemaining <= 0) {
-                        gotoServerMiddleClick = false;
-                        document.getElementById('gotoServerResponse').innerHTML = '<b>Sorry! I cannot find any operational URL for this server</b>';
-
-                        if(thisIsHttps === true && urlsInHttp > 0) {
-                            document.getElementById('gotoServerResponse').innerHTML += '<br/>redirecting myself to HTTP to allow checking';
-                            document.location = document.location.toString().replace('https://', 'http://');
-                        }
+            }
+            else {
+                document.getElementById(guid + '-' + id + '-status').innerHTML = error;
+                gotoServerValidateRemaining--;
+                if(gotoServerValidateRemaining <= 0) {
+                    gotoServerMiddleClick = false;
+                    document.getElementById('gotoServerResponse').innerHTML = '<b>Sorry! I cannot find any operational URL for this server</b>';
+
+                    if(thisIsHttps === true && urlsInHttp > 0) {
+                        document.getElementById('gotoServerResponse').innerHTML += '<br/>redirecting myself to HTTP to allow checking';
+                        document.location = document.location.toString().replace('https://', 'http://');
                     }
                 }
-            });
-        }, (id * 50) + penaldy);
+            }
+        });
+    }, (id * 50) + penaldy);
+}
+
+var netdataRegistryCallback = function(machines_array) {
+    if(typeof urlOptions.host !== 'string') {
+        document.getElementById('bodylog').innerHTML = "Sorry... bad request.";
+        return;
     }
 
-    var netdataRegistryCallback = function(machines_array) {
-        if(typeof urlOptions.host !== 'string') {
-            document.getElementById('bodylog').innerHTML = "Sorry... bad request.";
-            return;
-        }
-
-        document.getElementById('message').innerHTML = 'These are the URLs this machine is known:';
+    document.getElementById('message').innerHTML = 'These are the URLs this machine is known:';
 
-        if(document.location.toString().startsWith('https://'))
-            thisIsHttps = true;
+    if(document.location.toString().startsWith('https://'))
+        thisIsHttps = true;
 
-        if(machines_array) {
-            var len = machines_array.length;
-            while(len--) {
-                if(machines_array[len].name === urlOptions.host) {
-                    var ulen = machines_array[len].alternate_urls.length;
-                    gotoServerValidateRemaining = ulen;
-                    while(ulen--)
-                        gotoServerValidateUrl(ulen, machines_array[len].guid, machines_array[len].alternate_urls[ulen]);
-                    return;
-                }
+    if(machines_array) {
+        var len = machines_array.length;
+        while(len--) {
+            if(machines_array[len].name === urlOptions.host) {
+                var ulen = machines_array[len].alternate_urls.length;
+                gotoServerValidateRemaining = ulen;
+                while(ulen--)
+                    gotoServerValidateUrl(ulen, machines_array[len].guid, machines_array[len].alternate_urls[ulen]);
+                return;
             }
         }
+    }
 
-        document.getElementById('bodylog').innerHTML = "Sorry... your account is not linked to a netdata server named: <b>" + urlOptions.host + '</b>';
-    };
-
-    netdataQueryParse();
-    </script>
+    document.getElementById('bodylog').innerHTML = "Sorry... your account is not linked to a netdata server named: <b>" + urlOptions.host + '</b>';
+};
 
-</head>
+netdataQueryParse();
+</script>
 <body>
 <div class="container" id="">
     <div id="bodylog" style="padding-top: 8vmax; font-size: 2.0vmax;">
index 288e42cc5a77389464809155e924b1bd0bc60bfa..fe76674f0d307c6a49ae5169756aaf38b342a90f 100644 (file)
@@ -36,7 +36,6 @@
     <meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
 
     <style>
-
     /* prevent body from hiding under the navbar */
     body {
         padding-top: 50px;
     }
 
     </style>
+</head>
 
-    <!-- check which theme to use -->
-    <script type="text/javascript">
-        // enable alarms checking and notifications
-        var netdataShowAlarms = true;
-
-        // enable registry updates
-        var netdataRegistry = true;
-        
-        // --------------------------------------------------------------------
-        // urlOptions
-
-        var urlOptions = {
-            hash: '#',
-            theme: null,
-            help: null,
-            pan_and_zoom: false,
-            after: 0,
-            before: 0,
-            nowelcome: false,
-            show_alarms: false,
-            chart: null,
-            family: null,
-            alarm: null,
-            alarm_unique_id: 0,
-            alarm_id: 0,
-            alarm_event_id: 0,
-            hasProperty: function(property) {
-                // console.log('checking property ' + property + ' of type ' + typeof(this[property]));
-                return typeof this[property] !== 'undefined';
-            }
-        };
+<!-- check which theme to use -->
+<script type="text/javascript">
+    // enable alarms checking and notifications
+    var netdataShowAlarms = true;
 
-        function netdataPanAndZoomCallback(status, after, before) {
-            urlOptions.pan_and_zoom = status;
-            urlOptions.after = after;
-            urlOptions.before = before;
-            netdataHashUpdate();
+    // enable registry updates
+    var netdataRegistry = true;
+    
+    // --------------------------------------------------------------------
+    // urlOptions
+
+    var urlOptions = {
+        hash: '#',
+        theme: null,
+        help: null,
+        pan_and_zoom: false,
+        after: 0,
+        before: 0,
+        nowelcome: false,
+        show_alarms: false,
+        chart: null,
+        family: null,
+        alarm: null,
+        alarm_unique_id: 0,
+        alarm_id: 0,
+        alarm_event_id: 0,
+        hasProperty: function(property) {
+            // console.log('checking property ' + property + ' of type ' + typeof(this[property]));
+            return typeof this[property] !== 'undefined';
         }
+    };
 
-        function netdataHashUpdate() {
-            history.replaceState(null, '', netdataHash());
-        }
+    function netdataPanAndZoomCallback(status, after, before) {
+        urlOptions.pan_and_zoom = status;
+        urlOptions.after = after;
+        urlOptions.before = before;
+        netdataHashUpdate();
+    }
 
-        function netdataHash() {
-            var hash = urlOptions.hash;
+    function netdataHashUpdate() {
+        history.replaceState(null, '', netdataHash());
+    }
 
-            if(urlOptions.pan_and_zoom === true) {
-                hash += ';after='  + urlOptions.after.toString() +
-                        ';before=' + urlOptions.before.toString();
-            }
+    function netdataHash() {
+        var hash = urlOptions.hash;
 
-            if(urlOptions.theme !== null)
-                hash += ';theme=' + urlOptions.theme.toString();
+        if(urlOptions.pan_and_zoom === true) {
+            hash += ';after='  + urlOptions.after.toString() +
+                    ';before=' + urlOptions.before.toString();
+        }
 
-            if(urlOptions.help !== null)
-                hash += ';help=' + urlOptions.help.toString();
+        if(urlOptions.theme !== null)
+            hash += ';theme=' + urlOptions.theme.toString();
 
-            return hash;
-        }
+        if(urlOptions.help !== null)
+            hash += ';help=' + urlOptions.help.toString();
 
-        function netdataHashParse() {
-            var variables = document.location.hash.split(';');
-            var len = variables.length;
-            while(len--) {
-                if(len !== 0) {
-                    var p = variables[len].split('=');
-                    if(urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined')
-                        urlOptions[p[0]] = decodeURIComponent(p[1]);
-                }
-                else {
-                    if(variables[len].length > 0)
-                        urlOptions.hash = variables[len];
-                }
-            }
+        return hash;
+    }
 
-            var booleans = [ 'nowelcome', 'show_alarms', 'pan_and_zoom' ];
-            len = booleans.length;
-            while(len--) {
-                if(urlOptions[booleans[len]] === 'true' || urlOptions[booleans[len]] === true || urlOptions[booleans[len]] === '1' || urlOptions[booleans[len]] === 1)
-                    urlOptions[booleans[len]] = true;
-                else
-                    urlOptions[booleans[len]] = false;
+    function netdataHashParse() {
+        var variables = document.location.hash.split(';');
+        var len = variables.length;
+        while(len--) {
+            if(len !== 0) {
+                var p = variables[len].split('=');
+                if(urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined')
+                    urlOptions[p[0]] = decodeURIComponent(p[1]);
             }
-
-            if(urlOptions.before > 0 && urlOptions.after > 0) {
-                urlOptions.pan_and_zoom = true;
-                urlOptions.nowelcome = true;
+            else {
+                if(variables[len].length > 0)
+                    urlOptions.hash = variables[len];
             }
-            else
-                urlOptions.pan_and_zoom = false;
-
-            // console.log(urlOptions);
         }
 
-        netdataHashParse();
+        var booleans = [ 'nowelcome', 'show_alarms', 'pan_and_zoom' ];
+        len = booleans.length;
+        while(len--) {
+            if(urlOptions[booleans[len]] === 'true' || urlOptions[booleans[len]] === true || urlOptions[booleans[len]] === '1' || urlOptions[booleans[len]] === 1)
+                urlOptions[booleans[len]] = true;
+            else
+                urlOptions[booleans[len]] = false;
+        }
 
-        // --------------------------------------------------------------------
-        // check options that should be processed before loading netdata.js
-        
-        function loadLocalStorage(name) {
-            var ret = null;
+        if(urlOptions.before > 0 && urlOptions.after > 0) {
+            urlOptions.pan_and_zoom = true;
+            urlOptions.nowelcome = true;
+        }
+        else
+            urlOptions.pan_and_zoom = false;
 
-            try {
-                if(typeof Storage !== "undefined" && typeof localStorage === 'object')
-                    ret = localStorage.getItem(name);
-            }
-            catch(error) {
-                ;
-            }
+        // console.log(urlOptions);
+    }
 
-            if(typeof ret === 'undefined' || ret === null)
-                return null;
+    netdataHashParse();
 
-            // console.log('loaded: ' + name.toString() + ' = ' + ret.toString());
+    // --------------------------------------------------------------------
+    // check options that should be processed before loading netdata.js
+    
+    function loadLocalStorage(name) {
+        var ret = null;
 
-            return ret;
+        try {
+            if(typeof Storage !== "undefined" && typeof localStorage === 'object')
+                ret = localStorage.getItem(name);
+        }
+        catch(error) {
+            ;
         }
 
-        function saveLocalStorage(name, value) {
-            // console.log('saving: ' + name.toString() + ' = ' + value.toString());
-            try {
-                if(typeof Storage !== "undefined" && typeof localStorage === 'object') {
-                    localStorage.setItem(name, value.toString());
-                    return true;
-                }
-            }
-            catch(error) {
-                ;
-            }
+        if(typeof ret === 'undefined' || ret === null)
+            return null;
 
-            return false;
-        }
+        // console.log('loaded: ' + name.toString() + ' = ' + ret.toString());
 
-        function getTheme(def) {
-            var ret = loadLocalStorage('netdataTheme');
-            if(typeof ret === 'undefined' || ret === null || ret === 'undefined')
-                return def;
-            else
-                return ret;
-        }
+        return ret;
+    }
 
-        function setTheme(theme) {
-            if(theme === netdataTheme) return false;
-            return saveLocalStorage('netdataTheme', theme);
+    function saveLocalStorage(name, value) {
+        // console.log('saving: ' + name.toString() + ' = ' + value.toString());
+        try {
+            if(typeof Storage !== "undefined" && typeof localStorage === 'object') {
+                localStorage.setItem(name, value.toString());
+                return true;
+            }
+        }
+        catch(error) {
+            ;
         }
 
-        var netdataTheme = getTheme('slate');
-        var netdataShowHelp = true;
+        return false;
+    }
 
-        if(urlOptions.theme !== null) {
-            setTheme(urlOptions.theme);
-            netdataTheme = urlOptions.theme;
-        }
+    function getTheme(def) {
+        var ret = loadLocalStorage('netdataTheme');
+        if(typeof ret === 'undefined' || ret === null || ret === 'undefined')
+            return def;
         else
-            urlOptions.theme = netdataTheme;
+            return ret;
+    }
 
-        if(urlOptions.help !== null) {
-            saveLocalStorage('options.show_help', urlOptions.help);
-            netdataShowHelp = urlOptions.help;
-        }
-        else {
-            urlOptions.help = loadLocalStorage('options.show_help');
-        }
+    function setTheme(theme) {
+        if(theme === netdataTheme) return false;
+        return saveLocalStorage('netdataTheme', theme);
+    }
 
-        // --------------------------------------------------------------------
-        // registry call back to render my-netdata menu
+    var netdataTheme = getTheme('slate');
+    var netdataShowHelp = true;
 
-        var netdataRegistryCallback = function(machines_array) {
-            var el = '';
-            var a1 = '';
-            var found = 0;
+    if(urlOptions.theme !== null) {
+        setTheme(urlOptions.theme);
+        netdataTheme = urlOptions.theme;
+    }
+    else
+        urlOptions.theme = netdataTheme;
 
-            if(machines_array === null) {
-                var ret = loadLocalStorage("registryCallback");
-                if(typeof ret !== 'undefined' && ret !== null) {
-                    machines_array = JSON.parse(ret);
-                    console.log("failed to contact the registry - loaded registry data from browser local storage");
-                }
-            }
+    if(urlOptions.help !== null) {
+        saveLocalStorage('options.show_help', urlOptions.help);
+        netdataShowHelp = urlOptions.help;
+    }
+    else {
+        urlOptions.help = loadLocalStorage('options.show_help');
+    }
 
-            if(machines_array) {
-                saveLocalStorage("registryCallback", JSON.stringify(machines_array));
-
-                var machines = machines_array.sort(function (a, b) {
-                    if (a.name > b.name) return -1;
-                    if (a.name < b.name) return 1;
-                    return 0;
-                });
-
-                var len = machines.length;
-                while(len--) {
-                    var u = machines[len];
-                    found++;
-                    el += '<li id="registry_server_' + u.guid + '"><a class="registry_link" href="' + u.url + '" onClick="return gotoServerModalHandler(\'' + u.guid + '\');">' + u.name + '</a></li>';
-                    a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
-                }
+    // --------------------------------------------------------------------
+    // registry call back to render my-netdata menu
+
+    var netdataRegistryCallback = function(machines_array) {
+        var el = '';
+        var a1 = '';
+        var found = 0;
+
+        if(machines_array === null) {
+            var ret = loadLocalStorage("registryCallback");
+            if(typeof ret !== 'undefined' && ret !== null) {
+                machines_array = JSON.parse(ret);
+                console.log("failed to contact the registry - loaded registry data from browser local storage");
             }
+        }
 
-            if(!found) {
-                if(machines)
-                    el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">your netdata server list is empty...</a></li>';
-                else
-                    el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">failed to contact the registry...</a></li>';
-
-                a1 += '<li><a href="#" onClick="return false;">&nbsp;</a></li>';
-
-                el += '<li role="separator" class="divider"></li>' +
-                        '<li><a href="//london.netdata.rocks/default.html">EU - London (DigitalOcean.com)</a></li>' +
-                        '<li><a href="//atlanta.netdata.rocks/default.html">US - Atlanta (CDN77.com)</a></li>' +
-                        '<li><a href="//athens.netdata.rocks/default.html">EU - Athens</a></li>';
-                a1 += '<li role="separator" class="divider"></li>' +
-                        '<li><a href="#">&nbsp;</a></li>' +
-                        '<li><a href="#">&nbsp;</a></li>'+
-                        '<li><a href="#">&nbsp;</a></li>';
+        if(machines_array) {
+            saveLocalStorage("registryCallback", JSON.stringify(machines_array));
+
+            var machines = machines_array.sort(function (a, b) {
+                if (a.name > b.name) return -1;
+                if (a.name < b.name) return 1;
+                return 0;
+            });
+
+            var len = machines.length;
+            while(len--) {
+                var u = machines[len];
+                found++;
+                el += '<li id="registry_server_' + u.guid + '"><a class="registry_link" href="' + u.url + '" onClick="return gotoServerModalHandler(\'' + u.guid + '\');">' + u.name + '</a></li>';
+                a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
             }
+        }
 
-            el += '<li role="separator" class="divider"></li>';
-            a1 += '<li role="separator" class="divider"></li>';
+        if(!found) {
+            if(machines)
+                el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">your netdata server list is empty...</a></li>';
+            else
+                el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">failed to contact the registry...</a></li>';
+
+            a1 += '<li><a href="#" onClick="return false;">&nbsp;</a></li>';
+
+            el += '<li role="separator" class="divider"></li>' +
+                    '<li><a href="//london.netdata.rocks/default.html">EU - London (DigitalOcean.com)</a></li>' +
+                    '<li><a href="//atlanta.netdata.rocks/default.html">US - Atlanta (CDN77.com)</a></li>' +
+                    '<li><a href="//athens.netdata.rocks/default.html">EU - Athens</a></li>';
+            a1 += '<li role="separator" class="divider"></li>' +
+                    '<li><a href="#">&nbsp;</a></li>' +
+                    '<li><a href="#">&nbsp;</a></li>'+
+                    '<li><a href="#">&nbsp;</a></li>';
+        }
 
-            el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #999;" target="_blank">What is this?</a></li>';
-            a1 += '<li><a href="#" style="color: #999;" onclick="switchRegistryModalHandler(); return false;"><i class="fa fa-sliders" aria-hidden="true" style="color: #999;"></i></a></li>'
+        el += '<li role="separator" class="divider"></li>';
+        a1 += '<li role="separator" class="divider"></li>';
 
-            document.getElementById('mynetdata_servers').innerHTML = el;
-            document.getElementById('mynetdata_servers2').innerHTML = el;
-            document.getElementById('mynetdata_actions1').innerHTML = a1;
+        el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #999;" target="_blank">What is this?</a></li>';
+        a1 += '<li><a href="#" style="color: #999;" onclick="switchRegistryModalHandler(); return false;"><i class="fa fa-sliders" aria-hidden="true" style="color: #999;"></i></a></li>'
 
-            gotoServerInit();
-        };
+        document.getElementById('mynetdata_servers').innerHTML = el;
+        document.getElementById('mynetdata_servers2').innerHTML = el;
+        document.getElementById('mynetdata_actions1').innerHTML = a1;
 
-    </script>
+        gotoServerInit();
+    };
+
+</script>
 
-    <!-- load the dashboard manager - it will do the rest -->
-    <script type="text/javascript" src="dashboard.js?v51"></script>
-</head>
 <body data-spy="scroll" data-target="#sidebar">
     <div id="loadOverlay" class="loadOverlay" style="background-color: #888; color: #888;">
         netdata<br/><div style="font-size: 3vh;">Real-time performance monitoring, done right!</div>
         </div>
     </div>
 
+<!-- load the dashboard manager - it will do the rest -->
+<script type="text/javascript" src="dashboard.js?v51"></script>
 <script type="text/javascript">
 var this_is_demo = null;
 function isdemo() {
index a514d7929250e7638f934cdcd3921b51b8ed397e..c2ed74d44c459d6bf332bf97ff75e9e89bfac3e3 100644 (file)
@@ -5,7 +5,7 @@
         "description": "Real time data collection and graphs...",
         "version": "1.2.1_master"
     },
-    "host": "netdata.firehol.org",
+    "host": "registry.my-netdata.io",
     "schemes": [
         "http"
     ],
index c1049b12d3e7d75a2f7dbf41ae30efb27a2a7fef..370ebd2461e6d1c74cc2763f395908b612120f17 100644 (file)
@@ -3,7 +3,7 @@ info:
   title: NetData API
   description: 'Real time data collection and graphs...'
   version: 1.2.1_master
-host: netdata.firehol.org
+host: registry.my-netdata.io
 schemes:
   - http
 basePath: /api/v1
index d2770546419c79f2d466fb481c39e347dac50f04..382c03be6e4c537a2c5001f718a9da52942a5c04 100644 (file)
     <meta property="og:site_name" content="netdata"/>
     <meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
     <meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
-    
-    <script>
-    // this section has to appear before loading dashboard.js
-
-    // Select a theme.
-    // uncomment on of the two themes:
-
-    // var netdataTheme = 'default'; // this is white
-    var netdataTheme = 'slate'; // this is dark
-
-
-    // Set the default netdata server.
-    // on charts without a 'data-host', this one will be used.
-    // the default is the server that dashboard.js is downloaded from.
-
-    // var netdataServer = 'http://my.server:19999/';
-
-    function registryGotoServer(guid) {
-        console.log('goto server: ' + guid);
-    }
-
-    function registryAddServer(u) {
-        return '<div id="registry_server_' + u.guid + '" class="registry-server-container" onClick="registryGotoServer(\'' + u.guid + '\'); return false;">'
-                + '<div class="registry-server-name">' + u.name + '</div>'
-                + '<div data-netdata="system.cpu"'
-                + ' data-host="' + u.url + '"'
-                + ' data-chart-library="sparkline"'
-                + ' data-sparkline-chartrangemin="0"'
-                + ' data-sparkline-chartrangemax="100"'
-                + ' data-sparkline-chartrangeclip="true"'
-                + ' data-sparkline-disabletooltips="true"'
-                + ' data-sparkline-disableinteraction="true"'
-                + ' data-sparkline-disablehighlight="true"'
-                + ' data-sparkline-linecolor="#444"'
-                + ' data-sparkline-spotcolor="disable"'
-                + ' data-sparkline-minspotcolor="disable"'
-                + ' data-sparkline-maxspotcolor="disable"'
-                + ' data-width="100%"'
-                + ' data-height="20px"'
-                + ' data-after="-200"'
-                + '></div>'
-                + '</div>';
-    }
-
-    var netdataRegistryCallback = function(machines_array) {
-        var el = '';
-        var a1 = '';
-        var found = 0;
-
-        if(machines_array) {
-            function name_comparator_desc(a, b) {
-                if (a.name > b.name) return -1;
-                if (a.name < b.name) return 1;
-                return 0;
-            }
-
-            var machines = machines_array.sort(name_comparator_desc);
-            var len = machines.length;
-            while(len--) {
-                var u = machines[len];
-
-                var status = "enabled";
-                found++;
-
-                if(u.guid === NETDATA.registry.machine_guid)
-                    status = "disabled"
-
-                el += registryAddServer(u);
-                a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
-            }
-        }
-
-        if(!found) {
-            if(machines)
-                el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">your netdata server list is empty...</a></li>';
-            else
-                el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">failed to contact the registry...</a></li>';
-
-            a1 += '<li><a href="#">&nbsp;</a></li>';
-
-            el += '<li role="separator" class="divider"></li>' +
-                    '<li><a href="//london.netdata.rocks/default.html">EU - London (DigitalOcean.com)</a></li>' +
-                    '<li><a href="//atlanta.netdata.rocks/default.html">US - Atlanta (CDN77.com)</a></li>' +
-                    '<li><a href="//athens.netdata.rocks/default.html">EU - Athens</a></li>';
-            a1 += '<li role="separator" class="divider"></li>' +
-                    '<li><a href="#">&nbsp;</a></li>' +
-                    '<li><a href="#">&nbsp;</a></li>'+
-                    '<li><a href="#">&nbsp;</a></li>';
-        }
-
-        el += '<li role="separator" class="divider"></li>';
-        a1 += '<li role="separator" class="divider"></li>';
-
-        el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #999;" target="_blank">What is this?</a></li>';
-        a1 += '<li><a href="#" style="color: #999;" onclick="switchRegistryModalHandler(); return false;"><i class="fa fa-cog" aria-hidden="true" style="color: #999;"></i></a></li>'
-
-        document.getElementById('mynetdata_servers').innerHTML = el;
-        //document.getElementById('mynetdata_servers2').innerHTML = el;
-        //document.getElementById('mynetdata_actions1').innerHTML = a1;
-        NETDATA.updatedDom();
-    };
-    </script>
-
-    <!--
-        Load dashboard.js
-
-        to host this HTML file on your web server,
-        you have to load dashboard.js from the netdata server.
-
-        So, pick one the two below
-        If you pick the first, set the server name/IP.
-
-        The second assumes you host this file on /usr/share/netdata/web
-        and that you have chown it to be owned by netdata:netdata
-    -->
-    <!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
-    <script type="text/javascript" src="dashboard.js?v51"></script>
-
-    <script>
-    // Set options for TV operation
-    // This has to be done, after dashboard.js is loaded
-
-    // destroy charts not shown (lowers memory on the browser)
-    NETDATA.options.current.destroy_on_hide = true;
-    
-    // set this to false, to always show all dimensions
-    NETDATA.options.current.eliminate_zero_dimensions = true;
-    
-    // lower the pressure on this browser
-    NETDATA.options.current.concurrent_refreshes = true;
-
-    // if the tv browser is too slow (a pi?)
-    // set this to false
-    NETDATA.options.current.parallel_refresher = true;
-
-    // always update the charts, even if focus is lost
-    // NETDATA.options.current.stop_updates_when_focus_is_lost = false;
-    </script>
 
     <style>
         .registry-container {
         }
     </style>
 </head>
+<script>
+// this section has to appear before loading dashboard.js
+
+// Select a theme.
+// uncomment on of the two themes:
+
+// var netdataTheme = 'default'; // this is white
+var netdataTheme = 'slate'; // this is dark
+
+
+// Set the default netdata server.
+// on charts without a 'data-host', this one will be used.
+// the default is the server that dashboard.js is downloaded from.
+
+// var netdataServer = 'http://my.server:19999/';
+
+function registryGotoServer(guid) {
+    console.log('goto server: ' + guid);
+}
+
+function registryAddServer(u) {
+    return '<div id="registry_server_' + u.guid + '" class="registry-server-container" onClick="registryGotoServer(\'' + u.guid + '\'); return false;">'
+            + '<div class="registry-server-name">' + u.name + '</div>'
+            + '<div data-netdata="system.cpu"'
+            + ' data-host="' + u.url + '"'
+            + ' data-chart-library="sparkline"'
+            + ' data-sparkline-chartrangemin="0"'
+            + ' data-sparkline-chartrangemax="100"'
+            + ' data-sparkline-chartrangeclip="true"'
+            + ' data-sparkline-disabletooltips="true"'
+            + ' data-sparkline-disableinteraction="true"'
+            + ' data-sparkline-disablehighlight="true"'
+            + ' data-sparkline-linecolor="#444"'
+            + ' data-sparkline-spotcolor="disable"'
+            + ' data-sparkline-minspotcolor="disable"'
+            + ' data-sparkline-maxspotcolor="disable"'
+            + ' data-width="100%"'
+            + ' data-height="20px"'
+            + ' data-after="-200"'
+            + '></div>'
+            + '</div>';
+}
+
+var netdataRegistryCallback = function(machines_array) {
+    var el = '';
+    var a1 = '';
+    var found = 0;
+
+    if(machines_array) {
+        function name_comparator_desc(a, b) {
+            if (a.name > b.name) return -1;
+            if (a.name < b.name) return 1;
+            return 0;
+        }
+
+        var machines = machines_array.sort(name_comparator_desc);
+        var len = machines.length;
+        while(len--) {
+            var u = machines[len];
+
+            var status = "enabled";
+            found++;
+
+            if(u.guid === NETDATA.registry.machine_guid)
+                status = "disabled"
+
+            el += registryAddServer(u);
+            a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
+        }
+    }
+
+    if(!found) {
+        if(machines)
+            el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">your netdata server list is empty...</a></li>';
+        else
+            el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">failed to contact the registry...</a></li>';
+
+        a1 += '<li><a href="#">&nbsp;</a></li>';
+
+        el += '<li role="separator" class="divider"></li>' +
+                '<li><a href="//london.netdata.rocks/default.html">EU - London (DigitalOcean.com)</a></li>' +
+                '<li><a href="//atlanta.netdata.rocks/default.html">US - Atlanta (CDN77.com)</a></li>' +
+                '<li><a href="//athens.netdata.rocks/default.html">EU - Athens</a></li>';
+        a1 += '<li role="separator" class="divider"></li>' +
+                '<li><a href="#">&nbsp;</a></li>' +
+                '<li><a href="#">&nbsp;</a></li>'+
+                '<li><a href="#">&nbsp;</a></li>';
+    }
+
+    el += '<li role="separator" class="divider"></li>';
+    a1 += '<li role="separator" class="divider"></li>';
+
+    el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #999;" target="_blank">What is this?</a></li>';
+    a1 += '<li><a href="#" style="color: #999;" onclick="switchRegistryModalHandler(); return false;"><i class="fa fa-cog" aria-hidden="true" style="color: #999;"></i></a></li>'
+
+    document.getElementById('mynetdata_servers').innerHTML = el;
+    //document.getElementById('mynetdata_servers2').innerHTML = el;
+    //document.getElementById('mynetdata_actions1').innerHTML = a1;
+    NETDATA.updatedDom();
+};
+</script>
+
+<!--
+    Load dashboard.js
+
+    to host this HTML file on your web server,
+    you have to load dashboard.js from the netdata server.
+
+    So, pick one the two below
+    If you pick the first, set the server name/IP.
+
+    The second assumes you host this file on /usr/share/netdata/web
+    and that you have chown it to be owned by netdata:netdata
+-->
+<!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
+<script type="text/javascript" src="dashboard.js?v51"></script>
+
+<script>
+// Set options for TV operation
+// This has to be done, after dashboard.js is loaded
+
+// destroy charts not shown (lowers memory on the browser)
+NETDATA.options.current.destroy_on_hide = true;
+
+// set this to false, to always show all dimensions
+NETDATA.options.current.eliminate_zero_dimensions = true;
+
+// lower the pressure on this browser
+NETDATA.options.current.concurrent_refreshes = true;
+
+// if the tv browser is too slow (a pi?)
+// set this to false
+NETDATA.options.current.parallel_refresher = true;
+
+// always update the charts, even if focus is lost
+// NETDATA.options.current.stop_updates_when_focus_is_lost = false;
+</script>
 <body>
 &nbsp;
 <div id="mynetdata_servers" class="registry-container" onscroll="NETDATA.onscroll();">
index 81f73cca031d328fbf730942fbecf101ffb89b53..5e71b0239a1c1e12c4c15ed522bfa7988e5b5908 100644 (file)
     <meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
     <meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
     
-    <script>
-    // this section has to appear before loading dashboard.js
+</head>
+<script>
+// this section has to appear before loading dashboard.js
 
-    // Select a theme.
-    // uncomment on of the two themes:
+// Select a theme.
+// uncomment on of the two themes:
 
-    // var netdataTheme = 'default'; // this is white
-    var netdataTheme = 'slate'; // this is dark
+// var netdataTheme = 'default'; // this is white
+var netdataTheme = 'slate'; // this is dark
 
 
-    // Set the default netdata server.
-    // on charts without a 'data-host', this one will be used.
-    // the default is the server that dashboard.js is downloaded from.
+// Set the default netdata server.
+// on charts without a 'data-host', this one will be used.
+// the default is the server that dashboard.js is downloaded from.
 
-    // var netdataServer = 'http://my.server:19999/';
-    </script>
+// var netdataServer = 'http://my.server:19999/';
+</script>
 
-    <!--
-        Load dashboard.js
+<!--
+    Load dashboard.js
 
-        to host this HTML file on your web server,
-        you have to load dashboard.js from the netdata server.
+    to host this HTML file on your web server,
+    you have to load dashboard.js from the netdata server.
 
-        So, pick one the two below
-        If you pick the first, set the server name/IP.
+    So, pick one the two below
+    If you pick the first, set the server name/IP.
 
-        The second assumes you host this file on /usr/share/netdata/web
-        and that you have chown it to be owned by netdata:netdata
-    -->
-    <!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
-    <script type="text/javascript" src="dashboard.js?v51"></script>
+    The second assumes you host this file on /usr/share/netdata/web
+    and that you have chown it to be owned by netdata:netdata
+-->
+<!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
+<script type="text/javascript" src="dashboard.js?v51"></script>
 
-    <script>
-    // Set options for TV operation
-    // This has to be done, after dashboard.js is loaded
+<script>
+// Set options for TV operation
+// This has to be done, after dashboard.js is loaded
 
-    // destroy charts not shown (lowers memory on the browser)
-    NETDATA.options.current.destroy_on_hide = true;
-    
-    // set this to false, to always show all dimensions
-    NETDATA.options.current.eliminate_zero_dimensions = true;
-    
-    // lower the pressure on this browser
-    NETDATA.options.current.concurrent_refreshes = false;
+// destroy charts not shown (lowers memory on the browser)
+NETDATA.options.current.destroy_on_hide = true;
 
-    // if the tv browser is too slow (a pi?)
-    // set this to false
-    NETDATA.options.current.parallel_refresher = true;
+// set this to false, to always show all dimensions
+NETDATA.options.current.eliminate_zero_dimensions = true;
 
-    // always update the charts, even if focus is lost
-    // NETDATA.options.current.stop_updates_when_focus_is_lost = false;
+// lower the pressure on this browser
+NETDATA.options.current.concurrent_refreshes = false;
 
-    // Since you may render charts from many servers and any of them may
-    // become offline for some time, the charts will break.
-    // This will reload the page every RELOAD_EVERY minutes
+// if the tv browser is too slow (a pi?)
+// set this to false
+NETDATA.options.current.parallel_refresher = true;
 
-    var RELOAD_EVERY = 5;
-    setTimeout(function(){
-        location.reload();
-    }, RELOAD_EVERY * 60 * 1000);
+// always update the charts, even if focus is lost
+// NETDATA.options.current.stop_updates_when_focus_is_lost = false;
 
-    </script>
+// Since you may render charts from many servers and any of them may
+// become offline for some time, the charts will break.
+// This will reload the page every RELOAD_EVERY minutes
 
-</head>
+var RELOAD_EVERY = 5;
+setTimeout(function(){
+    location.reload();
+}, RELOAD_EVERY * 60 * 1000);
+
+</script>
 <body>
 
 <div style="width: 100%; text-align: center; display: inline-block;">
@@ -94,8 +93,8 @@
         <div style="width: 100%; height: calc(100% - 15px); text-align: center; display: inline-block;">
             <br/>
             <div data-netdata="system.cpu"
-                    data-host="http://netdata.firehol.org"
-                    data-title="CPU usage of netdata.firehol.org"
+                    data-host="http://registry.my-netdata.io"
+                    data-title="CPU usage of registry.my-netdata.io"
                     data-chart-library="dygraph"
                     data-width="49%"
                     data-height="100%"
         </div>
         <div style="width: 100%; height: calc(100% - 15px); text-align: center; display: inline-block;">
             <div data-netdata="system.io"
-                    data-host="http://netdata.firehol.org"
-                    data-title="I/O on netdata.firehol.org"
+                    data-host="http://registry.my-netdata.io"
+                    data-title="I/O on registry.my-netdata.io"
                     data-chart-library="dygraph"
                     data-width="49%"
                     data-height="100%"
         </div>
         <div style="width: 100%; height: calc(100% - 15px); text-align: center; display: inline-block;">
             <div data-netdata="system.ipv4"
-                    data-host="http://netdata.firehol.org"
-                    data-title="IPv4 traffic on netdata.firehol.org"
+                    data-host="http://registry.my-netdata.io"
+                    data-title="IPv4 traffic on registry.my-netdata.io"
                     data-chart-library="dygraph"
                     data-width="49%"
                     data-height="100%"
         </div>
         <div style="width: 100%; max-height: calc(100% - 15px); text-align: center; display: inline-block;">
             <div style="width: 49%; height:100%; align: center; display: inline-block;">
-                netdata.firehol.org
+                registry.my-netdata.io
                 <br/>
                 <div data-netdata="netdata.requests"
-                        data-host="http://netdata.firehol.org"
+                        data-host="http://registry.my-netdata.io"
                         data-title="Chart Refreshes/s"
                         data-chart-library="gauge"
                         data-width="20%"
                         data-points="300"
                         ></div>
                 <div data-netdata="netdata.clients"
-                        data-host="http://netdata.firehol.org"
+                        data-host="http://registry.my-netdata.io"
                         data-title="Sockets"
                         data-chart-library="gauge"
                         data-width="20%"
                         ></div>
                 <div data-netdata="netdata.net"
                         data-dimensions="in"
-                        data-host="http://netdata.firehol.org"
+                        data-host="http://registry.my-netdata.io"
                         data-title="Requests Traffic"
                         data-chart-library="easypiechart"
                         data-width="15%"
                         ></div>
                 <div data-netdata="netdata.net"
                         data-dimensions="out"
-                        data-host="http://netdata.firehol.org"
+                        data-host="http://registry.my-netdata.io"
                         data-title="Chart Data Traffic"
                         data-chart-library="easypiechart"
                         data-width="15%"