2026-09-23 09:40:59 +08:00
|
|
|
package api
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"io/fs"
|
|
|
|
|
"log/slog"
|
|
|
|
|
|
2026-10-01 16:54:35 +08:00
|
|
|
"github.com/havline/havline/internal/acme"
|
|
|
|
|
"github.com/havline/havline/internal/auth"
|
|
|
|
|
"github.com/havline/havline/internal/backup"
|
|
|
|
|
"github.com/havline/havline/internal/chinacidr"
|
|
|
|
|
"github.com/havline/havline/internal/cloudflared"
|
|
|
|
|
"github.com/havline/havline/internal/config"
|
|
|
|
|
"github.com/havline/havline/internal/ddns"
|
|
|
|
|
"github.com/havline/havline/internal/discovery"
|
|
|
|
|
"github.com/havline/havline/internal/frp"
|
|
|
|
|
"github.com/havline/havline/internal/metrics"
|
|
|
|
|
"github.com/havline/havline/internal/notify"
|
|
|
|
|
"github.com/havline/havline/internal/service"
|
|
|
|
|
"github.com/havline/havline/internal/settings"
|
2026-10-16 20:18:04 +08:00
|
|
|
"github.com/havline/havline/internal/terminal"
|
2026-10-01 16:54:35 +08:00
|
|
|
"github.com/havline/havline/internal/traffic"
|
|
|
|
|
"github.com/havline/havline/internal/updater"
|
2026-09-23 09:40:59 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Deps struct {
|
2026-09-28 16:36:05 +08:00
|
|
|
Config config.Config
|
|
|
|
|
Logger *slog.Logger
|
|
|
|
|
Auth *auth.Service
|
|
|
|
|
Proxy *service.ProxyService
|
|
|
|
|
DDNS *ddns.Service
|
|
|
|
|
ACME *acme.Service
|
|
|
|
|
Settings *settings.Store
|
|
|
|
|
ChinaCIDR *chinacidr.Service
|
|
|
|
|
Backup *backup.Service
|
|
|
|
|
Metrics *metrics.Store
|
|
|
|
|
Discovery *discovery.Service
|
|
|
|
|
FRPMulti *frp.Service
|
|
|
|
|
Cloudflare *cloudflared.Service
|
|
|
|
|
Traffic *traffic.Collector
|
|
|
|
|
Notify *notify.Service
|
|
|
|
|
Updater *updater.Client
|
|
|
|
|
StaticFS fs.FS
|
|
|
|
|
StartedAt string
|
2026-10-16 20:18:04 +08:00
|
|
|
// Terminal 是内置 SSH 终端的会话管理器;为 nil 时相关接口不注册
|
|
|
|
|
Terminal *terminal.Manager
|
|
|
|
|
// TerminalAudits 是终端会话审计存储;为 nil 时不注册审计接口
|
|
|
|
|
TerminalAudits *terminal.AuditStore
|
|
|
|
|
// TerminalCommands 是终端常用命令存储;为 nil 时常用命令接口返回空
|
|
|
|
|
TerminalCommands *terminal.CommandStore
|
|
|
|
|
// TerminalRecordings 是会话录制存储;为 nil 时录制接口返回空
|
|
|
|
|
TerminalRecordings *terminal.RecordingStore
|
2026-09-23 09:40:59 +08:00
|
|
|
}
|