1
0
mirror of https://github.com/pocket-id/pocket-id.git synced 2026-02-15 06:25:14 +00:00

Merge branch 'main' into v2

This commit is contained in:
Elias Schneider
2025-11-17 08:39:36 +01:00
38 changed files with 1553 additions and 276 deletions

View File

@@ -15,6 +15,7 @@ import (
_ "github.com/joho/godotenv/autoload"
)
type AppEnv string
type DbProvider string
const (
@@ -25,6 +26,9 @@ const (
)
const (
AppEnvProduction AppEnv = "production"
AppEnvDevelopment AppEnv = "development"
AppEnvTest AppEnv = "test"
DbProviderSqlite DbProvider = "sqlite"
DbProviderPostgres DbProvider = "postgres"
MaxMindGeoLiteCityUrl string = "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=%s&suffix=tar.gz"
@@ -34,7 +38,7 @@ const (
)
type EnvConfigSchema struct {
AppEnv string `env:"APP_ENV" options:"toLower"`
AppEnv AppEnv `env:"APP_ENV" options:"toLower"`
LogLevel string `env:"LOG_LEVEL" options:"toLower"`
AppURL string `env:"APP_URL" options:"toLower,trimTrailingSlash"`
DbProvider DbProvider `env:"DB_PROVIDER" options:"toLower"`
@@ -78,7 +82,7 @@ func init() {
func defaultConfig() EnvConfigSchema {
return EnvConfigSchema{
AppEnv: "production",
AppEnv: AppEnvProduction,
LogLevel: "info",
DbProvider: "sqlite",
FileBackend: "fs",
@@ -158,13 +162,13 @@ func ValidateEnvConfig(config *EnvConfigSchema) error {
}
switch config.FileBackend {
case "s3":
case "s3", "database":
case "", "fs":
if config.UploadPath == "" {
config.UploadPath = defaultFsUploadPath
}
default:
return errors.New("invalid FILE_BACKEND value. Must be 'fs' or 's3'")
return errors.New("invalid FILE_BACKEND value. Must be 'fs', 'database', or 's3'")
}
// Validate LOCAL_IPV6_RANGES
@@ -265,3 +269,11 @@ func resolveFileBasedEnvVariable(field reflect.Value, fieldType reflect.StructFi
return nil
}
func (a AppEnv) IsProduction() bool {
return a == AppEnvProduction
}
func (a AppEnv) IsTest() bool {
return a == AppEnvTest
}