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,147 @@
1
+ <div navbar ng-init="currentItem='service.apache'"></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="checkInstalled()">
7
+ <div class="module-header">
8
+ <h3>Apache - 广泛使用的老牌开源 HTTP 服务器软件</h3>
9
+ </div>
10
+
11
+ <div srvinstall ng-init="name='Apache';pkg='apache';expected_repolist=['base','CentALT'];"></div>
12
+
13
+ <div class="tabbable" ng-show="installed">
14
+ <ul class="nav nav-tabs">
15
+ <li ng-class="'active' | iftrue:activeTabName=='base'"><a href="#base" ng-click="sec('base')" data-toggle="tab">基本信息</a></li>
16
+ <li ng-class="'active' | iftrue:activeTabName=='setting'"><a href="#setting" ng-click="sec('setting')" data-toggle="tab">服务设置</a></li>
17
+ <li ng-class="'active' | iftrue:activeTabName=='ext'"><a href="#ext" ng-click="sec('ext')" data-toggle="tab">扩展</a></li>
18
+ <li ng-class="'active' | iftrue:activeTabName=='configfile'"><a href="#configfile" ng-click="sec('configfile')" data-toggle="tab">配置文件</a></li>
19
+ <li ng-class="'active' | iftrue:activeTabName=='logfile'"><a href="#logfile" ng-click="sec('logfile')" data-toggle="tab">日志</a></li>
20
+ <li ng-class="'active' | iftrue:activeTabName=='update'"><a href="#update" ng-click="sec('update')" data-toggle="tab">升级</a></li>
21
+ <li ng-class="'active' | iftrue:activeTabName=='uninstall'"><a href="#uninstall" ng-click="sec('uninstall')" data-toggle="tab">卸载</a></li>
22
+ </ul>
23
+ <div class="tab-content">
24
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='base'" id="base">
25
+ <div srvbase ng-init="name='Apache';pkg='apache';service='httpd';"></div>
26
+ </div>
27
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='setting'" id="setting">
28
+ <form class="form-horizontal form-horizontal-small" ng-submit="updateSetting()" onsubmit="return false">
29
+ <div class="form-group form-inline">
30
+ <label class="col-sm-2 control-label" for="setting_listen">监听端口</label>
31
+ <div class="col-sm-10">
32
+ <input class="form-control" ng-model="settings.listen" ng-disabled="processing" type="text" id="setting_listen" placeholder="监听的端口">
33
+ </div>
34
+ </div>
35
+ <div class="form-group form-inline">
36
+ <label class="col-sm-2 control-label" for="setting_server_admin">管理员邮箱</label>
37
+ <div class="col-sm-10">
38
+ <input class="form-control" ng-model="settings.serveradmin" ng-disabled="processing" type="text" id="setting_server_admin" placeholder="网络管理员的电子邮件地址">
39
+ </div>
40
+ </div>
41
+ <div class="form-group form-inline">
42
+ <label class="col-sm-2 control-label" for="setting_server_name">主机名称</label>
43
+ <div class="col-sm-10">
44
+ <input class="form-control" ng-model="settings.servername" ng-disabled="processing" type="text" id="setting_server_name" placeholder="服务器主机名称">
45
+ </div>
46
+ </div>
47
+ <div class="form-group form-inline">
48
+ <label class="col-sm-2 control-label" for="setting_document_root">主目录</label>
49
+ <div class="col-sm-10">
50
+ <div class="input-group">
51
+ <input class="form-control" ng-model="settings.documentroot" ng-disabled="processing" type="text" id="setting_document_root" placeholder="服务器主目录">
52
+ <span class="input-group-btn">
53
+ <button class="btn btn-default" ng-click="selectstaticfolder($index)">
54
+ <i class="glyphicon glyphicon-folder-open"></i>
55
+ </button>
56
+ </span>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ <div class="form-group form-inline">
61
+ <label class="col-sm-2 control-label" for="setting_directory_index">默认文档</label>
62
+ <div class="col-sm-10">
63
+ <input class="form-control" ng-model="settings.directoryindex" ng-disabled="processing" type="text" id="setting_directory_index" placeholder="默认文档">
64
+ </div>
65
+ </div>
66
+ <div class="form-group form-inline">
67
+ <label class="col-sm-2 control-label" for="setting_default_type">MIME类型</label>
68
+ <div class="col-sm-10">
69
+ <input class="form-control" ng-model="settings.defaulttype" ng-disabled="processing" type="text" id="setting_default_type" placeholder="默认文件类型">
70
+ <select class="form-control" ng-model="settings.defaulttype" ng-disabled="processing" type="text">
71
+ <option value="text/plain">纯文本(默认)</option>
72
+ <option value="text/html">HTML</option>
73
+ <option value="text/xml">XML</option>
74
+ <option value="application/octet-stream">流文件</option>
75
+ </select>
76
+ </div>
77
+ </div>
78
+ <div class="form-group form-inline">
79
+ <label class="col-sm-2 control-label" for="setting_default_charset">默认编码</label>
80
+ <div class="col-sm-10">
81
+ <input class="form-control" ng-model="settings.adddefaultcharset" ng-disabled="processing" type="text" id="setting_default_charset" placeholder="默认编码">
82
+ <select class="form-control" ng-model="settings.adddefaultcharset" ng-disabled="processing" type="text">
83
+ <option value="UTF-8">UTF-8(默认)</option>
84
+ <option value="GB2312">GB2312</option>
85
+ <option value="GBK">GBK</option>
86
+ <option value="GB18030">GB18030</option>
87
+ <option value="BIG5">BIG5</option>
88
+ <option value="EUC-JP">EUC-JP</option>
89
+ <option value="EUC-KR">EUC-KR</option>
90
+ <option value="ISO-8859-1">ISO-8859-1</option>
91
+ <option value="ISO-8859-2">ISO-8859-2</option>
92
+ <option value="Shift_JIS">Shift_JIS</option>
93
+ </select>
94
+ </div>
95
+ </div>
96
+ <div class="form-group form-inline">
97
+ <label class="col-sm-2 control-label">Gzip压缩</label>
98
+ <div class="col-sm-10">
99
+ <label class="checkbox-inline"><input ng-model="settings.gzip" type="checkbox" class="ng-valid ng-dirty"> 开启Gzip压缩</label>
100
+ </div>
101
+ </div>
102
+ <div class="form-group form-inline">
103
+ <label class="col-sm-2 control-label" for="setting_access_file_name">权限控制文件</label>
104
+ <div class="col-sm-10">
105
+ <input class="form-control" ng-model="settings.accessfilename" ng-disabled="processing" type="text" id="setting_access_file_name" placeholder="AccessFileName">
106
+ </div>
107
+ </div>
108
+ <div class="form-group form-inline">
109
+ <label class="col-sm-2 control-label" for="setting_timeout">连接超时</label>
110
+ <div class="col-sm-10">
111
+ <div class="input-group">
112
+ <input class="form-control" ng-model="settings.timeout" ng-disabled="processing" type="text" id="setting_timeout" placeholder="连接超时">
113
+ <span class="input-group-addon">秒</span>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ <div class="form-group form-inline">
118
+ <label class="col-sm-2 control-label"></label>
119
+ <div class="col-sm-10">
120
+ <button type="submit" class="btn btn-default" ng-disabled="processing">保存设置</button>
121
+ </div>
122
+ </div>
123
+ </form>
124
+ </div>
125
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='ext'" id="ext">
126
+ <div srvext ng-init="name='Apache';pkg='apache';"></div>
127
+ </div>
128
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='configfile'" id="configfile">
129
+ <div srvfile ng-init="items=[
130
+ {name:'主目录', path:'/etc/httpd', isdir:true},
131
+ {name:'主配置', path:'/etc/httpd/conf/httpd.conf', isfile:true},
132
+ {name: 'MIME类型', path:'/etc/httpd/conf/magic', isfile: true},
133
+ {name:'扩展配置', path:'/etc/httpd/conf.d', isdir: true}];"></div>
134
+ </div>
135
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='logfile'" id="logfile">
136
+ <div srvlog ng-init="items=[{name:'日志目录', path:'/var/log/httpd', isdir:true}];"></div>
137
+ </div>
138
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
139
+ <div srvupdate ng-init="name='Apache';pkg='apache';"></div>
140
+ </div>
141
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
142
+ <div srvuninstall ng-init="name='Apache';pkg='apache';"></div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+
147
+ </div>
@@ -0,0 +1,71 @@
1
+ <div navbar ng-init="currentItem='service.cron'"></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="checkInstalled()">
7
+ <div class="module-header">
8
+ <h3>Cron - 定时任务管理服务器</h3>
9
+ </div>
10
+
11
+ <div srvinstall ng-init="name='Cron';pkg='cron';expected_repolist=['base'];"></div>
12
+
13
+ <div class="tabbable" ng-show="installed">
14
+ <ul class="nav nav-tabs">
15
+ <li ng-class="'active' | iftrue:activeTabName=='base'"><a href="#base" ng-click="sec('base')" data-toggle="tab">基本信息</a></li>
16
+ <li ng-class="'active' | iftrue:activeTabName=='settings'"><a href="#settings" ng-click="tabSettings()" data-toggle="tab">服务设置</a></li>
17
+ <li ng-class="'active' | iftrue:activeTabName=='configfile'"><a href="#configfile" ng-click="sec('configfile')" data-toggle="tab">配置文件</a></li>
18
+ <li ng-class="'active' | iftrue:activeTabName=='update'"><a href="#update" ng-click="sec('update')" data-toggle="tab">升级</a></li>
19
+ <li ng-class="'active' | iftrue:activeTabName=='uninstall'"><a href="#uninstall" ng-click="sec('uninstall')" data-toggle="tab">卸载</a></li>
20
+ </ul>
21
+ <div class="tab-content">
22
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='base'" id="base">
23
+ <div srvbase ng-init="name='Cron';pkg='cron';service='crond';"></div>
24
+ </div>
25
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='settings'" id="settings">
26
+ <form class="form-horizontal form-horizontal-small" ng-submit="updateSetting()" onsubmit="return false">
27
+ <div class="form-group form-inline">
28
+ <label class="col-sm-2 control-label" for="setting_mailto">发送邮件给</label>
29
+ <div class="col-sm-10">
30
+ <input class="form-control" ng-model="settings.mailto" ng-disabled="processing" type="text" id="setting_mailto" placeholder="指定邮箱发送地址">
31
+ </div>
32
+ </div>
33
+ <div class="form-group form-inline">
34
+ <label class="col-sm-2 control-label" for="setting_home">主目录</label>
35
+ <div class="col-sm-10">
36
+ <input class="form-control" ng-model="settings.home" ng-disabled="true" type="text" id="setting_home" placeholder="主目录">
37
+ </div>
38
+ </div>
39
+ <div class="form-group form-inline">
40
+ <label class="col-sm-2 control-label" for="setting_path">路径</label>
41
+ <div class="col-sm-10">
42
+ <input class="form-control" ng-model="settings.path" ng-disabled="true" type="text" id="setting_path" placeholder="路径">
43
+ </div>
44
+ </div>
45
+ <div class="form-group form-inline">
46
+ <label class="col-sm-2 control-label" for="setting_shell">SHELL路径</label>
47
+ <div class="col-sm-10">
48
+ <input class="form-control" ng-model="settings.shell" ng-disabled="true" type="text" id="setting_shell" placeholder="SHELL路径">
49
+ </div>
50
+ </div>
51
+ <div class="form-group form-inline">
52
+ <label class="col-sm-2 control-label"></label>
53
+ <div class="col-sm-10">
54
+ <button type="submit" class="btn btn-default" ng-disabled="processing">保存设置</button>
55
+ </div>
56
+ </div>
57
+ </form>
58
+ </div>
59
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='configfile'" id="configfile">
60
+ <div srvfile ng-init="items=[{name:'主配置', path:'/etc/crontab', isfile:true}, {name:'其它配置', path:'/etc/cron.d', isdir:true}, {name:'', path:'/etc/cron.monthly', isdir:true}, {name:'', path:'/etc/cron.weekly', isdir:true}, {name:'', path:'/etc/cron.daily', isdir:true}, {name:'', path:'/etc/cron.hourly', isdir:true}, {name:'', path:'/etc/cron.deny', isfile:true}];"></div>
61
+ </div>
62
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
63
+ <div srvupdate ng-init="name='Cron';pkg='cron';"></div>
64
+ </div>
65
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
66
+ <div srvuninstall ng-init="name='Cron';pkg='cron';"></div>
67
+ </div>
68
+ </div>
69
+ </div>
70
+
71
+ </div>
@@ -0,0 +1,293 @@
1
+ <div navbar ng-init="currentItem='service'"></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">
7
+ <div class="module-header">
8
+ <h3>服务管理</h3>
9
+ </div>
10
+
11
+ <div class="tabbable" ng-init="loadInfo('service.**')">
12
+ <ul class="nav nav-tabs">
13
+ <li ng-class="'active' | iftrue:activeTabName=='http'"><a href="#http" ng-click="sec('http')" data-toggle="tab">HTTP</a></li>
14
+ <li ng-class="'active' | iftrue:activeTabName=='ftp'"><a href="#ftp" ng-click="sec('ftp')" data-toggle="tab">FTP</a></li>
15
+ <li ng-class="'active' | iftrue:activeTabName=='database'"><a href="#database" ng-click="sec('database')" data-toggle="tab">数据库</a></li>
16
+ <li ng-class="'active' | iftrue:activeTabName=='storage'"><a href="#storage" ng-click="sec('storage')" data-toggle="tab">文件存储</a></li>
17
+ <li ng-class="'active' | iftrue:activeTabName=='appengine'"><a href="#appengine" ng-click="sec('appengine')" data-toggle="tab">脚本引擎</a></li>
18
+ <li ng-class="'active' | iftrue:activeTabName=='mail'"><a href="#mail" ng-click="sec('mail')" data-toggle="tab">邮件</a></li>
19
+ <li ng-class="'active' | iftrue:activeTabName=='system'"><a href="#system" ng-click="sec('system')" data-toggle="tab">系统</a></li>
20
+ </ul>
21
+ <div class="tab-content">
22
+ <div class="tab-pane table-responsive" ng-class="'active' | iftrue:activeTabName=='http'" id="http">
23
+ <table class="table table-hover">
24
+ <thead>
25
+ <tr>
26
+ <th colspan="4">HTTP 服务器软件</th>
27
+ </tr>
28
+ </thead>
29
+ <tbody>
30
+ <tr>
31
+ <td>Apache</td>
32
+ <td ng-bind-html-unsafe="info['service.httpd']['status'] | service.status"></td>
33
+ <td class="muted">广泛使用的开源 HTTP 服务器软件</td>
34
+ <td>
35
+ <div srvminiop ng-init="name='Apache';service='httpd';urlname='apache'"></div>
36
+ </td>
37
+ </tr>
38
+ <tr>
39
+ <td style="width:100px">Nginx</td>
40
+ <td style="width:60px" ng-bind-html-unsafe="info['service.nginx']['status'] | service.status"></td>
41
+ <td class="muted">高性能的开源 HTTP 服务器软件</td>
42
+ <td style="width:150px">
43
+ <div srvminiop ng-init="name='Nginx';service='nginx';urlname='nginx'"></div>
44
+ </td>
45
+ </tr>
46
+ <tr>
47
+ <td style="width:100px">Tomcat(开发中)</td>
48
+ <td style="width:60px" ng-bind-html-unsafe="info['service.tomcat']['status'] | service.status"></td>
49
+ <td class="muted">小型的轻量级 JSP 引擎应用</td>
50
+ <td style="width:150px">
51
+ <div srvminiop ng-init="name='Tomcat';service='tomcat';urlname='tomcat'"></div>
52
+ </td>
53
+ </tr>
54
+ <tr>
55
+ <td style="width:100px">Lighttpd(开发中)</td>
56
+ <td style="width:60px" ng-bind-html-unsafe="info['service.lighttpd']['status'] | service.status"></td>
57
+ <td class="muted">快速灵活高性能的开源 HTTP 服务器软件</td>
58
+ <td style="width:150px">
59
+ <div srvminiop ng-init="name='Lighttpd';service='lighttpd';urlname='lighttpd'"></div>
60
+ </td>
61
+ </tr>
62
+ <tr>
63
+ <td style="width:100px">Tengine(开发中)</td>
64
+ <td style="width:60px" ng-bind-html-unsafe="info['service.tengine']['status'] | service.status"></td>
65
+ <td class="muted">基于 Nginx 的高效稳定安全的 HTTP 服务器软件</td>
66
+ <td style="width:150px">
67
+ <div srvminiop ng-init="name='Tengine';service='tengine';urlname='tengine'"></div>
68
+ </td>
69
+ </tr>
70
+ <tr>
71
+ <td style="width:100px">Caddy(开发中)</td>
72
+ <td style="width:60px" ng-bind-html-unsafe="info['service.caddy']['status'] | service.status"></td>
73
+ <td class="muted">自动 SSL 的 HTTP 服务器软件</td>
74
+ <td style="width:150px">
75
+ <div srvminiop ng-init="name='Caddy';service='caddy';urlname='caddy'"></div>
76
+ </td>
77
+ </tr>
78
+ </tbody>
79
+ </table>
80
+ </div>
81
+ <div class="tab-pane table-responsive" ng-class="'active' | iftrue:activeTabName=='ftp'" id="ftp">
82
+ <table class="table table-hover">
83
+ <thead>
84
+ <tr>
85
+ <th colspan="4">FTP 服务器软件</th>
86
+ </tr>
87
+ </thead>
88
+ <tbody>
89
+ <tr>
90
+ <td style="width:100px">vsftpd</td>
91
+ <td style="width:60px" ng-bind-html-unsafe="info['service.vsftpd']['status'] | service.status"></td>
92
+ <td class="muted">安全快速的 FTP 服务器</td>
93
+ <td style="width:150px">
94
+ <div srvminiop ng-init="name='vsftpd';service='vsftpd';urlname='vsftpd'"></div>
95
+ </td>
96
+ </tr>
97
+ <tr>
98
+ <td style="width:100px">ProFTPD</td>
99
+ <td style="width:60px" ng-bind-html-unsafe="info['service.proftpd']['status'] | service.status"></td>
100
+ <td class="muted">安全简单的 FTP 服务器</td>
101
+ <td style="width:150px">
102
+ <div srvminiop ng-init="name='proftpd';service='proftpd';urlname='proftpd'"></div>
103
+ </td>
104
+ </tr>
105
+ <tr>
106
+ <td style="width:100px">Pure-FTPd</td>
107
+ <td style="width:60px" ng-bind-html-unsafe="info['service.pure-ftpd']['status'] | service.status"></td>
108
+ <td class="muted">快速稳定全功能的 FTP 服务器</td>
109
+ <td style="width:150px">
110
+ <div srvminiop ng-init="name='Pure-FTPd';service='pure-ftpd';urlname='pureftpd'"></div>
111
+ </td>
112
+ </tr>
113
+ </tbody>
114
+ </table>
115
+ </div>
116
+ <div class="tab-pane table-responsive" ng-class="'active' | iftrue:activeTabName=='database'" id="database">
117
+ <table class="table table-hover">
118
+ <thead>
119
+ <tr>
120
+ <th colspan="4">数据库服务</th>
121
+ </tr>
122
+ </thead>
123
+ <tbody>
124
+ <tr>
125
+ <td style="width:100px">MariaDB</td>
126
+ <td style="width:60px" ng-bind-html-unsafe="info['service.mariadb']['status'] | service.status"></td>
127
+ <td class="muted">MySQL的一个分支,主要由开源社区在维护</td>
128
+ <td style="width:150px">
129
+ <div srvminiop ng-init="name='MariaDB';service='mariadb';urlname='mariadb'"></div>
130
+ </td>
131
+ </tr>
132
+ <tr>
133
+ <td>MySQL</td>
134
+ <td ng-bind-html-unsafe="info['service.mysqld']['status'] | service.status"></td>
135
+ <td class="muted">最流行的开源关系型数据库服务器</td>
136
+ <td>
137
+ <div srvminiop ng-init="name='MySQL';service='mysqld';urlname='mysql'"></div>
138
+ </td>
139
+ </tr>
140
+ <tr>
141
+ <td>Redis</td>
142
+ <td ng-bind-html-unsafe="info['service.redis']['status'] | service.status"></td>
143
+ <td class="muted">高性能内存KV数据库</td>
144
+ <td>
145
+ <div srvminiop ng-init="name='Redis';service='redis';urlname='redis'"></div>
146
+ </td>
147
+ </tr>
148
+ <tr>
149
+ <td>Memcache</td>
150
+ <td ng-bind-html-unsafe="info['service.memcached']['status'] | service.status"></td>
151
+ <td class="muted">高性能的分布式内存对象缓存系统</td>
152
+ <td>
153
+ <div srvminiop ng-init="name='Memcache';service='memcached';urlname='memcache'"></div>
154
+ </td>
155
+ </tr>
156
+ <tr>
157
+ <td>MongoDB</td>
158
+ <td ng-bind-html-unsafe="info['service.mongod']['status'] | service.status"></td>
159
+ <td class="muted">分布式高性能的NOSQL数据库服务器</td>
160
+ <td>
161
+ <div srvminiop ng-init="name='MongoDB';service='mongod';urlname='mongodb'"></div>
162
+ </td>
163
+ </tr>
164
+ <tr>
165
+ <td>PostgreSQL[未完成]</td>
166
+ <td ng-bind-html-unsafe="info['service.postgresql']['status'] | service.status"></td>
167
+ <td class="muted">功能强大的开源数据库</td>
168
+ <td>
169
+ <div srvminiop ng-init="name='PostgreSQL';service='postgresql';urlname='postgresql'"></div>
170
+ </td>
171
+ </tr>
172
+ </tbody>
173
+ </table>
174
+ </div>
175
+ <div class="tab-pane table-responsive" ng-class="'active' | iftrue:activeTabName=='storage'" id="storage">
176
+ <table class="table table-hover">
177
+ <thead>
178
+ <tr>
179
+ <th colspan="4">文件存储服务</th>
180
+ </tr>
181
+ </thead>
182
+ <tbody>
183
+ <tr>
184
+ <td style="width:100px">MinIO</td>
185
+ <td style="width:60px" ng-bind-html-unsafe="info['service.minio']['status'] | service.status"></td>
186
+ <td class="muted">MinIO是一个开源的轻量级对象存储服务</td>
187
+ <td style="width:150px">
188
+ <div srvminiop ng-init="name='MinIO';service='minio';urlname='minio'"></div>
189
+ </td>
190
+ </tr>
191
+ </tbody>
192
+ </table>
193
+ </div>
194
+ <div class="tab-pane table-responsive" ng-class="'active' | iftrue:activeTabName=='appengine'" id="appengine">
195
+ <table class="table table-hover">
196
+ <thead>
197
+ <tr>
198
+ <th colspan="4">应用/脚本引擎</th>
199
+ </tr>
200
+ </thead>
201
+ <tbody>
202
+ <tr>
203
+ <td style="width:100px">PHP</td>
204
+ <td style="width:60px" ng-bind-html-unsafe="info['service.php-fpm']['status'] | service.status"></td>
205
+ <td class="muted">PHP 脚本解析器</td>
206
+ <td style="width:150px">
207
+ <div srvminiop ng-init="name='PHP';service='php-fpm';urlname='php'"></div>
208
+ </td>
209
+ </tr>
210
+ </tbody>
211
+ </table>
212
+ </div>
213
+ <div class="tab-pane table-responsive" ng-class="'active' | iftrue:activeTabName=='mail'" id="mail">
214
+ <table class="table table-hover">
215
+ <thead>
216
+ <tr>
217
+ <th colspan="4">邮件服务</th>
218
+ </tr>
219
+ </thead>
220
+ <tbody>
221
+ <tr>
222
+ <td style="width:100px">Sendmail</td>
223
+ <td style="width:60px" ng-bind-html-unsafe="info['service.sendmail']['status'] | service.status"></td>
224
+ <td class="muted">邮件传输服务</td>
225
+ <td style="width:150px">
226
+ <div srvminiop ng-init="name='Sendmail';service='sendmail';urlname='sendmail'"></div>
227
+ </td>
228
+ </tr>
229
+ </tbody>
230
+ </table>
231
+ </div>
232
+ <div class="tab-pane table-responsive" ng-class="'active' | iftrue:activeTabName=='system'" id="system">
233
+ <table class="table table-hover">
234
+ <thead>
235
+ <tr>
236
+ <th colspan="4">系统服务</th>
237
+ </tr>
238
+ </thead>
239
+ <tbody>
240
+ <tr>
241
+ <td style="width:100px">SSH</td>
242
+ <td style="width:60px" ng-bind-html-unsafe="info['service.sshd']['status'] | service.status"></td>
243
+ <td class="muted">远程连接服务器</td>
244
+ <td style="width:150px">
245
+ <div srvminiop ng-init="name='SSH';service='sshd';urlname='ssh'"></div>
246
+ </td>
247
+ </tr>
248
+ <tr>
249
+ <td>iptables</td>
250
+ <td ng-bind-html-unsafe="info['service.iptables']['status'] | service.status"></td>
251
+ <td class="muted">Linux 防火墙</td>
252
+ <td>
253
+ <div srvminiop ng-init="name='iptables';service='iptables';urlname='iptables'"></div>
254
+ </td>
255
+ </tr>
256
+ <tr>
257
+ <td>Cron</td>
258
+ <td ng-bind-html-unsafe="info['service.crond']['status'] | service.status"></td>
259
+ <td class="muted">定时任务管理服务器</td>
260
+ <td>
261
+ <div srvminiop ng-init="name='Cron';service='crond';urlname='cron'"></div>
262
+ </td>
263
+ </tr>
264
+ <tr>
265
+ <td style="width:100px">Named</td>
266
+ <td style="width:60px" ng-bind-html-unsafe="info['service.named']['status'] | service.status"></td>
267
+ <td class="muted">DNS 域名解析服务器</td>
268
+ <td style="width:100px">
269
+ <div srvminiop ng-init="name='named';service='named';urlname='named'"></div>
270
+ </td>
271
+ </tr>
272
+ <tr>
273
+ <td style="width:100px">Samba</td>
274
+ <td style="width:60px" ng-bind-html-unsafe="info['service.smb']['status'] | service.status"></td>
275
+ <td class="muted">文件资源共享服务器</td>
276
+ <td style="width:100px">
277
+ <div srvminiop ng-init="name='samba';service='smb';urlname='samba'"></div>
278
+ </td>
279
+ </tr>
280
+ <tr style="display:none" ng-show="info['server.virt'] != 'Virtuozzo/OpenVZ'">
281
+ <td>NTP</td>
282
+ <td ng-bind-html-unsafe="info['service.ntpd']['status'] | service.status"></td>
283
+ <td class="muted">时间同步服务</td>
284
+ <td>
285
+ <div srvminiop ng-init="name='NTP';service='ntpd';urlname='ntp'"></div>
286
+ </td>
287
+ </tr>
288
+ </tbody>
289
+ </table>
290
+ </div>
291
+ </div>
292
+ </div>
293
+ </div>
@@ -0,0 +1,40 @@
1
+ <div navbar ng-init="currentItem='service.iptables'"></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="checkInstalled()">
7
+ <div class="module-header">
8
+ <h3>iptables - Linux 防火墙</h3>
9
+ </div>
10
+
11
+ <div srvinstall ng-init="name='iptables';pkg='iptables';expected_repolist=['base'];"></div>
12
+
13
+ <div class="tabbable" ng-show="installed">
14
+ <ul class="nav nav-tabs">
15
+ <li ng-class="'active' | iftrue:activeTabName=='base'"><a href="#base" ng-click="sec('base')" data-toggle="tab">基本信息</a></li>
16
+ <li ng-class="'active' | iftrue:activeTabName=='configfile'"><a href="#configfile" ng-click="sec('configfile')" data-toggle="tab">配置文件</a></li>
17
+ <li ng-class="'active' | iftrue:activeTabName=='ext'"><a href="#ext" ng-click="sec('ext')" data-toggle="tab">扩展</a></li>
18
+ <li ng-class="'active' | iftrue:activeTabName=='update'"><a href="#update" ng-click="sec('update')" data-toggle="tab">升级</a></li>
19
+ <li ng-class="'active' | iftrue:activeTabName=='uninstall'"><a href="#uninstall" ng-click="sec('uninstall')" data-toggle="tab">卸载</a></li>
20
+ </ul>
21
+ <div class="tab-content">
22
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='base'" id="base">
23
+ <div srvbase ng-init="name='iptables';pkg='iptables';service='iptables';"></div>
24
+ </div>
25
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='configfile'" id="configfile">
26
+ <div srvfile ng-init="items=[{name:'主配置', path:'/etc/sysconfig/iptables', isfile:true}];"></div>
27
+ </div>
28
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='ext'" id="ext">
29
+ <div srvext ng-init="name='iptables';pkg='iptables';"></div>
30
+ </div>
31
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
32
+ <div srvupdate ng-init="name='iptables';pkg='iptables';"></div>
33
+ </div>
34
+ <div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
35
+ <div srvuninstall ng-init="name='iptables';pkg='iptables';"></div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+
40
+ </div>