2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 23:18:43 +08:00
Files
panel/docs/swagger.yaml
2024-03-24 15:55:10 +08:00

2912 lines
65 KiB
YAML

basePath: /api
definitions:
acme.DNSParam:
properties:
access_key:
type: string
api_key:
type: string
id:
type: string
secret_key:
type: string
token:
type: string
type: object
acme.DNSRecord:
properties:
key:
type: string
value:
type: string
type: object
controllers.ErrorResponse:
properties:
message:
type: string
type: object
controllers.SuccessResponse:
properties:
data: {}
message:
type: string
type: object
internal.BackupFile:
properties:
name:
type: string
size:
type: string
type: object
internal.PanelWebsite:
properties:
db:
type: boolean
db_name:
type: string
db_password:
type: string
db_type:
type: string
db_user:
type: string
domains:
items:
type: string
type: array
name:
type: string
path:
type: string
php:
type: string
ports:
items:
type: integer
type: array
remark:
type: string
ssl:
type: boolean
status:
type: boolean
type: object
models.Cert:
properties:
auto_renew:
description: 自动续签
type: boolean
cert:
description: 证书内容
type: string
cert_url:
description: 证书 URL (续签时使用)
type: string
created_at:
type: string
dns:
$ref: '#/definitions/models.CertDNS'
dns_id:
description: 关联的 DNS ID
type: integer
domains:
items:
type: string
type: array
id:
type: integer
key:
description: 私钥内容
type: string
type:
description: 证书类型 (P256, P384, 2048, 4096)
type: string
updated_at:
type: string
user:
$ref: '#/definitions/models.CertUser'
user_id:
description: 关联的 ACME 用户 ID
type: integer
website:
$ref: '#/definitions/models.Website'
website_id:
description: 关联的网站 ID
type: integer
type: object
models.CertDNS:
properties:
created_at:
type: string
dns_param:
$ref: '#/definitions/acme.DNSParam'
id:
type: integer
name:
description: 备注名称
type: string
type:
description: DNS 提供商 (dnspod, aliyun, cloudflare)
type: string
updated_at:
type: string
type: object
models.CertUser:
properties:
ca:
description: CA 提供商 (letsencrypt, zerossl, sslcom, google, buypass)
type: string
created_at:
type: string
email:
type: string
hmac_encoded:
type: string
id:
type: integer
key_type:
type: string
kid:
type: string
private_key:
type: string
updated_at:
type: string
type: object
models.Website:
properties:
cert:
$ref: '#/definitions/models.Cert'
created_at:
type: string
id:
type: integer
name:
type: string
path:
type: string
php:
type: integer
remark:
type: string
ssl:
type: boolean
status:
type: boolean
updated_at:
type: string
type: object
panel_app_http_requests_container.ID:
properties:
id:
type: string
type: object
panel_app_http_requests_plugins_rsync.Update:
properties:
auth_user:
type: string
comment:
type: string
hosts_allow:
type: string
name:
type: string
path:
type: string
secret:
type: string
type: object
panel_app_http_requests_setting.Update:
properties:
backup_path:
type: string
email:
type: string
entrance:
type: string
name:
type: string
password:
type: string
port:
type: integer
ssl:
type: boolean
username:
type: string
website_path:
type: string
type: object
requests.Add:
properties:
db:
type: boolean
db_name:
type: string
db_password:
type: string
db_type:
type: string
db_user:
type: string
domains:
items:
type: string
type: array
name:
type: string
path:
type: string
php:
type: string
ports:
items:
type: integer
type: array
type: object
requests.Archive:
properties:
file:
type: string
paths:
items:
type: string
type: array
type: object
requests.CertDeploy:
properties:
id:
type: integer
website_id:
type: integer
type: object
requests.CertStore:
properties:
auto_renew:
type: boolean
dns_id:
type: integer
domains:
items:
type: string
type: array
type:
type: string
user_id:
type: integer
website_id:
type: integer
type: object
requests.CertUpdate:
properties:
auto_renew:
type: boolean
dns_id:
type: integer
domains:
items:
type: string
type: array
id:
type: integer
type:
type: string
user_id:
type: integer
website_id:
type: integer
type: object
requests.ContainerCreate:
properties:
auto_remove:
type: boolean
command:
items:
type: string
type: array
cpu_shares:
type: integer
cpus:
type: integer
entrypoint:
items:
type: string
type: array
env:
items:
$ref: '#/definitions/types.KV'
type: array
image:
type: string
labels:
items:
$ref: '#/definitions/types.KV'
type: array
memory:
type: integer
name:
type: string
network:
type: string
open_stdin:
type: boolean
ports:
items:
$ref: '#/definitions/types.ContainerPort'
type: array
privileged:
type: boolean
publish_all_ports:
type: boolean
restart_policy:
type: string
tty:
type: boolean
volumes:
items:
$ref: '#/definitions/types.ContainerVolume'
type: array
type: object
requests.ContainerRename:
properties:
id:
type: string
name:
type: string
type: object
requests.Copy:
properties:
new:
type: string
old:
type: string
type: object
requests.Create:
properties:
auth_user:
type: string
comment:
type: string
hosts_allow:
type: string
name:
type: string
path:
type: string
secret:
type: string
type: object
requests.DNSStore:
properties:
data:
$ref: '#/definitions/acme.DNSParam'
name:
type: string
type:
type: string
type: object
requests.DNSUpdate:
properties:
data:
$ref: '#/definitions/acme.DNSParam'
id:
type: integer
name:
type: string
type:
type: string
type: object
requests.DeleteBackup:
properties:
name:
type: string
type: object
requests.Exist:
properties:
path:
type: string
type: object
requests.ImagePull:
properties:
auth:
type: boolean
name:
type: string
password:
type: string
username:
type: string
type: object
requests.Login:
properties:
password:
type: string
username:
type: string
type: object
requests.Move:
properties:
new:
type: string
old:
type: string
type: object
requests.NetworkConnectDisConnect:
properties:
container:
type: string
network:
type: string
type: object
requests.NetworkCreate:
properties:
driver:
type: string
ipv4:
$ref: '#/definitions/types.ContainerNetwork'
ipv6:
$ref: '#/definitions/types.ContainerNetwork'
labels:
items:
$ref: '#/definitions/types.KV'
type: array
name:
type: string
options:
items:
$ref: '#/definitions/types.KV'
type: array
type: object
requests.NotExist:
properties:
path:
type: string
type: object
requests.Obtain:
properties:
id:
type: integer
type: object
requests.Permission:
properties:
group:
type: string
mode:
type: integer
owner:
type: string
path:
type: string
type: object
requests.Renew:
properties:
id:
type: integer
type: object
requests.Save:
properties:
content:
type: string
path:
type: string
type: object
requests.SaveConfig:
properties:
domains:
items:
type: string
type: array
hsts:
type: boolean
http_redirect:
type: boolean
id:
type: integer
index:
type: string
open_basedir:
type: boolean
path:
type: string
php:
type: integer
ports:
items:
type: integer
type: array
raw:
type: string
rewrite:
type: string
root:
type: string
ssl:
type: boolean
ssl_certificate:
type: string
ssl_certificate_key:
type: string
waf:
type: boolean
waf_cache:
type: string
waf_cc_deny:
type: string
waf_mode:
type: string
type: object
requests.Search:
properties:
keyword:
type: string
path:
type: string
type: object
requests.UnArchive:
properties:
file:
type: string
path:
type: string
type: object
requests.UpdateConfig:
properties:
config:
type: string
type: object
requests.UserStore:
properties:
ca:
type: string
email:
type: string
hmac_encoded:
type: string
key_type:
type: string
kid:
type: string
type: object
requests.UserUpdate:
properties:
ca:
type: string
email:
type: string
hmac_encoded:
type: string
id:
type: integer
key_type:
type: string
kid:
type: string
type: object
requests.VolumeCreate:
properties:
driver:
type: string
labels:
items:
$ref: '#/definitions/types.KV'
type: array
name:
type: string
options:
items:
$ref: '#/definitions/types.KV'
type: array
type: object
types.ContainerNetwork:
properties:
enabled:
type: boolean
gateway:
type: string
ip_range:
type: string
subnet:
type: string
type: object
types.ContainerPort:
properties:
container_end:
type: integer
container_start:
type: integer
host:
type: string
host_end:
type: integer
host_start:
type: integer
protocol:
type: string
type: object
types.ContainerVolume:
properties:
container:
type: string
host:
type: string
mode:
type: string
type: object
types.KV:
properties:
key:
type: string
value:
type: string
type: object
info:
contact:
email: i@haozi.net
name: 耗子科技
description: 耗子 Linux 面板的 API 信息
license:
name: GNU Affero General Public License v3
title: 耗子 Linux 面板 API
version: "2"
paths:
/panel/cert/algorithms:
get:
description: 获取面板证书管理支持的算法列表
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取算法列表
tags:
- 证书管理
/panel/cert/caProviders:
get:
description: 获取面板证书管理支持的 CA 提供商
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取 CA 提供商
tags:
- 证书管理
/panel/cert/certs:
get:
description: 获取面板证书管理的证书列表
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取证书列表
tags:
- 证书管理
post:
consumes:
- application/json
description: 添加证书到面板证书管理
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.CertStore'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 添加证书
tags:
- 证书管理
/panel/cert/certs/{id}:
delete:
consumes:
- application/json
description: 删除面板证书管理的证书
parameters:
- description: 证书 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除证书
tags:
- 证书管理
get:
description: 获取面板证书管理的证书
parameters:
- description: 证书 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controllers.SuccessResponse'
- properties:
data:
$ref: '#/definitions/models.Cert'
type: object
security:
- BearerToken: []
summary: 获取证书
tags:
- 证书管理
put:
consumes:
- application/json
description: 更新面板证书管理的证书
parameters:
- description: 证书 ID
in: path
name: id
required: true
type: integer
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.CertUpdate'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 更新证书
tags:
- 证书管理
/panel/cert/deploy:
post:
consumes:
- application/json
description: 部署面板证书管理的证书
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.CertDeploy'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 部署证书
tags:
- 证书管理
/panel/cert/dns:
get:
description: 获取面板证书管理的 DNS 接口列表
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取 DNS 接口列表
tags:
- 证书管理
post:
consumes:
- application/json
description: 添加 DNS 接口到面板证书管理
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.DNSStore'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 添加 DNS 接口
tags:
- 证书管理
/panel/cert/dns/{id}:
delete:
consumes:
- application/json
description: 删除面板证书管理的 DNS 接口
parameters:
- description: DNS 接口 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除 DNS 接口
tags:
- 证书管理
get:
description: 获取面板证书管理的 DNS 接口
parameters:
- description: DNS 接口 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controllers.SuccessResponse'
- properties:
data:
$ref: '#/definitions/models.CertDNS'
type: object
security:
- BearerToken: []
summary: 获取 DNS 接口
tags:
- 证书管理
put:
consumes:
- application/json
description: 更新面板证书管理的 DNS 接口
parameters:
- description: DNS 接口 ID
in: path
name: id
required: true
type: integer
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.DNSUpdate'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 更新 DNS 接口
tags:
- 证书管理
/panel/cert/dnsProviders:
get:
description: 获取面板证书管理支持的 DNS 提供商
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取 DNS 提供商
tags:
- 证书管理
/panel/cert/manualDNS:
post:
consumes:
- application/json
description: 获取签发证书所需的 DNS 记录
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Obtain'
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controllers.SuccessResponse'
- properties:
data:
items:
$ref: '#/definitions/acme.DNSRecord'
type: array
type: object
security:
- BearerToken: []
summary: 获取手动 DNS 记录
tags:
- 证书管理
/panel/cert/obtain:
post:
consumes:
- application/json
description: 签发面板证书管理的证书
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Obtain'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 签发证书
tags:
- 证书管理
/panel/cert/renew:
post:
consumes:
- application/json
description: 续签面板证书管理的证书
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Renew'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 续签证书
tags:
- 证书管理
/panel/cert/users:
get:
description: 获取面板证书管理的 ACME 用户列表
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取用户列表
tags:
- 证书管理
post:
consumes:
- application/json
description: 添加 ACME 用户到面板证书管理
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.UserStore'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 添加 ACME 用户
tags:
- 证书管理
/panel/cert/users/{id}:
delete:
consumes:
- application/json
description: 删除面板证书管理的 ACME 用户
parameters:
- description: 用户 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除 ACME 用户
tags:
- 证书管理
get:
description: 获取面板证书管理的 ACME 用户
parameters:
- description: 用户 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controllers.SuccessResponse'
- properties:
data:
$ref: '#/definitions/models.CertUser'
type: object
security:
- BearerToken: []
summary: 获取 ACME 用户
tags:
- 证书管理
put:
consumes:
- application/json
description: 更新面板证书管理的 ACME 用户
parameters:
- description: 用户 ID
in: path
name: id
required: true
type: integer
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.UserUpdate'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 更新 ACME 用户
tags:
- 证书管理
/panel/container/create:
post:
consumes:
- application/json
description: 创建一个容器
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.ContainerCreate'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 创建容器
tags:
- 容器
/panel/container/exist:
get:
description: 检查一个容器是否存在
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 检查容器是否存在
tags:
- 容器
/panel/container/image/exist:
get:
description: 检查一个镜像是否存在
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 检查镜像是否存在
tags:
- 容器
/panel/container/image/inspect:
get:
description: 查看一个镜像的详细信息
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 查看镜像
tags:
- 容器
/panel/container/image/list:
get:
description: 获取所有镜像列表
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取镜像列表
tags:
- 容器
/panel/container/image/prune:
post:
description: 清理无用的镜像
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 清理镜像
tags:
- 容器
/panel/container/image/pull:
post:
consumes:
- application/json
description: 拉取一个镜像
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.ImagePull'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 拉取镜像
tags:
- 容器
/panel/container/image/remove:
post:
description: 删除一个镜像
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_container.ID'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除镜像
tags:
- 容器
/panel/container/inspect:
get:
description: 查看一个容器的详细信息
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 查看容器
tags:
- 容器
/panel/container/kill:
post:
description: 杀死一个容器
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_container.ID'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 杀死容器
tags:
- 容器
/panel/container/list:
get:
description: 获取所有容器列表
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取容器列表
tags:
- 容器
/panel/container/logs:
get:
description: 查看一个容器的日志
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 查看容器日志
tags:
- 容器
/panel/container/network/connect:
post:
consumes:
- application/json
description: 连接一个容器到一个网络
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.NetworkConnectDisConnect'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 连接容器到网络
tags:
- 容器
/panel/container/network/create:
post:
consumes:
- application/json
description: 创建一个网络
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.NetworkCreate'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 创建网络
tags:
- 容器
/panel/container/network/disconnect:
post:
consumes:
- application/json
description: 从一个网络断开一个容器
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.NetworkConnectDisConnect'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 从网络断开容器
tags:
- 容器
/panel/container/network/exist:
get:
description: 检查一个网络是否存在
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 检查网络是否存在
tags:
- 容器
/panel/container/network/inspect:
get:
description: 查看一个网络的详细信息
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 查看网络
tags:
- 容器
/panel/container/network/list:
get:
description: 获取所有网络列表
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取网络列表
tags:
- 容器
/panel/container/network/prune:
post:
description: 清理无用的网络
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 清理网络
tags:
- 容器
/panel/container/network/remove:
post:
description: 删除一个网络
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_container.ID'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除网络
tags:
- 容器
/panel/container/prune:
post:
description: 清理无用的容器
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 清理容器
tags:
- 容器
/panel/container/remove:
post:
description: 删除一个容器
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_container.ID'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除容器
tags:
- 容器
/panel/container/rename:
post:
description: 重命名一个容器
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.ContainerRename'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 重命名容器
tags:
- 容器
/panel/container/restart:
post:
description: 重启一个容器
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_container.ID'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 重启容器
tags:
- 容器
/panel/container/search:
get:
description: 根据容器名称搜索容器
parameters:
- description: 容器名称
in: query
name: name
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 搜索容器
tags:
- 容器
/panel/container/start:
post:
description: 启动一个容器
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_container.ID'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 启动容器
tags:
- 容器
/panel/container/stats:
get:
description: 查看一个容器的状态信息
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 查看容器状态
tags:
- 容器
/panel/container/stop:
post:
description: 停止一个容器
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_container.ID'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 停止容器
tags:
- 容器
/panel/container/unpause:
post:
description: 取消暂停一个容器
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_container.ID'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 取消暂停容器
tags:
- 容器
/panel/container/volume/create:
post:
consumes:
- application/json
description: 创建一个卷
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.VolumeCreate'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 创建卷
tags:
- 容器
/panel/container/volume/exist:
get:
description: 检查一个卷是否存在
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 检查卷是否存在
tags:
- 容器
/panel/container/volume/inspect:
get:
description: 查看一个卷的详细信息
parameters:
- in: query
name: id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 查看卷
tags:
- 容器
/panel/container/volume/list:
get:
description: 获取所有卷列表
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取卷列表
tags:
- 容器
/panel/container/volume/prune:
post:
description: 清理无用的卷
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 清理卷
tags:
- 容器
/panel/container/volume/remove:
post:
description: 删除一个卷
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_container.ID'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除卷
tags:
- 容器
/panel/file/archive:
post:
consumes:
- application/json
description: 压缩文件/目录到给定路径
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Archive'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 压缩文件/目录
tags:
- 文件管理
/panel/file/content:
get:
consumes:
- application/json
description: 获取给定路径的文件内容
parameters:
- in: query
name: path
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取文件内容
tags:
- 文件管理
/panel/file/copy:
post:
consumes:
- application/json
description: 复制文件/目录到给定路径
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Copy'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 复制文件/目录
tags:
- 文件管理
/panel/file/create:
post:
consumes:
- application/json
description: 创建文件/目录到给定路径
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.NotExist'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 创建文件/目录
tags:
- 文件管理
/panel/file/delete:
post:
consumes:
- application/json
description: 删除给定路径的文件/目录
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Exist'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除文件/目录
tags:
- 文件管理
/panel/file/download:
get:
consumes:
- application/json
description: 下载给定路径的文件
parameters:
- in: query
name: path
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 下载文件
tags:
- 文件管理
/panel/file/info:
get:
consumes:
- application/json
description: 获取给定路径的文件/目录信息
parameters:
- in: query
name: path
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取文件/目录信息
tags:
- 文件管理
/panel/file/list:
get:
consumes:
- application/json
description: 获取给定路径的文件/目录列表
parameters:
- in: query
name: path
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
summary: 获取文件/目录列表
tags:
- 文件管理
/panel/file/move:
post:
consumes:
- application/json
description: 移动文件/目录到给定路径,等效于重命名
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Move'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 移动文件/目录
tags:
- 文件管理
/panel/file/permission:
post:
consumes:
- application/json
description: 修改给定路径的文件/目录权限
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Permission'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 修改文件/目录权限
tags:
- 文件管理
/panel/file/remoteDownload:
post:
consumes:
- application/json
description: 下载远程文件到给定路径
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.NotExist'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 下载远程文件
tags:
- 文件管理
/panel/file/save:
post:
consumes:
- application/json
description: 保存给定路径的文件内容
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Save'
- description: content
in: body
name: content
required: true
schema:
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 保存文件内容
tags:
- 文件管理
/panel/file/search:
post:
consumes:
- application/json
description: 通过关键词搜索给定路径的文件/目录
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Search'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
summary: 搜索文件/目录
tags:
- 文件管理
/panel/file/unArchive:
post:
consumes:
- application/json
description: 解压文件/目录到给定路径
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.UnArchive'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 解压文件/目录
tags:
- 文件管理
/panel/file/upload:
post:
consumes:
- application/json
description: 上传文件到给定路径
parameters:
- description: file
in: formData
name: file
required: true
type: file
- description: path
in: formData
name: path
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 上传文件
tags:
- 文件管理
/panel/setting/list:
get:
description: 获取面板设置列表
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 设置列表
tags:
- 面板设置
/panel/setting/update:
post:
consumes:
- application/json
description: 更新面板设置
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_setting.Update'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 更新设置
tags:
- 面板设置
/panel/user/info:
get:
description: 获取当前登录用户信息
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 用户信息
tags:
- 用户鉴权
/panel/user/login:
post:
consumes:
- application/json
description: 通过用户名和密码获取访问令牌
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Login'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
"403":
description: 用户名或密码错误
schema:
$ref: '#/definitions/controllers.ErrorResponse'
"500":
description: 系统内部错误
schema:
$ref: '#/definitions/controllers.ErrorResponse'
summary: 登录
tags:
- 用户鉴权
/panel/website/backupList:
get:
description: 获取网站的备份列表
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controllers.SuccessResponse'
- properties:
data:
items:
$ref: '#/definitions/internal.BackupFile'
type: array
type: object
security:
- BearerToken: []
summary: 获取备份列表
tags:
- 网站管理
/panel/website/defaultConfig:
get:
description: 获取默认首页和停止页配置
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controllers.SuccessResponse'
- properties:
data:
additionalProperties:
type: string
type: object
type: object
security:
- BearerToken: []
summary: 获取默认配置
tags:
- 网站管理
post:
consumes:
- application/json
description: 保存默认首页和停止页配置
parameters:
- description: request
in: body
name: data
required: true
schema:
additionalProperties:
type: string
type: object
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 保存默认配置
tags:
- 网站管理
/panel/website/deleteBackup:
delete:
consumes:
- application/json
description: 删除网站的备份
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.DeleteBackup'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除备份
tags:
- 网站管理
/panel/website/uploadBackup:
put:
consumes:
- application/json
description: 上传网站的备份
parameters:
- description: 备份文件
in: formData
name: file
required: true
type: file
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 上传备份
tags:
- 网站管理
/panel/websites:
get:
description: 获取网站管理的网站列表
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取网站列表
tags:
- 网站管理
post:
consumes:
- application/json
description: 添加网站到网站管理
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Add'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 添加网站
tags:
- 网站管理
/panel/websites/{id}:
delete:
consumes:
- application/json
description: 删除网站管理的网站
parameters:
- description: 网站 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除网站
tags:
- 网站管理
/panel/websites/{id}/config:
get:
consumes:
- application/json
description: 获取网站的配置
parameters:
- description: 网站 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controllers.SuccessResponse'
- properties:
data:
$ref: '#/definitions/internal.PanelWebsite'
type: object
security:
- BearerToken: []
summary: 获取配置
tags:
- 网站管理
post:
consumes:
- application/json
description: 保存网站的配置
parameters:
- description: 网站 ID
in: path
name: id
required: true
type: integer
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.SaveConfig'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 保存配置
tags:
- 网站管理
/panel/websites/{id}/createBackup:
post:
consumes:
- application/json
description: 创建网站的备份
parameters:
- description: 网站 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 创建备份
tags:
- 网站管理
/panel/websites/{id}/log:
delete:
consumes:
- application/json
description: 清空网站的日志
parameters:
- description: 网站 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 清空日志
tags:
- 网站管理
/panel/websites/{id}/resetConfig:
post:
consumes:
- application/json
description: 重置网站的配置
parameters:
- description: 网站 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 重置配置
tags:
- 网站管理
/panel/websites/{id}/restoreBackup:
post:
consumes:
- application/json
description: 还原网站的备份
parameters:
- description: 网站 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 还原备份
tags:
- 网站管理
/panel/websites/{id}/status:
post:
consumes:
- application/json
description: 启用或停用网站
parameters:
- description: 网站 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 状态
tags:
- 网站管理
/panel/websites/{id}/updateRemark:
post:
consumes:
- application/json
description: 更新网站的备注
parameters:
- description: 网站 ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 更新备注
tags:
- 网站管理
/plugins/rsync/config:
get:
description: 获取 Rsync 配置
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 获取配置
tags:
- 插件-Rsync
post:
description: 更新 Rsync 配置
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.UpdateConfig'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 更新配置
tags:
- 插件-Rsync
/plugins/rsync/modules:
get:
description: 列出所有 Rsync 模块
parameters:
- in: query
name: limit
type: integer
- in: query
name: page
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 列出模块
tags:
- 插件-Rsync
post:
description: 添加 Rsync 模块
parameters:
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/requests.Create'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 添加模块
tags:
- 插件-Rsync
/plugins/rsync/modules/{name}:
delete:
description: 删除 Rsync 模块
parameters:
- description: 模块名称
in: path
name: name
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 删除模块
tags:
- 插件-Rsync
post:
description: 更新 Rsync 模块
parameters:
- description: 模块名称
in: path
name: name
required: true
type: string
- description: request
in: body
name: data
required: true
schema:
$ref: '#/definitions/panel_app_http_requests_plugins_rsync.Update'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 更新模块
tags:
- 插件-Rsync
/plugins/rsync/restart:
post:
description: 重启 Rsync 服务
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 重启服务
tags:
- 插件-Rsync
/plugins/rsync/start:
post:
description: 启动 Rsync 服务
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 启动服务
tags:
- 插件-Rsync
/plugins/rsync/status:
get:
description: 获取 Rsync 服务状态
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 服务状态
tags:
- 插件-Rsync
/plugins/rsync/stop:
post:
description: 停止 Rsync 服务
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controllers.SuccessResponse'
security:
- BearerToken: []
summary: 停止服务
tags:
- 插件-Rsync
/swagger:
get:
description: Swagger UI
responses:
"200":
description: OK
"500":
description: Internal Server Error
summary: Swagger UI
tags:
- Swagger
securityDefinitions:
BearerToken:
in: header
name: Authorization
type: apiKey
swagger: "2.0"