diff --git a/cmd/admin/main.go b/cmd/admin/main.go index 15e9d54..431411a 100644 --- a/cmd/admin/main.go +++ b/cmd/admin/main.go @@ -8,6 +8,7 @@ import ( "log" "os" + "git.keircn.com/keiran/termcloud/internal/config" "git.keircn.com/keiran/termcloud/internal/db" ) @@ -29,13 +30,15 @@ func main() { } ctx := context.Background() - pool, err := db.NewPool(ctx) + cfg := config.Load() + + pool, err := db.NewPool(ctx, cfg) if err != nil { log.Fatalf("Failed to create database pool: %v", err) } defer db.ClosePool(pool) - bucketService := db.NewBucketService(pool) + bucketService := db.NewBucketService(pool, cfg) switch os.Args[1] { case "create-user": @@ -46,7 +49,7 @@ func main() { username := os.Args[2] email := os.Args[3] - storageLimit := int64(1) * 1024 * 1024 * 1024 + storageLimit := cfg.DefaultStorageLimit if len(os.Args) >= 5 { var limitGB int64 diff --git a/cmd/termcloud/main.go b/cmd/termcloud/main.go index b4e5747..cea881e 100644 --- a/cmd/termcloud/main.go +++ b/cmd/termcloud/main.go @@ -2,9 +2,10 @@ package main import ( "context" + "fmt" "log" - "os" + "git.keircn.com/keiran/termcloud/internal/config" "git.keircn.com/keiran/termcloud/internal/db" "git.keircn.com/keiran/termcloud/internal/handlers" "github.com/labstack/echo/v4" @@ -14,30 +15,31 @@ import ( func main() { ctx := context.Background() + cfg := config.Load() - pool, err := db.NewPool(ctx) + pool, err := db.NewPool(ctx, cfg) if err != nil { log.Fatalf("Failed to create database pool: %v", err) } defer db.ClosePool(pool) - bucketService := db.NewBucketService(pool) + bucketService := db.NewBucketService(pool, cfg) h := handlers.NewHandlers(bucketService) e := echo.New() - e.Use(middleware.BodyLimit("100M")) + e.Use(middleware.BodyLimit(fmt.Sprintf("%dM", cfg.MaxFileSize/1024/1024))) e.Use(middleware.CORSWithConfig(middleware.CORSConfig{ - AllowOrigins: []string{"*"}, + AllowOrigins: cfg.CORSOrigins, AllowMethods: []string{echo.GET, echo.POST, echo.PUT, echo.DELETE}, AllowHeaders: []string{"*"}, })) e.Use(middleware.GzipWithConfig(middleware.GzipConfig{ - Level: 5, + Level: cfg.GzipLevel, })) - e.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(rate.Limit(20)))) + e.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(rate.Limit(cfg.RateLimit)))) - e.Static("/storage", "storage") + e.Static("/storage", cfg.StorageDir) e.GET("/", h.RootHandler) @@ -53,10 +55,5 @@ func main() { api.GET("/buckets/:bucket/objects/*", h.GetObjectHandler) api.DELETE("/buckets/:bucket/objects/*", h.DeleteObjectHandler) - port := os.Getenv("PORT") - if port == "" { - port = "8080" - } - - e.Logger.Fatal(e.Start(":" + port)) + e.Logger.Fatal(e.Start(":" + cfg.Port)) }