InPanel 1.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. inpanel/__init__.py +29 -0
  2. inpanel/acme.py +289 -0
  3. inpanel/aliyuncs.py +269 -0
  4. inpanel/app.py +514 -0
  5. inpanel/apt.py +223 -0
  6. inpanel/base.py +200 -0
  7. inpanel/config.py +139 -0
  8. inpanel/data/config.ini +29 -0
  9. inpanel/data/history +5 -0
  10. inpanel/data/runlogs.ini +12 -0
  11. inpanel/data/update_info.ini +4 -0
  12. inpanel/dnf.py +225 -0
  13. inpanel/lib/__init__.py +9 -0
  14. inpanel/lib/async_process.py +98 -0
  15. inpanel/lib/filelock.py +82 -0
  16. inpanel/lib/magic.py +233 -0
  17. inpanel/lib/pxssh.py +310 -0
  18. inpanel/lib/pyDes.py +867 -0
  19. inpanel/mod/__init__.py +0 -0
  20. inpanel/mod/apt.py +316 -0
  21. inpanel/mod/certificate.py +268 -0
  22. inpanel/mod/config.py +372 -0
  23. inpanel/mod/cron.py +315 -0
  24. inpanel/mod/disk.py +322 -0
  25. inpanel/mod/dnf.py +239 -0
  26. inpanel/mod/file.py +722 -0
  27. inpanel/mod/firewall.py +199 -0
  28. inpanel/mod/firewall_base.py +137 -0
  29. inpanel/mod/firewall_firewalld.py +170 -0
  30. inpanel/mod/firewall_iptables.py +176 -0
  31. inpanel/mod/firewall_macos.py +213 -0
  32. inpanel/mod/firewall_ufw.py +128 -0
  33. inpanel/mod/ftp.py +231 -0
  34. inpanel/mod/httpd.py +1205 -0
  35. inpanel/mod/lighttpd.py +26 -0
  36. inpanel/mod/login.py +98 -0
  37. inpanel/mod/mysql.py +577 -0
  38. inpanel/mod/named.py +26 -0
  39. inpanel/mod/nginx.py +2327 -0
  40. inpanel/mod/package.py +33 -0
  41. inpanel/mod/package_apt.py +62 -0
  42. inpanel/mod/package_base.py +77 -0
  43. inpanel/mod/package_dnf.py +62 -0
  44. inpanel/mod/package_map.py +366 -0
  45. inpanel/mod/package_yum.py +64 -0
  46. inpanel/mod/php.py +289 -0
  47. inpanel/mod/process.py +291 -0
  48. inpanel/mod/proftpd.py +26 -0
  49. inpanel/mod/pureftpd.py +26 -0
  50. inpanel/mod/query.py +108 -0
  51. inpanel/mod/server.py +1319 -0
  52. inpanel/mod/service.py +262 -0
  53. inpanel/mod/setting.py +228 -0
  54. inpanel/mod/shell.py +78 -0
  55. inpanel/mod/ssh.py +280 -0
  56. inpanel/mod/system.py +220 -0
  57. inpanel/mod/task.py +1337 -0
  58. inpanel/mod/ufw.py +14 -0
  59. inpanel/mod/user.py +306 -0
  60. inpanel/mod/vsftpd.py +67 -0
  61. inpanel/mod/yum.py +243 -0
  62. inpanel/plugins/__init__.py +10 -0
  63. inpanel/plugins/__pycache__/__init__.cpython-313.pyc +0 -0
  64. inpanel/plugins/acme/static/index.html +10 -0
  65. inpanel/plugins/acme/static/index.js +13 -0
  66. inpanel/plugins/shadowsocks-libev/__pycache__/info.cpython-313.pyc +0 -0
  67. inpanel/plugins/shadowsocks-libev/info.py +73 -0
  68. inpanel/plugins/shadowsocks-libev/static/index.html +70 -0
  69. inpanel/plugins/shadowsocks-libev/static/index.js +18 -0
  70. inpanel/public/css/global.css +138 -0
  71. inpanel/public/favicon.ico +0 -0
  72. inpanel/public/images/alipay.jpg +0 -0
  73. inpanel/public/images/loading.gif +0 -0
  74. inpanel/public/images/weixin.jpg +0 -0
  75. inpanel/public/index.html +94 -0
  76. inpanel/public/js/controllers/controllers.js +566 -0
  77. inpanel/public/js/controllers/database.js +590 -0
  78. inpanel/public/js/controllers/ecs.js +624 -0
  79. inpanel/public/js/controllers/file.js +940 -0
  80. inpanel/public/js/controllers/plugins.js +105 -0
  81. inpanel/public/js/controllers/service.js +1460 -0
  82. inpanel/public/js/controllers/site.js +1241 -0
  83. inpanel/public/js/controllers/utils.js +2319 -0
  84. inpanel/public/js/core.js +221 -0
  85. inpanel/public/js/directives.js +784 -0
  86. inpanel/public/js/filters.js +395 -0
  87. inpanel/public/js/services.js +257 -0
  88. inpanel/public/lib/angular/1.0.2/angular-resource.min.js +10 -0
  89. inpanel/public/lib/angular/1.0.2/angular.min.js +158 -0
  90. inpanel/public/lib/bootstrap/css/bootstrap-theme.css +587 -0
  91. inpanel/public/lib/bootstrap/css/bootstrap-theme.css.map +1 -0
  92. inpanel/public/lib/bootstrap/css/bootstrap-theme.min.css +6 -0
  93. inpanel/public/lib/bootstrap/css/bootstrap-theme.min.css.map +1 -0
  94. inpanel/public/lib/bootstrap/css/bootstrap.css +6757 -0
  95. inpanel/public/lib/bootstrap/css/bootstrap.css.map +1 -0
  96. inpanel/public/lib/bootstrap/css/bootstrap.min.css +6 -0
  97. inpanel/public/lib/bootstrap/css/bootstrap.min.css.map +1 -0
  98. inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  99. inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  100. inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  101. inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  102. inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  103. inpanel/public/lib/bootstrap/img/glyphicons-halflings-white.png +0 -0
  104. inpanel/public/lib/bootstrap/img/glyphicons-halflings.png +0 -0
  105. inpanel/public/lib/bootstrap/js/bootstrap.js +2377 -0
  106. inpanel/public/lib/bootstrap/js/bootstrap.min.js +7 -0
  107. inpanel/public/lib/bootstrap/js/npm.js +13 -0
  108. inpanel/public/lib/codemirror/codemirror-compressed.js +1 -0
  109. inpanel/public/lib/codemirror/codemirror.css +173 -0
  110. inpanel/public/lib/jquery/jquery-1.12.4.min.js +5 -0
  111. inpanel/public/lib/md5/md5.js +379 -0
  112. inpanel/public/lib/md5/md5.min.js +1 -0
  113. inpanel/public/partials/database/index.html +172 -0
  114. inpanel/public/partials/database/mysql/dbedit.html +462 -0
  115. inpanel/public/partials/database/mysql/dbnew.html +348 -0
  116. inpanel/public/partials/database/mysql/useredit.html +310 -0
  117. inpanel/public/partials/database/mysql/usernew.html +97 -0
  118. inpanel/public/partials/directives/message.html +20 -0
  119. inpanel/public/partials/directives/navbar.html +25 -0
  120. inpanel/public/partials/directives/selector.html +57 -0
  121. inpanel/public/partials/directives/srvbase.html +72 -0
  122. inpanel/public/partials/directives/srvext.html +34 -0
  123. inpanel/public/partials/directives/srvfile.html +23 -0
  124. inpanel/public/partials/directives/srvinstall.html +34 -0
  125. inpanel/public/partials/directives/srvlog.html +23 -0
  126. inpanel/public/partials/directives/srvminiop.html +28 -0
  127. inpanel/public/partials/directives/srvuninstall.html +38 -0
  128. inpanel/public/partials/directives/srvupdate.html +30 -0
  129. inpanel/public/partials/ecs/account.html +156 -0
  130. inpanel/public/partials/ecs/ecs.html +198 -0
  131. inpanel/public/partials/ecs/index.html +40 -0
  132. inpanel/public/partials/ecs/setings.html +459 -0
  133. inpanel/public/partials/file/file.html +501 -0
  134. inpanel/public/partials/file/trash.html +95 -0
  135. inpanel/public/partials/ftp.html +36 -0
  136. inpanel/public/partials/log.html +83 -0
  137. inpanel/public/partials/login.html +79 -0
  138. inpanel/public/partials/logout.html +22 -0
  139. inpanel/public/partials/main.html +534 -0
  140. inpanel/public/partials/plugins/index.html +55 -0
  141. inpanel/public/partials/plugins/plugins.html +13 -0
  142. inpanel/public/partials/secure.html +13 -0
  143. inpanel/public/partials/service/apache.html +147 -0
  144. inpanel/public/partials/service/cron.html +71 -0
  145. inpanel/public/partials/service/index.html +293 -0
  146. inpanel/public/partials/service/iptables.html +40 -0
  147. inpanel/public/partials/service/lighttpd.html +63 -0
  148. inpanel/public/partials/service/mariadb.html +113 -0
  149. inpanel/public/partials/service/memcache.html +36 -0
  150. inpanel/public/partials/service/minio.html +44 -0
  151. inpanel/public/partials/service/mongodb.html +44 -0
  152. inpanel/public/partials/service/mysql.html +113 -0
  153. inpanel/public/partials/service/named.html +61 -0
  154. inpanel/public/partials/service/nginx.html +296 -0
  155. inpanel/public/partials/service/ntp.html +40 -0
  156. inpanel/public/partials/service/php.html +250 -0
  157. inpanel/public/partials/service/proftpd.html +59 -0
  158. inpanel/public/partials/service/pureftpd.html +59 -0
  159. inpanel/public/partials/service/redis.html +40 -0
  160. inpanel/public/partials/service/samba.html +58 -0
  161. inpanel/public/partials/service/sendmail.html +40 -0
  162. inpanel/public/partials/service/ssh.html +186 -0
  163. inpanel/public/partials/service/tomcat.html +65 -0
  164. inpanel/public/partials/service/vsftpd.html +195 -0
  165. inpanel/public/partials/setting.html +299 -0
  166. inpanel/public/partials/site/apache/site.html +277 -0
  167. inpanel/public/partials/site/index.html +344 -0
  168. inpanel/public/partials/site/nginx/site.html +558 -0
  169. inpanel/public/partials/sorry.html +19 -0
  170. inpanel/public/partials/storage/autofm.html +103 -0
  171. inpanel/public/partials/storage/backup.html +42 -0
  172. inpanel/public/partials/storage/index.html +360 -0
  173. inpanel/public/partials/storage/migrate.html +93 -0
  174. inpanel/public/partials/storage/movedata.html +98 -0
  175. inpanel/public/partials/storage/remote.html +77 -0
  176. inpanel/public/partials/utils/cron.html +486 -0
  177. inpanel/public/partials/utils/firewall.html +266 -0
  178. inpanel/public/partials/utils/index.html +193 -0
  179. inpanel/public/partials/utils/network.html +118 -0
  180. inpanel/public/partials/utils/process.html +239 -0
  181. inpanel/public/partials/utils/repository.html +373 -0
  182. inpanel/public/partials/utils/shell.html +28 -0
  183. inpanel/public/partials/utils/ssl.html +319 -0
  184. inpanel/public/partials/utils/time.html +109 -0
  185. inpanel/public/partials/utils/user.html +359 -0
  186. inpanel/public/robots.txt +2 -0
  187. inpanel/remote.py +109 -0
  188. inpanel/templates/file/preview.html +34 -0
  189. inpanel/templates/index.html +93 -0
  190. inpanel/utils.py +282 -0
  191. inpanel/web.py +1811 -0
  192. inpanel/yum.py +756 -0
  193. inpanel-1.2.1.dist-info/METADATA +399 -0
  194. inpanel-1.2.1.dist-info/RECORD +198 -0
  195. inpanel-1.2.1.dist-info/WHEEL +5 -0
  196. inpanel-1.2.1.dist-info/entry_points.txt +2 -0
  197. inpanel-1.2.1.dist-info/licenses/LICENSE +30 -0
  198. inpanel-1.2.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,73 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (c) 2019-2026 Jackson Dou
4
+ # All rights reserved.
5
+ #
6
+ # InPanel is distributed under the terms of the (new) BSD License.
7
+ # The full license can be found in 'LICENSE'.
8
+
9
+ '''Shadowsocks-libev Plugins'''
10
+
11
+ plugins_info = {
12
+ 'name': 'Shadowsocks-libev',
13
+ 'router': 'shadowsocks-libev',
14
+ 'config': {
15
+ 'centos': '/etc/shadowsocks-libev/config.json',
16
+ 'debian': '/etc/default/shadowsocks-libev',
17
+ 'ubuntu': '/etc/default/shadowsocks-libev',
18
+ 'freebsd': '/usr/local/etc/shadowsocks-libev'
19
+ },
20
+ 'script': {
21
+ 'sysvinit': {
22
+ 'start': '/etc/init.d/shadowsocks-libev start',
23
+ 'stop': '/etc/init.d/shadowsocks-libev stop',
24
+ 'restart': '/etc/init.d/shadowsocks-libev restart',
25
+ 'status': '/etc/init.d/shadowsocks-libev status'
26
+ },
27
+ 'systemd': {
28
+ 'start': 'systemctl start shadowsocks-libev',
29
+ 'stop': 'systemctl stop shadowsocks-libev',
30
+ 'restart': 'systemctl restart shadowsocks-libev',
31
+ 'status': 'systemctl status shadowsocks-libev',
32
+ }
33
+ },
34
+ 'install': {
35
+ 'yum': {
36
+ 'repos': '',
37
+ 'import': {
38
+ 'from': 'https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-6/librehat-shadowsocks-epel-6.repo',
39
+ 'to': ''
40
+ },
41
+ 'shell': [
42
+ 'yum install epel-release -y',
43
+ 'yum install gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y',
44
+ 'yum update',
45
+ 'yum install shadowsocks-libev'
46
+ ],
47
+ },
48
+ 'dnf': {
49
+ 'repos': '',
50
+ 'shell': [
51
+ 'yum install epel-release -y',
52
+ 'yum install gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y',
53
+ 'yum update',
54
+ 'yum install shadowsocks-libev'
55
+ ],
56
+ },
57
+ 'apt': {
58
+ 'repos': '/etc/default/shadowsocks-libev',
59
+ 'shell': [
60
+ 'sh -c \'printf "deb http://deb.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/stretch-backports.list\'',
61
+ 'apt update',
62
+ 'apt -t stretch-backports install shadowsocks-libev'
63
+ ]
64
+ },
65
+ 'brew': {
66
+ 'repos': '',
67
+ 'shell': [
68
+ 'ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"',
69
+ 'brew install shadowsocks-libev'
70
+ ]
71
+ },
72
+ }
73
+ }
@@ -0,0 +1,70 @@
1
+ <div navbar ng-init="currentItem='plugins.shadowsocks'"></div>
2
+ <div ng-show="Auth.processing||!loaded">
3
+ <div loading></div>
4
+ </div>
5
+
6
+ <div id="main" ng-show="!Auth.processing&&loaded" style="display:none" ng-init="load()">
7
+ <div class="module-header">
8
+ <h3>Shadowsocks</h3>
9
+ </div>
10
+
11
+ <div ng-show="!installed" class="well">
12
+ <div ng-show="!installing">
13
+ <p class="ng-binding">系统检测到 Shadowsocks 当前尚未安装。</p>
14
+ <p>是否要开始安装?</p>
15
+ </div>
16
+ <div ng-show="installing" ng-bind-html-unsafe="installMsg" class="ng-binding" style="display: none;"></div>
17
+ <p ng-show="!installing">
18
+ <button class="btn btn-default" style="margin-top:10px" onclick="history.back()">取消返回</button>
19
+ <button class="btn btn-default" style="margin-top:10px" ng-click="startInstall()">开始安装</button>
20
+ </p>
21
+ </div>
22
+ </div>
23
+
24
+ <div class="tabbable" ng-show="installed">
25
+ <ul class="nav nav-tabs">
26
+ <li ng-class="'active' | iftrue:activeTabName=='base'"><a href="#base" ng-click="sec('base')" data-toggle="tab">基本信息</a></li>
27
+ <li ng-class="'active' | iftrue:activeTabName=='settings'"><a href="#settings" ng-click="load_settings()" data-toggle="tab">基本设置</a></li>
28
+ <li ng-class="'active' | iftrue:activeTabName=='ext'"><a href="#ext" ng-click="sec('ext')" data-toggle="tab">扩展</a></li>
29
+ <li ng-class="'active' | iftrue:activeTabName=='configfile'"><a href="#configfile" ng-click="sec('configfile')" data-toggle="tab">配置文件</a></li>
30
+ <li ng-class="'active' | iftrue:activeTabName=='logfile'"><a href="#logfile" ng-click="sec('logfile')" data-toggle="tab">日志</a></li>
31
+ <li ng-class="'active' | iftrue:activeTabName=='update'"><a href="#update" ng-click="sec('update')" data-toggle="tab">升级</a></li>
32
+ <li ng-class="'active' | iftrue:activeTabName=='uninstall'"><a href="#uninstall" ng-click="sec('uninstall')" data-toggle="tab">卸载</a></li>
33
+ </ul>
34
+ <div class="tab-content">
35
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='base'" id="base">
36
+ <div srvbase ng-init="name='shadowsocks-libev';pkg='shadowsocks-libev';service='shadowsocks-libev';"></div>
37
+ </div>
38
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='settings'" id="settings">
39
+ <table class="table table-condensed">
40
+ <thead>
41
+ <tr>
42
+ <th colspan="2">基本设置</th>
43
+ </tr>
44
+ </thead>
45
+ <tbody></tbody>
46
+ </table>
47
+ <button class="btn btn-primary" style="margin-left:10px" ng-click="savesettings()">保存设置</button>
48
+ </div>
49
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='ext'" id="ext">
50
+ <div srvext ng-init="name='shadowsocks-libev';pkg='shadowsocks-libev';"></div>
51
+ </div>
52
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='configfile'" id="configfile">
53
+ <div srvfile ng-init="items=[
54
+ {name: '主配置', path: '/etc/shadowsocks-libev/config.json', isfile: true},
55
+ {name: '解析配置', path: '/etc/resolv.conf', isfile: true},
56
+ {name: 'hosts', path: '/etc/hosts', isfile: true}]"></div>
57
+ </div>
58
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='logfile'" id="logfile">
59
+ <div srvlog ng-init="items=[{name:'日志文件', path:'/var/log/messages', isfile:true}];"></div>
60
+ </div>
61
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
62
+ <div srvupdate ng-init="name='shadowsocks-libev';pkg='shadowsocks-libev';"></div>
63
+ </div>
64
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
65
+ <div srvuninstall ng-init="name='shadowsocks-libev';pkg='shadowsocks-libev';"></div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+
70
+ </div>
@@ -0,0 +1,18 @@
1
+ var PluginsShadowsocksCtrl = [
2
+ '$scope', 'Module',
3
+ function ($scope, Module) {
4
+ var module = 'plugins.shadowsocks';
5
+ Module.init(module, 'Shadowsocks');
6
+ $scope.loaded = false;
7
+ $scope.installed = false;
8
+
9
+ $scope.load = function () {
10
+ $scope.loaded = true;
11
+ $scope.check();
12
+ };
13
+
14
+ $scope.check = function () {
15
+ $scope.installed = false;
16
+ }
17
+ }
18
+ ];
@@ -0,0 +1,138 @@
1
+ html {
2
+ position: relative;
3
+ min-height: 100%;
4
+ }
5
+
6
+ body {
7
+ font-size: 12px;
8
+ }
9
+
10
+ .navbar {
11
+ margin-top: 20px;
12
+ }
13
+
14
+ .footer-sticky {
15
+ height: 90px;
16
+ }
17
+
18
+ .footer {
19
+ position: absolute;
20
+ bottom: 0;
21
+ width: 100%;
22
+ }
23
+
24
+ .module-header {
25
+ margin-bottom: 20px;
26
+ }
27
+
28
+ .padding-bottom {
29
+ padding-bottom: 10px;
30
+ }
31
+
32
+ /* table */
33
+
34
+ .tabbable .tab-pane {
35
+ margin-top: 10px;
36
+ }
37
+
38
+ .file-list .breadcrumb {
39
+ background: none;
40
+ margin-bottom: 10px;
41
+ padding-left: 10px;
42
+ padding-right: 10px;
43
+ border: 1px solid #ccc;
44
+ }
45
+
46
+ .table-bordered thead tr th {
47
+ background-color: #f9f9f9;
48
+ color: #444;
49
+ text-transform: uppercase;
50
+ border-bottom-width: 1px;
51
+ }
52
+
53
+ /* bootstrap patch */
54
+ .table-borderless td,
55
+ .table-borderless th {
56
+ border: 0 !important
57
+ }
58
+
59
+ .table-layout {
60
+ margin: 0;
61
+ }
62
+
63
+ .table-layout td,
64
+ .table-layout th {
65
+ padding-left: 0;
66
+ }
67
+
68
+ .table-nopadding td,
69
+ .table-nopadding th {
70
+ padding: 0;
71
+ }
72
+
73
+ .table td.td-borderless,
74
+ .table th.td-borderless {
75
+ border: 0;
76
+ }
77
+
78
+ .table-wrap {
79
+ word-break: break-all;
80
+ word-wrap: break-all;
81
+ }
82
+
83
+ .form-horizontal-small .control-label {
84
+ width: 116px;
85
+ }
86
+
87
+ /* CodeMirror patch */
88
+ .CodeMirror {
89
+ font-family: "Courier New", "Lucida Console", "Lucida Sans Typewriter", "Consolas";
90
+ border: 1px solid #ddd;
91
+ font-size: 13px;
92
+ }
93
+
94
+ .activeline {
95
+ background: #e8f2ff !important;
96
+ }
97
+
98
+ .CodeMirror-scroll {
99
+ height: auto;
100
+ overflow-y: hidden;
101
+ overflow-x: auto;
102
+ }
103
+
104
+ span.CodeMirror-matchhighlight {
105
+ background: #e9e9e9;
106
+ }
107
+
108
+ .CodeMirror-focused span.CodeMirror-matchhighlight {
109
+ background: #e7e4ff !important;
110
+ }
111
+
112
+ .shell-form {
113
+ height: auto!important;
114
+ min-height: 200px;
115
+ padding: 4px;
116
+ background-color: #333;
117
+ color: #fff;
118
+ overflow-y: auto;
119
+ font-family: monospace;
120
+ font-size: 1em;
121
+ word-break: break-all;
122
+ }
123
+ .shell-form span {
124
+ display: block;
125
+ font-family: monospace;
126
+ white-space: pre-wrap !important;
127
+ color: #fff;
128
+ background-color: #333;
129
+ }
130
+
131
+ .shell-input {
132
+ width: 100%;
133
+ border: 0;
134
+ background-color: #333;
135
+ color: #fff;
136
+ font-family: monospace;
137
+ font-size: 1em;
138
+ }
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,94 @@
1
+ <!doctype html>
2
+ <html lang="zh-CN" ng-app="inpanel">
3
+
4
+ <head>
5
+ <meta charset="utf-8" />
6
+ <title ng-bind-template="{{ htmlTitle }} - InPanel">InPanel</title>
7
+ <meta name="renderer" content="webkit" />
8
+ <meta name="force-rendering" content="webkit" />
9
+ <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
10
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11
+ <meta name="author" content="CROGRAM" />
12
+ <meta name="copyright" content="CROGRAM 程江科技" />
13
+ <meta name="description" content="开源Linux服务器管理面板" />
14
+ <meta name="keywords" content="InPanel, VPSMate, Linux, VPS, VPS Management, 开源, VPS管理面板, 开源Linux服务器管理面板" />
15
+ <link rel="stylesheet" href="lib/bootstrap/css/bootstrap.min.css" />
16
+ <!-- <link rel="stylesheet" href="lib/bootstrap/css/bootstrap-theme.min.css" /> -->
17
+ <link rel="stylesheet" href="lib/codemirror/codemirror.css" />
18
+ <link rel="stylesheet" href="css/global.css"/>
19
+ </head>
20
+
21
+ <body>
22
+
23
+ <div message></div>
24
+
25
+ <div class="container" style="display:none" ng-show="navbar_loaded">
26
+ <div ng-view></div>
27
+ </div>
28
+
29
+ <div id="_authconfirm" class="modal fade" role="dialog">
30
+ <div class="modal-dialog" role="document">
31
+ <div class="modal-content">
32
+ <div class="modal-header">
33
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
34
+ <h3 class="modal-title">登录即将超时 !</h3>
35
+ </div>
36
+ <div class="modal-body">
37
+ <p>您的登录即将超时,是否保持登陆状态 ?</p>
38
+ </div>
39
+ <div class="modal-footer">
40
+ <a class="btn btn-default" data-dismiss="modal" aria-hidden="true" href="#/logout">退出登录</a>
41
+ <button class="btn btn-primary" onclick="$('#_authconfirm').modal('hide')" ng-click="_authrenew()">继续访问</button>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
46
+
47
+ <div class="footer-sticky" style="display:none" ng-show="navbar_loaded"></div>
48
+ <div class="footer" style="display:none" ng-show="navbar_loaded">
49
+ <div class="container">
50
+ <footer class="navbar navbar-default">
51
+ <div class="container-fluid">
52
+ <p class="navbar-text pull-left">
53
+ <span>Powered by <a href="http://inpanel.org" target="_blank">InPanel</a></span>
54
+ </p>
55
+ <p class="navbar-text pull-right">
56
+ <span>&copy;&nbsp;2017-2026</span>
57
+ <span><a href="http://crogram.org?utm_source=InPanel" target="_blank">CROGRAM</a></span>
58
+ </p>
59
+ </div>
60
+ </footer>
61
+ </div>
62
+ </div>
63
+
64
+ <div class="well" style="width:300px; margin:100px auto auto;" ng-show="!navbar_loaded"><img src="images/loading.gif" style="margin-right:5px"> 正在加载,请稍候...</div>
65
+
66
+ <script src="lib/angular/1.0.2/angular.min.js"></script>
67
+ <script src="lib/jquery/jquery-1.12.4.min.js"></script>
68
+ <script src="lib/bootstrap/js/bootstrap.min.js"></script>
69
+ <script src="lib/codemirror/codemirror-compressed.js"></script>
70
+ <script src="lib/md5/md5.min.js"></script>
71
+ <script>
72
+ var location_path = location.pathname.replace(/(\s+)?\/$/, '');
73
+ var template_path = '{{ template_path }}';
74
+ var releasetime = '{{ releasetime }}';
75
+ </script>
76
+ <!-- <script src="js.min/app.js"></script> -->
77
+ <!-- Uncomment it in dev mode -->
78
+
79
+ <script src="js/core.js"></script>
80
+ <script src="js/directives.js"></script>
81
+ <script src="js/filters.js"></script>
82
+ <script src="js/services.js"></script>
83
+ <script src="js/controllers/controllers.js"></script>
84
+ <script src="js/controllers/service.js"></script>
85
+ <script src="js/controllers/file.js"></script>
86
+ <script src="js/controllers/site.js"></script>
87
+ <script src="js/controllers/ecs.js"></script>
88
+ <script src="js/controllers/utils.js"></script>
89
+ <script src="js/controllers/database.js"></script>
90
+ <script src="js/controllers/plugins.js"></script>
91
+
92
+ </body>
93
+
94
+ </html>