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.
- inpanel/__init__.py +29 -0
- inpanel/acme.py +289 -0
- inpanel/aliyuncs.py +269 -0
- inpanel/app.py +514 -0
- inpanel/apt.py +223 -0
- inpanel/base.py +200 -0
- inpanel/config.py +139 -0
- inpanel/data/config.ini +29 -0
- inpanel/data/history +5 -0
- inpanel/data/runlogs.ini +12 -0
- inpanel/data/update_info.ini +4 -0
- inpanel/dnf.py +225 -0
- inpanel/lib/__init__.py +9 -0
- inpanel/lib/async_process.py +98 -0
- inpanel/lib/filelock.py +82 -0
- inpanel/lib/magic.py +233 -0
- inpanel/lib/pxssh.py +310 -0
- inpanel/lib/pyDes.py +867 -0
- inpanel/mod/__init__.py +0 -0
- inpanel/mod/apt.py +316 -0
- inpanel/mod/certificate.py +268 -0
- inpanel/mod/config.py +372 -0
- inpanel/mod/cron.py +315 -0
- inpanel/mod/disk.py +322 -0
- inpanel/mod/dnf.py +239 -0
- inpanel/mod/file.py +722 -0
- inpanel/mod/firewall.py +199 -0
- inpanel/mod/firewall_base.py +137 -0
- inpanel/mod/firewall_firewalld.py +170 -0
- inpanel/mod/firewall_iptables.py +176 -0
- inpanel/mod/firewall_macos.py +213 -0
- inpanel/mod/firewall_ufw.py +128 -0
- inpanel/mod/ftp.py +231 -0
- inpanel/mod/httpd.py +1205 -0
- inpanel/mod/lighttpd.py +26 -0
- inpanel/mod/login.py +98 -0
- inpanel/mod/mysql.py +577 -0
- inpanel/mod/named.py +26 -0
- inpanel/mod/nginx.py +2327 -0
- inpanel/mod/package.py +33 -0
- inpanel/mod/package_apt.py +62 -0
- inpanel/mod/package_base.py +77 -0
- inpanel/mod/package_dnf.py +62 -0
- inpanel/mod/package_map.py +366 -0
- inpanel/mod/package_yum.py +64 -0
- inpanel/mod/php.py +289 -0
- inpanel/mod/process.py +291 -0
- inpanel/mod/proftpd.py +26 -0
- inpanel/mod/pureftpd.py +26 -0
- inpanel/mod/query.py +108 -0
- inpanel/mod/server.py +1319 -0
- inpanel/mod/service.py +262 -0
- inpanel/mod/setting.py +228 -0
- inpanel/mod/shell.py +78 -0
- inpanel/mod/ssh.py +280 -0
- inpanel/mod/system.py +220 -0
- inpanel/mod/task.py +1337 -0
- inpanel/mod/ufw.py +14 -0
- inpanel/mod/user.py +306 -0
- inpanel/mod/vsftpd.py +67 -0
- inpanel/mod/yum.py +243 -0
- inpanel/plugins/__init__.py +10 -0
- inpanel/plugins/__pycache__/__init__.cpython-313.pyc +0 -0
- inpanel/plugins/acme/static/index.html +10 -0
- inpanel/plugins/acme/static/index.js +13 -0
- inpanel/plugins/shadowsocks-libev/__pycache__/info.cpython-313.pyc +0 -0
- inpanel/plugins/shadowsocks-libev/info.py +73 -0
- inpanel/plugins/shadowsocks-libev/static/index.html +70 -0
- inpanel/plugins/shadowsocks-libev/static/index.js +18 -0
- inpanel/public/css/global.css +138 -0
- inpanel/public/favicon.ico +0 -0
- inpanel/public/images/alipay.jpg +0 -0
- inpanel/public/images/loading.gif +0 -0
- inpanel/public/images/weixin.jpg +0 -0
- inpanel/public/index.html +94 -0
- inpanel/public/js/controllers/controllers.js +566 -0
- inpanel/public/js/controllers/database.js +590 -0
- inpanel/public/js/controllers/ecs.js +624 -0
- inpanel/public/js/controllers/file.js +940 -0
- inpanel/public/js/controllers/plugins.js +105 -0
- inpanel/public/js/controllers/service.js +1460 -0
- inpanel/public/js/controllers/site.js +1241 -0
- inpanel/public/js/controllers/utils.js +2319 -0
- inpanel/public/js/core.js +221 -0
- inpanel/public/js/directives.js +784 -0
- inpanel/public/js/filters.js +395 -0
- inpanel/public/js/services.js +257 -0
- inpanel/public/lib/angular/1.0.2/angular-resource.min.js +10 -0
- inpanel/public/lib/angular/1.0.2/angular.min.js +158 -0
- inpanel/public/lib/bootstrap/css/bootstrap-theme.css +587 -0
- inpanel/public/lib/bootstrap/css/bootstrap-theme.css.map +1 -0
- inpanel/public/lib/bootstrap/css/bootstrap-theme.min.css +6 -0
- inpanel/public/lib/bootstrap/css/bootstrap-theme.min.css.map +1 -0
- inpanel/public/lib/bootstrap/css/bootstrap.css +6757 -0
- inpanel/public/lib/bootstrap/css/bootstrap.css.map +1 -0
- inpanel/public/lib/bootstrap/css/bootstrap.min.css +6 -0
- inpanel/public/lib/bootstrap/css/bootstrap.min.css.map +1 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
- inpanel/public/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
- inpanel/public/lib/bootstrap/img/glyphicons-halflings-white.png +0 -0
- inpanel/public/lib/bootstrap/img/glyphicons-halflings.png +0 -0
- inpanel/public/lib/bootstrap/js/bootstrap.js +2377 -0
- inpanel/public/lib/bootstrap/js/bootstrap.min.js +7 -0
- inpanel/public/lib/bootstrap/js/npm.js +13 -0
- inpanel/public/lib/codemirror/codemirror-compressed.js +1 -0
- inpanel/public/lib/codemirror/codemirror.css +173 -0
- inpanel/public/lib/jquery/jquery-1.12.4.min.js +5 -0
- inpanel/public/lib/md5/md5.js +379 -0
- inpanel/public/lib/md5/md5.min.js +1 -0
- inpanel/public/partials/database/index.html +172 -0
- inpanel/public/partials/database/mysql/dbedit.html +462 -0
- inpanel/public/partials/database/mysql/dbnew.html +348 -0
- inpanel/public/partials/database/mysql/useredit.html +310 -0
- inpanel/public/partials/database/mysql/usernew.html +97 -0
- inpanel/public/partials/directives/message.html +20 -0
- inpanel/public/partials/directives/navbar.html +25 -0
- inpanel/public/partials/directives/selector.html +57 -0
- inpanel/public/partials/directives/srvbase.html +72 -0
- inpanel/public/partials/directives/srvext.html +34 -0
- inpanel/public/partials/directives/srvfile.html +23 -0
- inpanel/public/partials/directives/srvinstall.html +34 -0
- inpanel/public/partials/directives/srvlog.html +23 -0
- inpanel/public/partials/directives/srvminiop.html +28 -0
- inpanel/public/partials/directives/srvuninstall.html +38 -0
- inpanel/public/partials/directives/srvupdate.html +30 -0
- inpanel/public/partials/ecs/account.html +156 -0
- inpanel/public/partials/ecs/ecs.html +198 -0
- inpanel/public/partials/ecs/index.html +40 -0
- inpanel/public/partials/ecs/setings.html +459 -0
- inpanel/public/partials/file/file.html +501 -0
- inpanel/public/partials/file/trash.html +95 -0
- inpanel/public/partials/ftp.html +36 -0
- inpanel/public/partials/log.html +83 -0
- inpanel/public/partials/login.html +79 -0
- inpanel/public/partials/logout.html +22 -0
- inpanel/public/partials/main.html +534 -0
- inpanel/public/partials/plugins/index.html +55 -0
- inpanel/public/partials/plugins/plugins.html +13 -0
- inpanel/public/partials/secure.html +13 -0
- inpanel/public/partials/service/apache.html +147 -0
- inpanel/public/partials/service/cron.html +71 -0
- inpanel/public/partials/service/index.html +293 -0
- inpanel/public/partials/service/iptables.html +40 -0
- inpanel/public/partials/service/lighttpd.html +63 -0
- inpanel/public/partials/service/mariadb.html +113 -0
- inpanel/public/partials/service/memcache.html +36 -0
- inpanel/public/partials/service/minio.html +44 -0
- inpanel/public/partials/service/mongodb.html +44 -0
- inpanel/public/partials/service/mysql.html +113 -0
- inpanel/public/partials/service/named.html +61 -0
- inpanel/public/partials/service/nginx.html +296 -0
- inpanel/public/partials/service/ntp.html +40 -0
- inpanel/public/partials/service/php.html +250 -0
- inpanel/public/partials/service/proftpd.html +59 -0
- inpanel/public/partials/service/pureftpd.html +59 -0
- inpanel/public/partials/service/redis.html +40 -0
- inpanel/public/partials/service/samba.html +58 -0
- inpanel/public/partials/service/sendmail.html +40 -0
- inpanel/public/partials/service/ssh.html +186 -0
- inpanel/public/partials/service/tomcat.html +65 -0
- inpanel/public/partials/service/vsftpd.html +195 -0
- inpanel/public/partials/setting.html +299 -0
- inpanel/public/partials/site/apache/site.html +277 -0
- inpanel/public/partials/site/index.html +344 -0
- inpanel/public/partials/site/nginx/site.html +558 -0
- inpanel/public/partials/sorry.html +19 -0
- inpanel/public/partials/storage/autofm.html +103 -0
- inpanel/public/partials/storage/backup.html +42 -0
- inpanel/public/partials/storage/index.html +360 -0
- inpanel/public/partials/storage/migrate.html +93 -0
- inpanel/public/partials/storage/movedata.html +98 -0
- inpanel/public/partials/storage/remote.html +77 -0
- inpanel/public/partials/utils/cron.html +486 -0
- inpanel/public/partials/utils/firewall.html +266 -0
- inpanel/public/partials/utils/index.html +193 -0
- inpanel/public/partials/utils/network.html +118 -0
- inpanel/public/partials/utils/process.html +239 -0
- inpanel/public/partials/utils/repository.html +373 -0
- inpanel/public/partials/utils/shell.html +28 -0
- inpanel/public/partials/utils/ssl.html +319 -0
- inpanel/public/partials/utils/time.html +109 -0
- inpanel/public/partials/utils/user.html +359 -0
- inpanel/public/robots.txt +2 -0
- inpanel/remote.py +109 -0
- inpanel/templates/file/preview.html +34 -0
- inpanel/templates/index.html +93 -0
- inpanel/utils.py +282 -0
- inpanel/web.py +1811 -0
- inpanel/yum.py +756 -0
- inpanel-1.2.1.dist-info/METADATA +399 -0
- inpanel-1.2.1.dist-info/RECORD +198 -0
- inpanel-1.2.1.dist-info/WHEEL +5 -0
- inpanel-1.2.1.dist-info/entry_points.txt +2 -0
- inpanel-1.2.1.dist-info/licenses/LICENSE +30 -0
- inpanel-1.2.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<div navbar ng-init="currentItem='service.proftpd'"></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>ProFTPD - FTP 服务器软件</h3>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div srvinstall ng-init="name='ProFTPD';pkg='proftpd';expected_repolist=['base','epel'];"></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="load_settings()" 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=='ext'"><a href="#ext" ng-click="sec('ext')" data-toggle="tab">扩展</a></li>
|
|
19
|
+
<li ng-class="'active' | iftrue:activeTabName=='update'"><a href="#update" ng-click="sec('update')" data-toggle="tab">升级</a></li>
|
|
20
|
+
<li ng-class="'active' | iftrue:activeTabName=='uninstall'"><a href="#uninstall" ng-click="sec('uninstall')" data-toggle="tab">卸载</a></li>
|
|
21
|
+
</ul>
|
|
22
|
+
<div class="tab-content">
|
|
23
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='base'" id="base">
|
|
24
|
+
<div srvbase ng-init="name='ProFTPD';pkg='proftpd';service='proftpd';"></div>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='settings'" id="settings">
|
|
27
|
+
<form class="form-horizontal form-horizontal-small" ng-submit="savesettings()" onsubmit="return false">
|
|
28
|
+
<table class="table table-condensed">
|
|
29
|
+
<thead>
|
|
30
|
+
<tr>
|
|
31
|
+
<th colspan="2">基本设置</th>
|
|
32
|
+
</tr>
|
|
33
|
+
</thead>
|
|
34
|
+
<tbody>
|
|
35
|
+
<tr>
|
|
36
|
+
<td>暂未实现设置功能,等待新版本升级</td>
|
|
37
|
+
</tr>
|
|
38
|
+
</tbody>
|
|
39
|
+
</table>
|
|
40
|
+
<button class="btn btn-primary" style="margin-left:10px" ng-click="savesettings()" disabled>保存设置</button>
|
|
41
|
+
</form>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='configfile'" id="configfile">
|
|
44
|
+
<div srvfile ng-init="items=[
|
|
45
|
+
{name:'主目录', path:'/etc/proftpd', isdir:true},
|
|
46
|
+
{name:'主配置', path:'/etc/proftpd/proftpd.conf', isfile:true}];"></div>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='ext'" id="ext">
|
|
49
|
+
<div srvext ng-init="name='ProFTPD';pkg='proftpd';"></div>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
|
|
52
|
+
<div srvupdate ng-init="name='ProFTPD';pkg='proftpd';"></div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
|
|
55
|
+
<div srvuninstall ng-init="name='ProFTPD';pkg='proftpd';"></div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<div navbar ng-init="currentItem='service.pureftpd'"></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>Pure-FTPd - FTP 服务器软件</h3>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div srvinstall ng-init="name='Pure-FTPd';pkg='pureftpd';expected_repolist=['base','epel'];"></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="load_settings()" 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=='ext'"><a href="#ext" ng-click="sec('ext')" data-toggle="tab">扩展</a></li>
|
|
19
|
+
<li ng-class="'active' | iftrue:activeTabName=='update'"><a href="#update" ng-click="sec('update')" data-toggle="tab">升级</a></li>
|
|
20
|
+
<li ng-class="'active' | iftrue:activeTabName=='uninstall'"><a href="#uninstall" ng-click="sec('uninstall')" data-toggle="tab">卸载</a></li>
|
|
21
|
+
</ul>
|
|
22
|
+
<div class="tab-content">
|
|
23
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='base'" id="base">
|
|
24
|
+
<div srvbase ng-init="name='Pure-FTPd';pkg='pureftpd';service='pure-ftpd';"></div>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='settings'" id="settings">
|
|
27
|
+
<form class="form-horizontal form-horizontal-small" ng-submit="savesettings()" onsubmit="return false">
|
|
28
|
+
<table class="table table-condensed">
|
|
29
|
+
<thead>
|
|
30
|
+
<tr>
|
|
31
|
+
<th colspan="2">基本设置</th>
|
|
32
|
+
</tr>
|
|
33
|
+
</thead>
|
|
34
|
+
<tbody>
|
|
35
|
+
<tr>
|
|
36
|
+
<td>暂未实现设置功能,等待新版本升级</td>
|
|
37
|
+
</tr>
|
|
38
|
+
</tbody>
|
|
39
|
+
</table>
|
|
40
|
+
<button class="btn btn-primary" style="margin-left:10px" ng-click="savesettings()" disabled>保存设置</button>
|
|
41
|
+
</form>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='configfile'" id="configfile">
|
|
44
|
+
<div srvfile ng-init="items=[
|
|
45
|
+
{name:'主目录', path:'/etc/pureftpd', isdir:true},
|
|
46
|
+
{name:'主配置', path:'/etc/pureftpd/pureftpd.conf', isfile:true}];"></div>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='ext'" id="ext">
|
|
49
|
+
<div srvext ng-init="name='Pure-FTPd';pkg='pureftpd';"></div>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
|
|
52
|
+
<div srvupdate ng-init="name='Pure-FTPd';pkg='pureftpd';"></div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
|
|
55
|
+
<div srvuninstall ng-init="name='Pure-FTPd';pkg='pureftpd';"></div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<div navbar ng-init="currentItem='service.redis'"></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>Redis - 高性能内存数据库</h3>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div srvinstall ng-init="name='Redis';pkg='redis';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=='configfile'"><a href="#configfile" ng-click="sec('configfile')" data-toggle="tab">配置文件</a></li>
|
|
17
|
+
<li ng-class="'active' | iftrue:activeTabName=='logfile'"><a href="#logfile" ng-click="sec('logfile')" 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='Redis';pkg='redis';service='redis';"></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/redis.conf', isfile:true}];"></div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='logfile'" id="logfile">
|
|
29
|
+
<div srvlog ng-init="items=[{name:'日志目录', path:'/var/log/redis', isdir:true}];"></div>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
|
|
32
|
+
<div srvupdate ng-init="name='Redis';pkg='redis';"></div>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
|
|
35
|
+
<div srvuninstall ng-init="name='Redis';pkg='redis';"></div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
</div>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<div navbar ng-init="currentItem='service.samba'"></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>Samba - 资源共享服务器</h3>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div srvinstall ng-init="name='samba';pkg='samba';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="load_settings()" 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='samba';pkg='samba';service='smb';"></div>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='settings'" id="settings">
|
|
28
|
+
<table class="table table-condensed">
|
|
29
|
+
<thead>
|
|
30
|
+
<tr>
|
|
31
|
+
<th colspan="2">基本设置</th>
|
|
32
|
+
</tr>
|
|
33
|
+
</thead>
|
|
34
|
+
<tbody></tbody>
|
|
35
|
+
</table>
|
|
36
|
+
<button class="btn btn-primary" style="margin-left:10px" ng-click="savesettings()">保存设置</button>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='ext'" id="ext">
|
|
39
|
+
<div srvext ng-init="name='samba';pkg='samba';"></div>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='configfile'" id="configfile">
|
|
42
|
+
<div srvfile ng-init="items=[{name: '主配置', path: '/etc/samba/smb.conf', isfile: true}];"></div>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='logfile'" id="logfile">
|
|
45
|
+
<div srvlog ng-init="items=[
|
|
46
|
+
{name:'启动日志', path:'/var/log/messages', isfile:true},
|
|
47
|
+
{name:'日志文件', path:'/var/log/samba', isdir:true}];"></div>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
|
|
50
|
+
<div srvupdate ng-init="name='samba';pkg='samba';"></div>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
|
|
53
|
+
<div srvuninstall ng-init="name='samba';pkg='samba';"></div>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
</div>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<div navbar ng-init="currentItem='service.sendmail'"></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>Sendmail - 邮件传输服务</h3>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div srvinstall ng-init="name='Sendmail';pkg='sendmail';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=='logfile'"><a href="#logfile" ng-click="sec('logfile')" 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='Sendmail';pkg='sendmail';service='sendmail';"></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/mail', isdir:true}];"></div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='logfile'" id="logfile">
|
|
29
|
+
<div srvlog ng-init="items=[{name:'日志文件', path:'/var/log/maillog', isfile:true}];"></div>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
|
|
32
|
+
<div srvupdate ng-init="name='Sendmail';pkg='sendmail';"></div>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
|
|
35
|
+
<div srvuninstall ng-init="name='Sendmail';pkg='sendmail';"></div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
</div>
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
<div navbar ng-init="currentItem='service.ssh'"></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>SSH - 远程连接服务器</h3>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div srvinstall ng-init="name='SSH';pkg='ssh';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=='setting'"><a href="#setting" ng-click="sec('setting')" data-toggle="tab">基本设置</a></li>
|
|
17
|
+
<li ng-class="'active' | iftrue:activeTabName=='pubkauth'"><a href="#pubkauth" ng-click="sec('pubkauth')" data-toggle="tab">公钥验证</a></li>
|
|
18
|
+
<li ng-class="'active' | iftrue:activeTabName=='ext'"><a href="#ext" ng-click="sec('ext')" data-toggle="tab">扩展</a></li>
|
|
19
|
+
<li ng-class="'active' | iftrue:activeTabName=='configfile'"><a href="#configfile" ng-click="sec('configfile')" data-toggle="tab">配置文件</a></li>
|
|
20
|
+
<li ng-class="'active' | iftrue:activeTabName=='logfile'"><a href="#logfile" ng-click="sec('logfile')" data-toggle="tab">日志</a></li>
|
|
21
|
+
<li ng-class="'active' | iftrue:activeTabName=='update'"><a href="#update" ng-click="sec('update')" data-toggle="tab">升级</a></li>
|
|
22
|
+
<li ng-class="'active' | iftrue:activeTabName=='uninstall'"><a href="#uninstall" ng-click="sec('uninstall')" data-toggle="tab">卸载</a></li>
|
|
23
|
+
</ul>
|
|
24
|
+
<div class="tab-content">
|
|
25
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='base'" id="base">
|
|
26
|
+
<div srvbase ng-init="name='SSH';pkg='ssh';service='sshd';"></div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='setting'" id="setting">
|
|
29
|
+
<div class="form-horizontal form-horizontal-small">
|
|
30
|
+
<div class="form-group form-inline">
|
|
31
|
+
<label class="col-sm-2 control-label">服务端口</label>
|
|
32
|
+
<div class="col-sm-10">
|
|
33
|
+
<input class="form-control" ng-model="setting.port" type="text" placeholder="默认端口为 22">
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<div class="form-group form-inline">
|
|
37
|
+
<label class="col-sm-2 control-label" for="newpassword">密码验证</label>
|
|
38
|
+
<div class="col-sm-10">
|
|
39
|
+
<div class="checkbox">
|
|
40
|
+
<label><input ng-model="setting.enable_pwdauth" type="checkbox">支持使用密码进行登录验证</label>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="form-group form-inline">
|
|
45
|
+
<label class="col-sm-2 control-label" for="newpasswordc">启用SFTP</label>
|
|
46
|
+
<div class="col-sm-10">
|
|
47
|
+
<div class="checkbox">
|
|
48
|
+
<label><input ng-model="setting.enable_sftp" type="checkbox">开启 SFTP 支持</label>
|
|
49
|
+
</div>
|
|
50
|
+
<span class="help-block">开启后可通过 SFTP 工具上传/下载文件。</span>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
<div class="form-group form-inline">
|
|
54
|
+
<label class="col-sm-2 control-label"></label>
|
|
55
|
+
<div class="col-sm-10">
|
|
56
|
+
<button class="btn btn-primary" ng-click="savesettings()">保存设置</button>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='pubkauth'" id="pubkauth">
|
|
62
|
+
<div class="alert alert-info">使用公钥验证可以加强 SSH 的安全性,防止暴力破解。</div>
|
|
63
|
+
<div class="form-horizontal form-horizontal-small">
|
|
64
|
+
<div class="form-group form-inline">
|
|
65
|
+
<label class="col-sm-2 control-label">生成密钥对</label>
|
|
66
|
+
<div class="col-sm-10">
|
|
67
|
+
<button class="btn btn-default btn-sm" ng-click="gensshkey()">自动生成公钥和私钥</button>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="form-group form-inline">
|
|
71
|
+
<label class="col-sm-2 control-label">公钥文件</label>
|
|
72
|
+
<div class="col-sm-10">
|
|
73
|
+
<input class="form-control" ng-model="setting.pubkey" type="text" ng-disabled="true">
|
|
74
|
+
<span style="margin-left:5px;margin-bottom:0">供 SSH 服务器使用</span>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
<div class="form-group form-inline">
|
|
78
|
+
<label class="col-sm-2 control-label">私钥文件</label>
|
|
79
|
+
<div class="col-sm-10">
|
|
80
|
+
<input class="form-control" ng-model="setting.prvkey" type="text" ng-disabled="true">
|
|
81
|
+
<span style="margin-left:5px;margin-bottom:0">供 SSH 客户端使用</span>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="form-group form-inline" ng-show="setting.prvkey">
|
|
85
|
+
<label class="col-sm-2 control-label"></label>
|
|
86
|
+
<div class="col-sm-10">
|
|
87
|
+
<button class="btn btn-default btn-sm" ng-show="setting.prvkey" ng-click="chpasswd()">修改私钥密码</button>
|
|
88
|
+
<a class="btn btn-default btn-sm" href="/api/file/download{{setting.prvkey}}" ng-show="setting.prvkey">下载私钥</a>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
<div class="form-group form-inline">
|
|
92
|
+
<label class="col-sm-2 control-label">启用公钥验证</label>
|
|
93
|
+
<div class="col-sm-10">
|
|
94
|
+
<div class="checkbox">
|
|
95
|
+
<label><input ng-model="setting.enable_pubkauth" type="checkbox">支持使用公钥进行登录验证</label>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="form-group form-inline">
|
|
100
|
+
<label class="col-sm-2 control-label">关闭密码验证</label>
|
|
101
|
+
<div class="col-sm-10">
|
|
102
|
+
<div class="checkbox">
|
|
103
|
+
<label><input ng-model="setting.disable_pwdauth" type="checkbox">禁止使用密码进行登录验证(可选)</label>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="form-group form-inline">
|
|
108
|
+
<label class="col-sm-2 control-label"></label>
|
|
109
|
+
<div class="col-sm-10">
|
|
110
|
+
<button class="btn btn-primary" ng-click="savepksettings()">保存设置</button>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='ext'" id="ext">
|
|
116
|
+
<div srvext ng-init="name='SSH';pkg='ssh';"></div>
|
|
117
|
+
</div>
|
|
118
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='configfile'" id="configfile">
|
|
119
|
+
<div srvfile ng-init="items=[{name:'主目录', path:'/etc/ssh', isdir:true}];"></div>
|
|
120
|
+
</div>
|
|
121
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='logfile'" id="logfile">
|
|
122
|
+
<div srvlog ng-init="items=[{name:'日志文件', path:'/var/log/secure', isfile:true}];"></div>
|
|
123
|
+
</div>
|
|
124
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
|
|
125
|
+
<div srvupdate ng-init="name='SSH';pkg='ssh';"></div>
|
|
126
|
+
</div>
|
|
127
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
|
|
128
|
+
<div srvuninstall ng-init="name='SSH';pkg='ssh';"></div>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
<div id="confirm" class="modal fade">
|
|
136
|
+
<div class="modal-dialog" role="document">
|
|
137
|
+
<div class="modal-content">
|
|
138
|
+
<div class="modal-header">
|
|
139
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
140
|
+
<h3 class="modal-title">{{confirm_title}}</h3>
|
|
141
|
+
</div>
|
|
142
|
+
<div class="modal-body" ng-bind-html-unsafe="confirm_body"></div>
|
|
143
|
+
<div class="modal-footer">
|
|
144
|
+
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">取消</button>
|
|
145
|
+
<button class="btn btn-primary" onclick="$('#confirm').modal('hide')" ng-click="confirm()">确定</button>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
<div id="chpasswd" class="modal fade">
|
|
152
|
+
<div class="modal-dialog" role="document">
|
|
153
|
+
<div class="modal-content">
|
|
154
|
+
<div class="modal-header">
|
|
155
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
156
|
+
<h3 class="modal-title">修改私钥密码</h3>
|
|
157
|
+
</div>
|
|
158
|
+
<div class="modal-body">
|
|
159
|
+
<form class="form-horizontal" onsubmit="return false">
|
|
160
|
+
<div class="form-group form-inline">
|
|
161
|
+
<label class="col-sm-2 control-label" for="oldpassword">原密码</label>
|
|
162
|
+
<div class="col-sm-10">
|
|
163
|
+
<input class="form-control" type="password" id="oldpassword" ng-model="oldpassword" placeholder="无密码请留空" autocomplete="off" />
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
<div class="form-group form-inline">
|
|
167
|
+
<label class="col-sm-2 control-label" for="newpassword">新密码</label>
|
|
168
|
+
<div class="col-sm-10">
|
|
169
|
+
<input class="form-control" type="password" id="newpassword" ng-model="newpassword" placeholder="至少5位,留空表示删除密码" autocomplete="off" />
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
<div class="form-group form-inline">
|
|
173
|
+
<label class="col-sm-2 control-label" for="newpasswordc">确认密码</label>
|
|
174
|
+
<div class="col-sm-10">
|
|
175
|
+
<input class="form-control" type="password" id="newpasswordc" ng-model="newpasswordc" placeholder="至少5位,留空表示删除密码" autocomplete="off" />
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</form>
|
|
179
|
+
</div>
|
|
180
|
+
<div class="modal-footer">
|
|
181
|
+
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">取消</button>
|
|
182
|
+
<button class="btn btn-primary" onclick="$('#chpasswd').modal('hide')" ng-click="dochpasswd()">修改密码</button>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<div navbar ng-init="currentItem='service.tomcat'"></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>Tomcat - 小型的轻量级 HTTP 服务器软件</h3>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div srvinstall ng-init="name='Tomcat';pkg='tomcat';expected_repolist=['base', 'CentALT', 'epel'];"></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='Tomcat';pkg='tomcat';service='tomcat';"></div>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='setting'" id="setting">
|
|
28
|
+
<div>
|
|
29
|
+
Tomcat 设置
|
|
30
|
+
<ul>
|
|
31
|
+
https://blog.csdn.net/wos1002/article/details/53820570
|
|
32
|
+
<li>监听的端口:80, Listen 80</li>
|
|
33
|
+
<li>网络管理员的电子邮件地址, ServerAdmin root@localhost</li>
|
|
34
|
+
<li>服务器主机名称,ServerName www.example.com:80</li>
|
|
35
|
+
<li>服务器主目录,DocumentRoot "/var/www/html"</li>
|
|
36
|
+
<li>默认文档,DirectoryIndex index.html index.html.var</li>
|
|
37
|
+
<li>默认字符集,AddDefaultCharset UTF-8</li>
|
|
38
|
+
<li>.htaccess文件</li>
|
|
39
|
+
<li>SSL模块</li>
|
|
40
|
+
</ul>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='ext'" id="ext">
|
|
44
|
+
<div srvext ng-init="name='Tomcat';pkg='tomcat';"></div>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='configfile'" id="configfile">
|
|
47
|
+
<div srvfile ng-init="items=[
|
|
48
|
+
{name:'主目录', path:'//usr/share/tomcat/conf', isdir:true},
|
|
49
|
+
{name:'主配置', path:'//usr/share/tomcat/conf/tomcat.conf', isfile:true},
|
|
50
|
+
{name: 'MIME类型', path:'/etc/tomcat/conf/magic', isfile: true},
|
|
51
|
+
{name:'扩展配置', path:'/etc/tomcat/conf.d', isdir: true}];"></div>
|
|
52
|
+
</div>
|
|
53
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='logfile'" id="logfile">
|
|
54
|
+
<div srvlog ng-init="items=[{name:'日志目录', path:'/var/log/tomcat', isdir:true}];"></div>
|
|
55
|
+
</div>
|
|
56
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='update'" id="update">
|
|
57
|
+
<div srvupdate ng-init="name='Tomcat';pkg='tomcat';"></div>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="tab-pane" ng-class="'active' | iftrue:activeTabName=='uninstall'" id="uninstall">
|
|
60
|
+
<div srvuninstall ng-init="name='Tomcat';pkg='tomcat';"></div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
</div>
|