Files
panel/cmd/ace/wire_gen.go
T
耗子andClaude Opus 5 a6c2a60e55 feat: Frp 管理器支持可视化配置
frps/frpc 参数表单基于 confval 新增的 TOML 编解码就地改写主配置,保留注释与键顺序。
代理与访问者写入独立的 conf.d 目录,主配置只注入一行 includes,不接管其中手写的代理。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 21:45:30 +08:00

377 lines
19 KiB
Go

// Code generated by Wire. DO NOT EDIT.
//go:generate go run -mod=mod github.com/google/wire/cmd/wire
//go:build !wireinject
// +build !wireinject
package main
import (
"github.com/acepanel/panel/v3/internal/app"
"github.com/acepanel/panel/v3/internal/apps/apache"
"github.com/acepanel/panel/v3/internal/apps/clickhouse"
"github.com/acepanel/panel/v3/internal/apps/codeserver"
"github.com/acepanel/panel/v3/internal/apps/docker"
"github.com/acepanel/panel/v3/internal/apps/elasticsearch"
"github.com/acepanel/panel/v3/internal/apps/fail2ban"
"github.com/acepanel/panel/v3/internal/apps/frp"
"github.com/acepanel/panel/v3/internal/apps/gitea"
"github.com/acepanel/panel/v3/internal/apps/grafana"
"github.com/acepanel/panel/v3/internal/apps/kafka"
"github.com/acepanel/panel/v3/internal/apps/mariadb"
"github.com/acepanel/panel/v3/internal/apps/memcached"
"github.com/acepanel/panel/v3/internal/apps/minio"
"github.com/acepanel/panel/v3/internal/apps/mongodb"
"github.com/acepanel/panel/v3/internal/apps/mysql"
"github.com/acepanel/panel/v3/internal/apps/nginx"
"github.com/acepanel/panel/v3/internal/apps/openresty"
"github.com/acepanel/panel/v3/internal/apps/opensearch"
"github.com/acepanel/panel/v3/internal/apps/percona"
"github.com/acepanel/panel/v3/internal/apps/pgadmin"
"github.com/acepanel/panel/v3/internal/apps/phpmyadmin"
"github.com/acepanel/panel/v3/internal/apps/podman"
"github.com/acepanel/panel/v3/internal/apps/postgresql"
"github.com/acepanel/panel/v3/internal/apps/prometheus"
"github.com/acepanel/panel/v3/internal/apps/pureftpd"
"github.com/acepanel/panel/v3/internal/apps/redis"
"github.com/acepanel/panel/v3/internal/apps/rocketmq"
"github.com/acepanel/panel/v3/internal/apps/rsync"
"github.com/acepanel/panel/v3/internal/apps/s3fs"
"github.com/acepanel/panel/v3/internal/apps/supervisor"
"github.com/acepanel/panel/v3/internal/apps/valkey"
"github.com/acepanel/panel/v3/internal/biz"
"github.com/acepanel/panel/v3/internal/bootstrap"
"github.com/acepanel/panel/v3/internal/data"
"github.com/acepanel/panel/v3/internal/job"
"github.com/acepanel/panel/v3/internal/middleware"
"github.com/acepanel/panel/v3/internal/route"
"github.com/acepanel/panel/v3/internal/service"
"github.com/acepanel/panel/v3/pkg/websitestat"
)
import (
_ "time/tzdata"
)
// Injectors from wire.go:
func initAce() (*app.Ace, func(), error) {
config, err := bootstrap.NewConf()
if err != nil {
return nil, nil, err
}
locale := bootstrap.NewT(config)
apacheApp := apache.NewApp(locale)
db, err := bootstrap.NewDB(config)
if err != nil {
return nil, nil, err
}
databaseServerRepo := data.NewDatabaseServerRepo(db)
settingRepo := data.NewSettingRepo(config, db)
clickhouseApp := clickhouse.NewApp(locale, databaseServerRepo, settingRepo)
codeserverApp := codeserver.NewApp()
dockerApp := docker.NewApp()
elasticsearchApp := elasticsearch.NewApp(locale)
websiteRepo := data.NewWebsiteRepo(db, locale, settingRepo)
fail2banApp := fail2ban.NewApp(locale, websiteRepo)
frpApp := frp.NewApp(locale)
giteaApp := gitea.NewApp()
grafanaApp := grafana.NewApp(locale)
kafkaApp := kafka.NewApp(locale)
mysqlApp := mysql.NewApp(locale, databaseServerRepo, settingRepo)
mariadbApp := mariadb.NewApp(mysqlApp)
memcachedApp := memcached.NewApp(locale)
minioApp := minio.NewApp()
mongodbApp := mongodb.NewApp(locale, databaseServerRepo, settingRepo)
nginxApp := nginx.NewApp(locale)
openrestyApp := openresty.NewApp(nginxApp)
opensearchApp := opensearch.NewApp(locale)
perconaApp := percona.NewApp(mysqlApp)
pgadminApp := pgadmin.NewApp(config, locale, databaseServerRepo)
phpmyadminApp := phpmyadmin.NewApp(config, locale, databaseServerRepo)
podmanApp := podman.NewApp()
postgresqlApp := postgresql.NewApp(locale, databaseServerRepo, settingRepo)
logger, cleanup, err := bootstrap.NewLogger(config)
if err != nil {
return nil, nil, err
}
slogLogger := bootstrap.NewSlog(logger)
notifyChannelRepo := data.NewNotifyChannelRepo(db)
notifyUsecase := biz.NewNotifyUsecase(locale, slogLogger, notifyChannelRepo, settingRepo)
taskRunner := bootstrap.NewRunner(notifyUsecase, db, locale, slogLogger)
taskRepo := data.NewTaskRepo(db, locale, slogLogger, taskRunner)
prometheusApp := prometheus.NewApp(config, locale, taskRepo)
pureftpdApp := pureftpd.NewApp(locale)
redisApp := redis.NewApp(locale, databaseServerRepo)
rocketmqApp := rocketmq.NewApp(locale)
rsyncApp := rsync.NewApp(locale)
s3fsApp := s3fs.NewApp(locale)
supervisorApp := supervisor.NewApp(locale)
valkeyApp := valkey.NewApp(locale, databaseServerRepo)
loader := bootstrap.NewLoader(apacheApp, clickhouseApp, codeserverApp, dockerApp, elasticsearchApp, fail2banApp, frpApp, giteaApp, grafanaApp, kafkaApp, mariadbApp, memcachedApp, minioApp, mongodbApp, mysqlApp, nginxApp, openrestyApp, opensearchApp, perconaApp, pgadminApp, phpmyadminApp, podmanApp, postgresqlApp, prometheusApp, pureftpdApp, redisApp, rocketmqApp, rsyncApp, s3fsApp, supervisorApp, valkeyApp)
manager, err := bootstrap.NewSession(config, db, slogLogger)
if err != nil {
cleanup()
return nil, nil, err
}
appRepo := data.NewAppRepo(config, db, locale, slogLogger)
userTokenRepo := data.NewUserTokenRepo(config, db, locale)
middlewares, err := middleware.NewMiddlewares(config, locale, manager, appRepo, userTokenRepo)
if err != nil {
cleanup()
return nil, nil, err
}
validator := bootstrap.NewValidator(config, db)
alertRepo, err := data.NewAlertRepo(db)
if err != nil {
cleanup()
return nil, nil, err
}
containerRepo := data.NewContainerRepo()
alertUsecase := biz.NewAlertUsecase(notifyUsecase, loader, locale, slogLogger, alertRepo, appRepo, containerRepo, databaseServerRepo, settingRepo)
alertService := service.NewAlertService(alertUsecase)
cacheRepo := data.NewCacheRepo(db)
appUsecase := biz.NewAppUsecase(locale, appRepo, cacheRepo, taskRepo)
cacheUsecase := biz.NewCacheUsecase(cacheRepo)
settingUsecase := biz.NewSettingUsecase(locale, slogLogger, settingRepo, taskRepo)
appService := service.NewAppService(loader, appUsecase, cacheUsecase, settingUsecase, locale)
backupRepo := data.NewBackupRepo(config, db, locale, slogLogger, settingRepo, websiteRepo)
backupUsecase := biz.NewBackupUsecase(notifyUsecase, locale, slogLogger, backupRepo)
taskUsecase := biz.NewTaskUsecase(taskRepo)
backupService := service.NewBackupService(backupUsecase, taskUsecase, locale)
backupAccountRepo := data.NewBackupAccountRepo(db)
backupAccountUsecase := biz.NewBackupAccountUsecase(locale, slogLogger, backupAccountRepo, settingRepo)
backupStorageService := service.NewBackupStorageService(backupAccountUsecase, locale)
certRepo := data.NewCertRepo(db, locale, slogLogger)
certUsecase := biz.NewCertUsecase(locale, slogLogger, certRepo, settingRepo)
certService := service.NewCertService(certUsecase, locale)
certAccountRepo := data.NewCertAccountRepo(db, locale, slogLogger)
userRepo := data.NewUserRepo(db, locale)
certAccountUsecase := biz.NewCertAccountUsecase(locale, slogLogger, certAccountRepo, userRepo)
certAccountService := service.NewCertAccountService(certAccountUsecase)
certDNSRepo := data.NewCertDNSRepo(db)
certDNSUsecase := biz.NewCertDNSUsecase(certDNSRepo, slogLogger)
certDNSService := service.NewCertDNSService(certDNSUsecase)
containerUsecase := biz.NewContainerUsecase(locale, containerRepo, settingRepo, taskRepo)
containerService := service.NewContainerService(containerUsecase)
containerComposeRepo := data.NewContainerComposeRepo()
containerComposeUsecase := biz.NewContainerComposeUsecase(containerComposeRepo)
containerComposeService := service.NewContainerComposeService(containerComposeUsecase)
containerImageRepo := data.NewContainerImageRepo()
containerImageUsecase := biz.NewContainerImageUsecase(locale, containerImageRepo, settingRepo, taskRepo)
containerImageService := service.NewContainerImageService(containerImageUsecase)
containerNetworkRepo := data.NewContainerNetworkRepo()
containerNetworkUsecase := biz.NewContainerNetworkUsecase(containerNetworkRepo, settingRepo)
containerNetworkService := service.NewContainerNetworkService(containerNetworkUsecase)
containerVolumeRepo := data.NewContainerVolumeRepo()
containerVolumeUsecase := biz.NewContainerVolumeUsecase(containerVolumeRepo, settingRepo)
containerVolumeService := service.NewContainerVolumeService(containerVolumeUsecase)
cronRepo := data.NewCronRepo(db, locale)
cronUsecase := biz.NewCronUsecase(cronRepo, slogLogger)
cronService := service.NewCronService(cronUsecase)
databaseUserRepo := data.NewDatabaseUserRepo(db)
databaseUserUsecase := biz.NewDatabaseUserUsecase(slogLogger, databaseServerRepo, databaseUserRepo)
databaseRepo := data.NewDatabaseRepo(db)
databaseUsecase := biz.NewDatabaseUsecase(databaseUserUsecase, locale, slogLogger, databaseRepo, databaseServerRepo)
databaseService := service.NewDatabaseService(databaseUsecase)
databaseElasticsearchRepo := data.NewDatabaseElasticsearchRepo(db, locale, slogLogger)
databaseElasticsearchUsecase := biz.NewDatabaseElasticsearchUsecase(databaseElasticsearchRepo)
databaseElasticsearchService := service.NewDatabaseElasticsearchService(databaseElasticsearchUsecase)
databaseRedisRepo := data.NewDatabaseRedisRepo(db, locale, slogLogger)
databaseRedisUsecase := biz.NewDatabaseRedisUsecase(databaseRedisRepo)
databaseRedisService := service.NewDatabaseRedisService(databaseRedisUsecase)
databaseServerUsecase := biz.NewDatabaseServerUsecase(locale, slogLogger, databaseServerRepo)
databaseServerService := service.NewDatabaseServerService(databaseServerUsecase)
databaseUserService := service.NewDatabaseUserService(databaseUserUsecase)
environmentRepo := data.NewEnvironmentRepo(config, locale)
environmentUsecase := biz.NewEnvironmentUsecase(locale, cacheRepo, environmentRepo, taskRepo)
environmentService := service.NewEnvironmentService(environmentUsecase, taskUsecase, locale)
environmentDotnetService := service.NewEnvironmentDotnetService(environmentUsecase, locale)
environmentGoService := service.NewEnvironmentGoService(environmentUsecase, locale)
environmentJavaService := service.NewEnvironmentJavaService(environmentUsecase, locale)
environmentNodejsService := service.NewEnvironmentNodejsService(environmentUsecase, locale)
environmentPHPService := service.NewEnvironmentPHPService(environmentUsecase, taskUsecase, config, locale)
environmentPythonService := service.NewEnvironmentPythonService(environmentUsecase, locale)
tamperRepo, err := data.NewTamperRepo(db)
if err != nil {
cleanup()
return nil, nil, err
}
tamperUsecase := biz.NewTamperUsecase(notifyUsecase, settingUsecase, locale, slogLogger, tamperRepo)
fileService := service.NewFileService(containerUsecase, tamperUsecase, taskUsecase, locale)
fileShareRepo := data.NewFileShareRepo(db, locale)
fileShareUsecase := biz.NewFileShareUsecase(slogLogger, fileShareRepo)
fileShareService := service.NewFileShareService(fileShareUsecase, locale)
firewallService := service.NewFirewallService(locale)
scanEventRepo, err := data.NewScanEventRepo()
if err != nil {
cleanup()
return nil, nil, err
}
scanEventUsecase := biz.NewScanEventUsecase(scanEventRepo, settingRepo)
firewallScanService := service.NewFirewallScanService(scanEventUsecase)
projectRepo := data.NewProjectRepo(db, locale)
projectUsecase := biz.NewProjectUsecase(locale, slogLogger, projectRepo)
websiteStatRepo, err := data.NewWebsiteStatRepo()
if err != nil {
cleanup()
return nil, nil, err
}
websiteStatUsecase := biz.NewWebsiteStatUsecase(websiteStatRepo)
websiteUsecase := biz.NewWebsiteUsecase(certAccountUsecase, certUsecase, databaseUsecase, databaseUserUsecase, tamperUsecase, websiteStatUsecase, locale, slogLogger, databaseServerRepo, websiteRepo)
homeService := service.NewHomeService(appUsecase, backupUsecase, containerUsecase, cronUsecase, databaseServerUsecase, environmentUsecase, projectUsecase, settingUsecase, taskUsecase, websiteUsecase, config, locale)
logRepo := data.NewLogRepo(db)
logUsecase := biz.NewLogUsecase(logRepo)
logService := service.NewLogService(logUsecase, locale)
monitorRepo, err := data.NewMonitorRepo()
if err != nil {
cleanup()
return nil, nil, err
}
monitorUsecase := biz.NewMonitorUsecase(monitorRepo, settingRepo)
monitorService := service.NewMonitorService(monitorUsecase, settingUsecase)
notifyService := service.NewNotifyService(notifyUsecase)
processService := service.NewProcessService()
projectService := service.NewProjectService(projectUsecase, settingUsecase)
safeRepo := data.NewSafeRepo()
safeUsecase := biz.NewSafeUsecase(safeRepo, slogLogger)
safeService := service.NewSafeService(safeUsecase)
settingService := service.NewSettingService(certAccountUsecase, certUsecase, settingUsecase, db, locale)
sshRepo := data.NewSSHRepo(db, locale)
sshUsecase := biz.NewSSHUsecase(sshRepo, slogLogger)
sshService := service.NewSSHService(sshUsecase)
systemctlService := service.NewSystemctlService(locale)
tamperService := service.NewTamperService(tamperUsecase, locale)
taskService := service.NewTaskService(taskUsecase)
templateRepo := data.NewTemplateRepo(slogLogger)
templateUsecase := biz.NewTemplateUsecase(locale, cacheRepo, templateRepo)
templateService := service.NewTemplateService(settingUsecase, templateUsecase, locale)
toolboxBenchmarkService := service.NewToolboxBenchmarkService(locale)
toolboxDiskService := service.NewToolboxDiskService(locale)
toolboxLogService := service.NewToolboxLogService(containerImageUsecase, settingUsecase, db, locale)
migrationSourceRepo := data.NewMigrationSourceRepo(locale)
migrationRemoteRepo := data.NewMigrationRemoteRepo(locale)
migrationArchiveRepo := data.NewMigrationArchiveRepo()
toolboxMigrationUsecase := biz.NewToolboxMigrationUsecase(locale, slogLogger, migrationSourceRepo, migrationRemoteRepo, migrationArchiveRepo, settingUsecase, websiteUsecase, databaseUsecase, databaseServerUsecase, databaseUserUsecase, backupUsecase, projectUsecase, appUsecase, environmentUsecase)
toolboxMigrationService := service.NewToolboxMigrationService(toolboxMigrationUsecase, config, locale, slogLogger)
toolboxNetworkService := service.NewToolboxNetworkService(locale)
toolboxSSHService := service.NewToolboxSSHService(locale)
toolboxSystemService := service.NewToolboxSystemService(locale)
userUsecase := biz.NewUserUsecase(locale, slogLogger, userRepo)
userService := service.NewUserService(notifyUsecase, userUsecase, config, locale, manager)
userPasskeyRepo := data.NewUserPasskeyRepo(db)
userPasskeyUsecase := biz.NewUserPasskeyUsecase(userPasskeyRepo)
userPasskeyService := service.NewUserPasskeyService(notifyUsecase, userPasskeyUsecase, userUsecase, config, locale, manager)
userTokenUsecase := biz.NewUserTokenUsecase(userTokenRepo)
userTokenService := service.NewUserTokenService(userTokenUsecase, locale)
webHookRepo := data.NewWebHookRepo(db, locale)
webHookUsecase := biz.NewWebHookUsecase(locale, slogLogger, webHookRepo)
webHookService := service.NewWebHookService(webHookUsecase)
websiteService := service.NewWebsiteService(settingUsecase, websiteUsecase, locale)
aggregator := websitestat.NewAggregator()
websiteStatService := service.NewWebsiteStatService(settingUsecase, websiteStatUsecase, websiteUsecase, aggregator)
wsService := service.NewWsService(backupUsecase, certUsecase, sshUsecase, settingUsecase, taskUsecase, config, locale, slogLogger)
services := &route.Services{
Alert: alertService,
App: appService,
Backup: backupService,
BackupStorage: backupStorageService,
Cert: certService,
CertAccount: certAccountService,
CertDNS: certDNSService,
Container: containerService,
ContainerCompose: containerComposeService,
ContainerImage: containerImageService,
ContainerNetwork: containerNetworkService,
ContainerVolume: containerVolumeService,
Cron: cronService,
Database: databaseService,
DatabaseElasticsearch: databaseElasticsearchService,
DatabaseRedis: databaseRedisService,
DatabaseServer: databaseServerService,
DatabaseUser: databaseUserService,
Environment: environmentService,
EnvironmentDotnet: environmentDotnetService,
EnvironmentGo: environmentGoService,
EnvironmentJava: environmentJavaService,
EnvironmentNodejs: environmentNodejsService,
EnvironmentPHP: environmentPHPService,
EnvironmentPython: environmentPythonService,
File: fileService,
FileShare: fileShareService,
Firewall: firewallService,
FirewallScan: firewallScanService,
Home: homeService,
Log: logService,
Monitor: monitorService,
Notify: notifyService,
Process: processService,
Project: projectService,
Safe: safeService,
Setting: settingService,
SSH: sshService,
Systemctl: systemctlService,
Tamper: tamperService,
Task: taskService,
Template: templateService,
ToolboxBenchmark: toolboxBenchmarkService,
ToolboxDisk: toolboxDiskService,
ToolboxLog: toolboxLogService,
ToolboxMigration: toolboxMigrationService,
ToolboxNetwork: toolboxNetworkService,
ToolboxSSH: toolboxSSHService,
ToolboxSystem: toolboxSystemService,
User: userService,
UserPasskey: userPasskeyService,
UserToken: userTokenService,
WebHook: webHookService,
Website: websiteService,
WebsiteStat: websiteStatService,
Ws: wsService,
}
v := route.NewEndpoints(services)
mux, err := bootstrap.NewRouter(loader, config, locale, middlewares, validator, v)
if err != nil {
cleanup()
return nil, nil, err
}
dependencies := &job.Dependencies{
Alert: alertUsecase,
Backup: backupUsecase,
Cache: cacheUsecase,
Cert: certUsecase,
CertAccount: certAccountUsecase,
FileShare: fileShareUsecase,
Monitor: monitorUsecase,
Notify: notifyUsecase,
ScanEvent: scanEventUsecase,
Setting: settingUsecase,
Tamper: tamperUsecase,
Task: taskUsecase,
Website: websiteUsecase,
WebsiteStat: websiteStatUsecase,
Conf: config,
DB: db,
T: locale,
Log: slogLogger,
Aggregator: aggregator,
}
v2 := job.NewJobs(dependencies)
cron, err := bootstrap.NewCron(slogLogger, v2)
if err != nil {
cleanup()
return nil, nil, err
}
gormigrate := bootstrap.NewMigrate(db)
reloader, err := bootstrap.NewTLSReloader(config)
if err != nil {
cleanup()
return nil, nil, err
}
server := bootstrap.NewHttp(mux, config, reloader)
ace := app.NewAce(mux, config, cron, gormigrate, server, reloader, taskRunner)
return ace, func() {
cleanup()
}, nil
}