backend/models/config.go
ACoolName 8ac960102a
Some checks failed
Build and Push Docker Image / Build image (push) Has been cancelled
fixed initial user
2025-04-09 03:15:38 +03:00

106 lines
3.2 KiB
Go

package models
type InitialUserConfig struct {
Email string `yaml:"email"`
}
type EmailConfig struct {
FromEmail string `yaml:"from_email"`
Username string `yaml:"username"`
Password string `yaml:"password"`
Server string `yaml:"server"`
}
type SigningConfig struct {
Key string `yaml:"key"`
Algorithm string `yaml:"algorithm"`
}
type MongoDBConfig struct {
Url string `yaml:"url"`
Username string `yaml:"username"`
Password string `yaml:"password"`
Database string `yaml:"database"`
Collection string `yaml:"collection"`
}
type OidcAuthConfig struct {
IssuerUrl string `yaml:"issuer_url"`
ClientId string `yaml:"client_id"`
ClientSecret string `yaml:"client_secret"`
}
type InviteTokenDatabaseConfig struct {
Type DatabaseType `yaml:"type"`
Mongo *MongoDBConfig `yaml:"mongo"`
}
type UserPassAuthConfig struct {
Type DatabaseType `yaml:"type"`
Mongo *MongoDBConfig `yaml:"mongo"`
InviteTokenDatabase InviteTokenDatabaseConfig `yaml:"invite_token_database"`
InitialUser *InitialUserConfig `yaml:"initial_user"`
}
type AuthenticationConfig struct {
Type AuthMode `yaml:"type"`
NOidc OidcAuthConfig `yaml:"oidc"`
UserPass UserPassAuthConfig `yaml:"user_pass"`
}
type DockerReverseProxyConfig struct {
Middlewares []string `yaml:"middlewares"`
Entrypoint string `yaml:"entrypoint"`
Tls bool `yaml:"tls"`
TlsResolver string `yaml:"tls_resolver"`
}
type FileBrowserConfig struct {
Image Image `yaml:"image"`
Command string `yaml:"command"`
Network string `yaml:"network"`
ReverseProxy DockerReverseProxyConfig `yaml:"reverse_proxy"`
}
type DockerInstanceManagerConfig struct {
FileBrowser FileBrowserConfig `yaml:"file_browser"`
}
type KubernetesInstanceManagerConfig struct {
Namespace string `yaml:"namespace"`
}
type InstanceManagerConfig struct {
Type InstanceManagerType `yaml:"type"`
Docker *DockerInstanceManagerConfig `yaml:"docker"`
Kubernetes *KubernetesInstanceManagerConfig `yaml:"kubernetes"`
}
type ServersDatabaseConfig struct {
Type DatabaseType `yaml:"type"`
Mongo *MongoDBConfig `yaml:"mongo"`
}
type ServersAuthorizationDatabaseConfig struct {
Type DatabaseType `yaml:"type"`
Mongo *MongoDBConfig `yaml:"mongo"`
}
type UsersConfig struct {
DefaultMaxOwnedServers uint `yaml:"default_max_owned_servers"`
}
type GlobalConfig struct {
// Features Configs
Email EmailConfig `yaml:"email"`
Domain string `yaml:"domain"`
Signing SigningConfig `yaml:"signing"`
Authentication AuthenticationConfig `yaml:"authentication"`
InstanceManager InstanceManagerConfig `yaml:"instancemanager"`
Users UsersConfig `yaml:"users"`
// Database Configs
ServersDatabase ServersDatabaseConfig `yaml:"servers_database"`
ServersAuthorizationDatabase ServersAuthorizationDatabaseConfig `yaml:"servers_authorization_database"`
}