Update to 7.7.0

Since version 7.7.0, we recommend yours update python to 3.12.

[+] Using nginx technology to load static files improves access speed
[+] Refactor homepage, website, FTP, and database using vue3
[+] Table loading changed to skeleton screen
[+] Add Website statistics-v2 professional plug-in
[+] Add Home page - top 5 resource occupancy
[+] Add protection for Files management (requires Tamper-proof for Enterprise 3.7)
[+] Website, FTP, Databases page add program status
[+] Add FTP log analysis (only supports Centos)
[+] Add password-free login to phpMyAdmin
[+] Add Proxy Project in Website (Supported when web service uses Nginx)
[+] Add WP Toolkit (Pro version only)
[+] Redesigned Docker module
[+] Add WP Toolkit Protection
[+] Add WP Toolkit Backup and Restore
[+] Add WP Toolkit Migrated
[+] Add WP Toolkit Clone site (supports new domain and subdomain)
[+] Add WP Toolkit Create site from backup of other panel
[+] Add WP Toolkit support for Cron automatic backup (only save Local disk)
[+] Add WP Toolkit operation log
[+] Add Integrity check for WP Toolkit
[+] Add WP Toolkit plug-in management and themes management

[*] Optimize phpMyAdmin formula access method
[*] Optimize Home page PHP display problem
[*] Optimize jump to the login interface after the login expires
[*] Optimize automatic renewal of SSL at some times
[*] Optimize Let's Encrypt to increase application success rate

[-] Fix Logs Audit cannot be opened
[-] Fix apache URL rewrite issue
[-] Fix phpmyadmin installation problem
[-] Fix the problem that some servers cannot install software
[-] Fix upload file error
[-] Fix left menu hiding problem
[-] Fix aaPanel Mobile QR code display problem
[-] Fix problem that third-party plug-ins are not displayed in the App Store
[-] Fix issue where the menu bar is blank when opening new tabs
[-] Fixed panel not being accessible in some cases
[-] Fix the issue where Curl warning caused the inability to apply for SSL
[-] Fix Quota issues for Website, FTP, Databases
[-] Fix file interface display problem on mobile terminal
This commit is contained in:
Jack
2024-07-19 11:25:10 +08:00
parent ed34994f45
commit ed55fa708d
1949 changed files with 329210 additions and 26644 deletions
@@ -0,0 +1,48 @@
# coding: utf-8
# -------------------------------------------------------------------
# aaPanel
# -------------------------------------------------------------------
# Copyright (c) 2015-2099 aaPanel(www.aapanel.com) All rights reserved.
# -------------------------------------------------------------------
# Author: wzz <wzz@aapanel.com>
# -------------------------------------------------------------------
# docker模型sock 封装库 容器库
# -------------------------------------------------------------------
import json
import public
from btdockerModelV2.dockerSock.sockBase import base
class dockerContainer(base):
def __init__(self):
super(dockerContainer, self).__init__()
# 2024/3/13 上午 11:20 获取所有容器列表
def get_container(self):
'''
@name 获取所有容器列表
@author wzz <2024/3/13 上午 10:54>
@param "data":{"参数名":""} <数据类型> 参数描述
@return dict{"status":True/False,"msg":"提示信息"}
'''
try:
return json.loads(public.ExecShell("curl -s --unix-socket {} http:/{}/containers/json?all=1".format(self._sock, self.get_api_version()))[0])
except Exception as e:
print(public.get_error_info())
return []
# 2024/3/28 下午 11:37 获取指定容器的inspect
def get_container_inspect(self, container_id: str):
'''
@name 获取指定容器的inspect
@param container_id: 容器id
@return dict{"status":True/False,"msg":"提示信息"}
'''
try:
return json.loads(public.ExecShell("curl -s --unix-socket {} http:/{}/containers/{}/json"
.format(self._sock, self.get_api_version(), container_id))[0])
except Exception as e:
print(public.get_error_info())
return []
@@ -0,0 +1,80 @@
# coding: utf-8
# -------------------------------------------------------------------
# aaPanel
# -------------------------------------------------------------------
# Copyright (c) 2015-2099 aaPanel(www.aapanel.com) All rights reserved.
# -------------------------------------------------------------------
# Author: wzz <wzz@aapanel.com>
# -------------------------------------------------------------------
# docker模型sock 封装库 镜像库
# -------------------------------------------------------------------
import json
import public
from btdockerModelV2.dockerSock.sockBase import base
class dockerImage(base):
def __init__(self):
super(dockerImage, self).__init__()
# 2024/3/13 上午 11:20 获取所有镜像列表
def get_images(self):
'''
@name 获取所有镜像列表
@author wzz <2024/3/13 上午 10:54>
@param "data":{"参数名":""} <数据类型> 参数描述
@return dict{"status":True/False,"msg":"提示信息"}
'''
try:
return json.loads(public.ExecShell("curl -s --unix-socket {} http:/{}/images/json?all=1"
.format(self._sock, self.get_api_version()))[0])
except Exception as e:
print(public.get_error_info())
return []
# 2023/12/13 上午 11:08 镜像搜索
def search(self, name):
'''
@name 镜像搜索
@author wzz <2023/12/13 下午 3:41>
@param 参数名<数据类型> 参数描述
@return 数据类型
'''
try:
return json.loads(public.ExecShell("curl -s --unix-socket {} http:/{}/images/search?term={}"
.format(self._sock, self.get_api_version(), name))[0],)
except Exception as e:
# if os.path.exists('data/debug.pl'):
# print(public.get_error_info())
# public.print_log(public.get_error_info())
return []
# 2024/4/1 下午 2:47 image load
def load_image(self, path):
'''
@name 加载镜像
@param path <str> 镜像名称
@return dict{"status":True/False,"msg":"提示信息"}
'''
try:
return json.loads(public.ExecShell("curl -s --unix-socket {} -X POST http:/{}/images/load -H \"Content-Type: application/x-tar\" --data-binary @{}"
.format(self._sock, self.get_api_version(), path))[0])
except Exception as e:
print(public.get_error_info())
return False
# 2024/4/16 上午11:39 获取指定image的inspect信息
def inspect(self, image):
'''
@name 获取指定image的inspect信息
@param image <str> 镜像名称
@return dict{"status":True/False,"msg":"提示信息"}
'''
try:
return json.loads(public.ExecShell("curl -s --unix-socket {} http:/{}/images/{}/json"
.format(self._sock, self.get_api_version(), image))[0])
except Exception as e:
print(public.get_error_info())
return {}
@@ -0,0 +1,19 @@
class dockerSock(object):
def __init__(self):
self._sock = "/var/run/docker.sock"
self._url = "unix://{}".format(self._sock)
self._api_version = "/127.0.0.1"
def get_sock(self):
return self._sock
def get_url(self):
return self._url
def get_api_version(self):
return self._api_version
class base(dockerSock):
def __init__(self):
super(base, self).__init__()
@@ -0,0 +1,34 @@
# coding: utf-8
# -------------------------------------------------------------------
# aaPanel
# -------------------------------------------------------------------
# Copyright (c) 2015-2099 aaPanel(www.aapanel.com) All rights reserved.
# -------------------------------------------------------------------
# Author: wzz <wzz@aapanel.com>
# -------------------------------------------------------------------
# docker模型sock 封装库 存储库
# -------------------------------------------------------------------
import json
import public
from btdockerModelV2.dockerSock.sockBase import base
class dockerVolume(base):
def __init__(self):
super(dockerVolume, self).__init__()
# 2024/3/13 上午 11:20 获取所有存储卷列表
def get_volumes(self):
'''
@name 获取所有存储卷列表
@author wzz <2024/3/13 上午 10:54>
@param "data":{"参数名":""} <数据类型> 参数描述
@return dict{"status":True/False,"msg":"提示信息"}
'''
try:
return json.loads(public.ExecShell("curl -s --unix-socket {} http:/{}/volumes"
.format(self._sock, self.get_api_version()))[0])
except Exception as e:
print(public.get_error_info())
return []