feat: initial commit
This commit is contained in:
@ -1,25 +1,20 @@
|
||||
package config
|
||||
|
||||
type Auth struct {
|
||||
DefaultAdmin DefaultAdmin `envPrefix:"DEFAULT_ADMIN_"`
|
||||
Providers AuthProviders `envPrefix:"PROVIDERS_"`
|
||||
}
|
||||
|
||||
type DefaultAdmin struct {
|
||||
Email string `env:"EMAIL,expand"`
|
||||
Provider string `env:"PROVIDER,expand"`
|
||||
Providers AuthProviders `envPrefix:"PROVIDERS_"`
|
||||
}
|
||||
|
||||
type AuthProviders struct {
|
||||
Google OAuth2Provider `envPrefix:"GOOGLE_"`
|
||||
Github OAuth2Provider `envPrefix:"GITHUB_"`
|
||||
Gitea GiteaProvider `envPrefix:"GITEA_"`
|
||||
OIDC OIDCProvider `envPrefix:"OIDC_"`
|
||||
}
|
||||
|
||||
type OAuth2Provider struct {
|
||||
Key string `env:"KEY,expand"`
|
||||
Secret string `env:"SECRET,expand"`
|
||||
Scopes []string `env:"SCOPES",expand"`
|
||||
Scopes []string `env:"SCOPES,expand"`
|
||||
}
|
||||
|
||||
type OIDCProvider struct {
|
||||
@ -28,3 +23,11 @@ type OIDCProvider struct {
|
||||
Icon string `env:"ICON,expand" envDefault:"fa-passport"`
|
||||
Label string `env:"LABEL,expand" envDefault:"OpenID Connect"`
|
||||
}
|
||||
|
||||
type GiteaProvider struct {
|
||||
OAuth2Provider
|
||||
TokenURL string `env:"TOKEN_URL,expand"`
|
||||
AuthURL string `env:"AUTH_URL,expand"`
|
||||
ProfileURL string `env:"PROFILE_URL,expand"`
|
||||
Label string `env:"LABEL,expand" envDefault:"Gitea"`
|
||||
}
|
||||
|
@ -6,11 +6,10 @@ import (
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Logger Logger `envPrefix:"LOGGER_"`
|
||||
Auth Auth `envPrefix:"AUTH_"`
|
||||
HTTP HTTP `envPrefix:"HTTP_"`
|
||||
Storage Storage `envPrefix:"STORAGE_"`
|
||||
LLM LLM `envPrefix:"LLM_"`
|
||||
Logger Logger `envPrefix:"LOGGER_"`
|
||||
Auth Auth `envPrefix:"AUTH_"`
|
||||
HTTP HTTP `envPrefix:"HTTP_"`
|
||||
LLM LLM `envPrefix:"LLM_"`
|
||||
}
|
||||
|
||||
func Parse() (*Config, error) {
|
||||
|
@ -3,8 +3,8 @@ package config
|
||||
import "time"
|
||||
|
||||
type HTTP struct {
|
||||
BaseURL string `env:"BASE_URL" envDefault:"http://localhost:3000"`
|
||||
Address string `env:"ADDRESS,expand" envDefault:":3000"`
|
||||
BaseURL string `env:"BASE_URL" envDefault:"http://localhost:3001"`
|
||||
Address string `env:"ADDRESS,expand" envDefault:":3001"`
|
||||
Session Session `envPrefix:"SESSION_"`
|
||||
}
|
||||
|
||||
|
@ -1,19 +0,0 @@
|
||||
package config
|
||||
|
||||
type Storage struct {
|
||||
Database Database `envPrefix:"DATABASE_"`
|
||||
Object Object `envPrefix:"OBJECT_"`
|
||||
}
|
||||
|
||||
type Database struct {
|
||||
DSN string `env:"DSN" envDefault:"sqlite://data.sqlite"`
|
||||
}
|
||||
|
||||
type Object struct {
|
||||
DSN string `env:"DSN" envDefault:"sqlite://data.sqlite"`
|
||||
Encryption Encryption `envPrefix:"ENCRYPTION_"`
|
||||
}
|
||||
|
||||
type Encryption struct {
|
||||
Key string `env:"KEY,unset"`
|
||||
}
|
Reference in New Issue
Block a user