services.html 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  7. <link href="/css/fonts.css" rel="stylesheet">
  8. <link rel="stylesheet" href="/css/bulma.min.css" />
  9. <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css" integrity="sha384-DyZ88mC6Up2uqS4h/KRgHuoeGwBcD4Ng9SiP4dIRy0EXTlnuz47vAwmeGwVChigm" crossorigin="anonymous">
  10. <script src="/js/jquery.min.js"></script>
  11. <link rel="stylesheet" type="text/css" href="/css/dt.min.css">
  12. <script type="text/javascript" charset="utf8" src="/js/dt.min.js"></script>
  13. <script src="/js/dt.js"></script>
  14. <script src="/js/common.js"></script>
  15. <link rel="stylesheet" type="text/css" href="/css/style.css">
  16. <script src="/js/clipboard.min.js"></script>
  17. <title>EdgeVPN - Services index</title>
  18. </head>
  19. <body>
  20. <nav class="navbar is-light is-spaced has-shadow" role="navigation" aria-label="main navigation">
  21. <div class="navbar-brand">
  22. <a class="navbar-item" href="/">
  23. <img src="/images/logo.png" > &nbsp;
  24. EdgeVPN
  25. </a>
  26. <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="menu">
  27. <span aria-hidden="true"></span>
  28. <span aria-hidden="true"></span>
  29. <span aria-hidden="true"></span>
  30. </a>
  31. </div>
  32. <div id="menu" class="navbar-menu">
  33. <div class="navbar-start">
  34. <a class="navbar-item" href="/machines.html">
  35. <i class="fas fa-server"></i>&nbsp;
  36. Machines
  37. </a>
  38. <a class="navbar-item" href="/users.html">
  39. <i class="fas fa-user-clock"></i>&nbsp;
  40. Users
  41. </a>
  42. <a class="navbar-item" href="/blockchain.html">
  43. <i class="fas fa-dice-d20"></i>&nbsp;
  44. Blockchain
  45. </a>
  46. <div class="dropdown">
  47. <div class="dropdown-trigger">
  48. <button class="button" aria-haspopup="true" aria-controls="services-menu">
  49. <span> <i class="fas fa-project-diagram"></i> Services
  50. </span>
  51. <span class="icon is-small">
  52. <i class="fas fa-angle-down" aria-hidden="true"></i>
  53. </span>
  54. </button>
  55. </div>
  56. <div class="dropdown-menu" id="services-menu" role="menu">
  57. <div class="dropdown-content">
  58. <a class="dropdown-item" href="/services.html">
  59. <i class="fas fa-project-diagram"></i>&nbsp;
  60. TCP tunnels
  61. </a>
  62. <a class="dropdown-item" href="/files.html">
  63. <i class="fas fa-file-upload"></i>&nbsp;
  64. Files
  65. </a>
  66. <a class="dropdown-item" href="/dns.html">
  67. <i class="fas fa-globe"></i>&nbsp;
  68. DNS
  69. </a>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="dropdown">
  74. <div class="dropdown-trigger">
  75. <button class="button" aria-haspopup="true" aria-controls="nodes-menu">
  76. <span><i class="fas fa-ethernet"></i> Nodes</span>
  77. <span class="icon is-small">
  78. <i class="fas fa-angle-down" aria-hidden="true"></i>
  79. </span>
  80. </button>
  81. </div>
  82. <div class="dropdown-menu" id="nodes-menu" role="menu">
  83. <div class="dropdown-content">
  84. <a class="dropdown-item" href="/peerstore.html">
  85. <i class="fas fa-database"></i>&nbsp;
  86. Peerstore
  87. </a>
  88. <a class="dropdown-item" href="/nodes.html">
  89. <i class="fas fa-ethernet"></i>&nbsp;
  90. On chain nodes
  91. </a>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. <div class="navbar-end">
  97. <div class="navbar-item">
  98. <div class="buttons">
  99. <a class="button is-link" href="https://github.com/mudler/edgevpn" target=_blank>
  100. <strong><i class="fab fa-github-alt"></i> GitHub</strong>
  101. </a>
  102. <a class="button is-light" href="https://github.com/mudler/edgevpn/issues/new" target=_blank>
  103. <i class="fas fa-bug"></i>&nbsp; Report issue
  104. </a>
  105. <a class="button is-light" href="https://mudler.github.io/edgevpn/docs" target=_blank>
  106. <i class="fas fa-book"></i>&nbsp; Documentation
  107. </a>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. </nav>
  113. <section class="hero">
  114. <div class="hero-body">
  115. <div class="container">
  116. <h1 class="title">
  117. <i class="fas fa-project-diagram"></i> Exposed services
  118. </h1>
  119. <h2 class="subtitle">
  120. Accessible via api at <a href="/api/services" target=_blank><code> /api/services </code></a><br>
  121. </h2>
  122. <div class="notification is-info is-light">
  123. <h1>Expose a service</h1>
  124. <div class="field has-addons">
  125. <div class="control has-icons-left">
  126. <input id="expose" type="text" class="input is-info is-small" size=40 value='edgevpn service-add --name "service_name" --remoteaddress "192.168.1.1:80"'>
  127. <span class="icon is-small is-left">
  128. <i class="fas fa-terminal"></i>
  129. </span>
  130. </div>
  131. <div class="control">
  132. <button class="btn button is-dark is-small" data-clipboard-target="#expose"> Copy to clipboard</button>
  133. </div>
  134. </div>
  135. <hr>
  136. <h1>Connect to a service</h1>
  137. <div class="field has-addons">
  138. <div class="control has-icons-left">
  139. <input id="connect" type="text" class="input is-info is-small" size=40 value='edgevpn service-connect --name "service_name" --srcaddress ":9090"'>
  140. <span class="icon is-small is-left">
  141. <i class="fas fa-terminal"></i>
  142. </span>
  143. </div>
  144. <div class="control">
  145. <button class="btn button is-dark is-small" data-clipboard-target="#connect"> Copy to clipboard</button>
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. </section>
  152. <section class="section">
  153. <div class="container">
  154. <table data-toggle="table"
  155. data-search="true"
  156. data-show-columns="true"
  157. id="table" >
  158. <thead>
  159. <tr>
  160. <th ><abbr title="ip">Name</abbr></th>
  161. <th ><abbr title="peer">PeerID</abbr></th>
  162. </tr>
  163. </thead>
  164. </table>
  165. </div>
  166. </section>
  167. <script type="text/javascript">
  168. $(document).ready(function() {
  169. var btn = new ClipboardJS('.btn');
  170. var table = $('#table').DataTable( {
  171. "processing": true,
  172. "ajax": {
  173. "url": "/api/services",
  174. "type": "GET",
  175. "dataSrc": '',
  176. },
  177. 'language':{
  178. "loadingRecords": "",
  179. "processing": ""
  180. },
  181. "columns": [
  182. { "data": "Name" },
  183. { "data": "PeerID" },
  184. ],
  185. } );
  186. setInterval( function () {
  187. table.ajax.reload();
  188. }, 5000 ); // 5 s
  189. } );
  190. </script>
  191. <footer class="footer">
  192. <div class="content has-text-centered">
  193. <p>
  194. <strong>EdgeVPN</strong> by <a href="https://github.com/mudler/edgevpn">Ettore Di Giacinto</a>. The source code is licensed
  195. <a href="https://github.com/mudler/edgevpn/blob/master/LICENSE">GPLv3</a>.
  196. Logo originally made by <a href="https://www.flaticon.com/authors/uniconlabs" title="Uniconlabs">Uniconlabs</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a>
  197. </p>
  198. </div>
  199. </footer>
  200. </body>
  201. </html>