forked from tangled.org/core
this repo has no description
at oauth 1.6 kB view raw
1package appview 2 3import ( 4 "context" 5 6 "github.com/sethvargo/go-envconfig" 7) 8 9type CoreConfig struct { 10 CookieSecret string `env:"COOKIE_SECRET, default=00000000000000000000000000000000"` 11 DbPath string `env:"DB_PATH, default=appview.db"` 12 ListenAddr string `env:"LISTEN_ADDR, default=0.0.0.0:3000"` 13 AppviewHost string `env:"APPVIEW_HOST, default=https://tangled.sh"` 14 Dev bool `env:"DEV, default=false"` 15} 16 17type OAuthConfig struct { 18 Jwks string `env:"JWKS"` 19 ServerMetadataUrl string `env:"SERVER_METADATA_URL"` 20} 21 22type JetstreamConfig struct { 23 Endpoint string `env:"ENDPOINT, default=wss://jetstream1.us-east.bsky.network/subscribe"` 24} 25 26type ResendConfig struct { 27 ApiKey string `env:"API_KEY"` 28} 29 30type CamoConfig struct { 31 Host string `env:"HOST, default=https://camo.tangled.sh"` 32 SharedSecret string `env:"SHARED_SECRET"` 33} 34 35type AvatarConfig struct { 36 Host string `env:"HOST, default=https://avatar.tangled.sh"` 37 SharedSecret string `env:"SHARED_SECRET"` 38} 39 40type Config struct { 41 Core CoreConfig `env:",prefix=TANGLED_"` 42 Jetstream JetstreamConfig `env:",prefix=TANGLED_JETSTREAM_"` 43 Resend ResendConfig `env:",prefix=TANGLED_RESEND_"` 44 Camo CamoConfig `env:",prefix=TANGLED_CAMO_"` 45 Avatar AvatarConfig `env:",prefix=TANGLED_AVATAR_"` 46 OAuth OAuthConfig `env:",prefix=TANGLED_OAUTH_"` 47} 48 49func LoadConfig(ctx context.Context) (*Config, error) { 50 var cfg Config 51 err := envconfig.Process(ctx, &cfg) 52 if err != nil { 53 return nil, err 54 } 55 56 return &cfg, nil 57}