forked from tangled.org/core
this repo has no description
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} 20 21type JetstreamConfig struct { 22 Endpoint string `env:"ENDPOINT, default=wss://jetstream1.us-east.bsky.network/subscribe"` 23} 24 25type ResendConfig struct { 26 ApiKey string `env:"API_KEY"` 27} 28 29type CamoConfig struct { 30 Host string `env:"HOST, default=https://camo.tangled.sh"` 31 SharedSecret string `env:"SHARED_SECRET"` 32} 33 34type AvatarConfig struct { 35 Host string `env:"HOST, default=https://avatar.tangled.sh"` 36 SharedSecret string `env:"SHARED_SECRET"` 37} 38 39type PosthogConfig struct { 40 ApiKey string `env:"API_KEY"` 41 Endpoint string `env:"ENDPOINT, default=https://eu.i.posthog.com"` 42} 43 44type Config struct { 45 Core CoreConfig `env:",prefix=TANGLED_"` 46 Jetstream JetstreamConfig `env:",prefix=TANGLED_JETSTREAM_"` 47 Resend ResendConfig `env:",prefix=TANGLED_RESEND_"` 48 Posthog PosthogConfig `env:",prefix=TANGLED_POSTHOG_"` 49 Camo CamoConfig `env:",prefix=TANGLED_CAMO_"` 50 Avatar AvatarConfig `env:",prefix=TANGLED_AVATAR_"` 51 OAuth OAuthConfig `env:",prefix=TANGLED_OAUTH_"` 52} 53 54func LoadConfig(ctx context.Context) (*Config, error) { 55 var cfg Config 56 err := envconfig.Process(ctx, &cfg) 57 if err != nil { 58 return nil, err 59 } 60 61 return &cfg, nil 62}