mirror of
https://github.com/acepanel/panel.git
synced 2026-02-05 02:07:18 +08:00
86 lines
3.6 KiB
Go
86 lines
3.6 KiB
Go
package request
|
|
|
|
import (
|
|
"github.com/acepanel/panel/pkg/webserver/types"
|
|
)
|
|
|
|
type WebsiteDefaultConfig struct {
|
|
Index string `json:"index" form:"index" validate:"required"`
|
|
Stop string `json:"stop" form:"stop" validate:"required"`
|
|
NotFound string `json:"not_found" form:"not_found"`
|
|
TLSVersions []string `json:"tls_versions" form:"tls_versions" validate:"required|isSlice"`
|
|
CipherSuites string `json:"cipher_suites" form:"cipher_suites" validate:"required"`
|
|
}
|
|
|
|
type WebsiteList struct {
|
|
Type string `json:"type" form:"type" validate:"required|in:all,proxy,static,php"`
|
|
Paginate
|
|
}
|
|
|
|
type WebsiteCreate struct {
|
|
Type string `json:"type" form:"type" validate:"required|in:proxy,static,php"`
|
|
Name string `form:"name" json:"name" validate:"required|notExists:websites,name|not_in:phpmyadmin,default|regex:^[a-zA-Z0-9_-]+$"`
|
|
Listens []string `form:"listens" json:"listens" validate:"required|isSlice"`
|
|
Domains []string `form:"domains" json:"domains" validate:"required|isSlice"`
|
|
Path string `form:"path" json:"path"`
|
|
DB bool `form:"db" json:"db"`
|
|
DBType string `form:"db_type" json:"db_type" validate:"requiredIf:DB,true"`
|
|
DBName string `form:"db_name" json:"db_name" validate:"requiredIf:DB,true"`
|
|
DBUser string `form:"db_user" json:"db_user" validate:"requiredIf:DB,true"`
|
|
DBPassword string `form:"db_password" json:"db_password" validate:"requiredIf:DB,true"`
|
|
Remark string `form:"remark" json:"remark"`
|
|
|
|
PHP uint `form:"php" json:"php" validate:"requiredIf:Type,php"` // 仅 PHP 网站需要
|
|
Proxy string `form:"proxy" json:"proxy" validate:"requiredIf:Type,proxy"` // 仅反向代理网站需要
|
|
}
|
|
|
|
type WebsiteDelete struct {
|
|
ID uint `form:"id" json:"id" validate:"required|exists:websites,id"`
|
|
Path bool `form:"path" json:"path"`
|
|
DB bool `form:"db" json:"db"`
|
|
}
|
|
|
|
type WebsiteUpdate struct {
|
|
ID uint `form:"id" json:"id" validate:"required|exists:websites,id"`
|
|
Listens []types.Listen `form:"listens" json:"listens" validate:"required|isSlice"`
|
|
Domains []string `form:"domains" json:"domains" validate:"required|isSlice"`
|
|
Path string `form:"path" json:"path" validate:"required"` // 网站目录
|
|
Root string `form:"root" json:"root" validate:"required"` // 运行目录
|
|
Index []string `form:"index" json:"index" validate:"required|isSlice"`
|
|
|
|
// SSL 相关
|
|
SSL bool `form:"ssl" json:"ssl"`
|
|
SSLCert string `json:"ssl_cert"`
|
|
SSLKey string `json:"ssl_key"`
|
|
HSTS bool `form:"hsts" json:"hsts"`
|
|
OCSP bool `form:"ocsp" json:"ocsp"`
|
|
HTTPRedirect bool `form:"http_redirect" json:"http_redirect"`
|
|
SSLProtocols []string `json:"ssl_protocols"`
|
|
SSLCiphers string `json:"ssl_ciphers"`
|
|
|
|
// PHP 相关
|
|
PHP uint `form:"php" json:"php"`
|
|
Rewrite string `form:"rewrite" json:"rewrite"`
|
|
OpenBasedir bool `form:"open_basedir" json:"open_basedir"`
|
|
|
|
// 反向代理
|
|
Upstreams []types.Upstream `json:"upstreams"`
|
|
Proxies []types.Proxy `json:"proxies"`
|
|
}
|
|
|
|
type WebsiteUpdateRemark struct {
|
|
ID uint `form:"id" json:"id" validate:"required|exists:websites,id"`
|
|
Remark string `form:"remark" json:"remark"`
|
|
}
|
|
|
|
type WebsiteUpdateStatus struct {
|
|
ID uint `json:"id" form:"id" validate:"required|exists:websites,id"`
|
|
Status bool `json:"status" form:"status"`
|
|
}
|
|
|
|
type WebsiteUpdateCert struct {
|
|
Name string `json:"name" validate:"required|exists:websites,name|regex:^[a-zA-Z0-9_-]+$"`
|
|
Cert string `json:"cert" validate:"required"`
|
|
Key string `json:"key" validate:"required"`
|
|
}
|