103 lines
2.4 KiB
Go
103 lines
2.4 KiB
Go
package config
|
|
|
|
// Config is the main config object
|
|
type Settings struct {
|
|
WebUi WebUi `koanf:"webUi"`
|
|
|
|
Sources Sources `koanf:"sources"`
|
|
|
|
Mounts Mounts `koanf:"mounts"`
|
|
Log Log `koanf:"log"`
|
|
|
|
SourceDir string `koanf:"source_dir"`
|
|
|
|
OtelHttp string `koanf:"otel_http"`
|
|
}
|
|
|
|
type Sources struct {
|
|
TorrentClient TorrentClient `koanf:"torrent"`
|
|
QBittorrent QBittorrent `koanf:"qbittorrent"`
|
|
}
|
|
|
|
type WebUi struct {
|
|
Port int `koanf:"port"`
|
|
IP string `koanf:"ip"`
|
|
}
|
|
|
|
type Log struct {
|
|
Debug bool `koanf:"debug"`
|
|
MaxBackups int `koanf:"max_backups"`
|
|
MaxSize int `koanf:"max_size"`
|
|
MaxAge int `koanf:"max_age"`
|
|
Path string `koanf:"path"`
|
|
}
|
|
|
|
type QBittorrent struct {
|
|
DataFolder string `koanf:"data_folder,omitempty"`
|
|
MetadataFolder string `koanf:"metadata_folder,omitempty"`
|
|
}
|
|
|
|
type TorrentClient struct {
|
|
// ReadTimeout int `koanf:"read_timeout,omitempty"`
|
|
// AddTimeout int `koanf:"add_timeout,omitempty"`
|
|
|
|
DHTNodes []string `koanf:"dhtnodes,omitempty"`
|
|
DisableIPv6 bool `koanf:"disable_ipv6,omitempty"`
|
|
|
|
DataFolder string `koanf:"data_folder,omitempty"`
|
|
MetadataFolder string `koanf:"metadata_folder,omitempty"`
|
|
|
|
// GlobalCacheSize int64 `koanf:"global_cache_size,omitempty"`
|
|
|
|
Routes []Route `koanf:"routes"`
|
|
Servers []Server `koanf:"servers"`
|
|
}
|
|
|
|
type Route struct {
|
|
Name string `koanf:"name"`
|
|
Torrents []Torrent `koanf:"torrents"`
|
|
TorrentFolder string `koanf:"torrent_folder"`
|
|
}
|
|
|
|
type Server struct {
|
|
Name string `koanf:"name"`
|
|
Path string `koanf:"path"`
|
|
Trackers []string `koanf:"trackers"`
|
|
TrackerURL string `koanf:"tracker_url"`
|
|
}
|
|
|
|
type Torrent struct {
|
|
MagnetURI string `koanf:"magnet_uri,omitempty"`
|
|
TorrentPath string `koanf:"torrent_path,omitempty"`
|
|
}
|
|
|
|
type Mounts struct {
|
|
WebDAV WebDAV `koanf:"webdav"`
|
|
HttpFs HttpFs `koanf:"httpfs"`
|
|
Fuse Fuse `koanf:"fuse"`
|
|
NFS NFS `koanf:"nfs"`
|
|
}
|
|
|
|
type NFS struct {
|
|
Enabled bool `koanf:"enabled"`
|
|
Port int `koanf:"port"`
|
|
CachePath string `koanf:"cache_path"`
|
|
}
|
|
|
|
type HttpFs struct {
|
|
Enabled bool `koanf:"enabled"`
|
|
Port int `koanf:"port"`
|
|
}
|
|
|
|
type WebDAV struct {
|
|
Enabled bool `koanf:"enabled"`
|
|
Port int `koanf:"port"`
|
|
User string `koanf:"user"`
|
|
Pass string `koanf:"pass"`
|
|
}
|
|
|
|
type Fuse struct {
|
|
Enabled bool `koanf:"enabled"`
|
|
AllowOther bool `koanf:"allow_other,omitempty"`
|
|
Path string `koanf:"path"`
|
|
}
|