diff --git a/workhorse/internal/config/config.go b/workhorse/internal/config/config.go
index 562ea05bfd0bba42a2dd6d23e891c78faffa0b48..c3b55c2a6e5a5854e72a953b8fad67f9a2803d34 100644
--- a/workhorse/internal/config/config.go
+++ b/workhorse/internal/config/config.go
@@ -162,6 +162,20 @@ func NewDefaultConfig() *Config {
 	}
 }
 
+func LoadConfigFromFile(file *string) (*Config, error) {
+	tomlData := ""
+
+	if *file != "" {
+		buf, err := os.ReadFile(*file)
+		if err != nil {
+			return nil, fmt.Errorf("file: %v", err)
+		}
+		tomlData = string(buf)
+	}
+
+	return LoadConfig(tomlData)
+}
+
 func LoadConfig(data string) (*Config, error) {
 	cfg := NewDefaultConfig()
 
diff --git a/workhorse/internal/config/config_test.go b/workhorse/internal/config/config_test.go
index d3f000217254afd72841141f79ddab09920c455f..6127a5aae550caf0db2ada6bc54d8f3f3918d1a7 100644
--- a/workhorse/internal/config/config_test.go
+++ b/workhorse/internal/config/config_test.go
@@ -1,6 +1,7 @@
 package config
 
 import (
+	"os"
 	"path/filepath"
 	"testing"
 
@@ -196,3 +197,30 @@ func TestDefaultConfig(t *testing.T) {
 
 	require.Equal(t, uint64(250000), cfg.ImageResizerConfig.MaxFilesize)
 }
+
+func TestLoadConfigFromFile(t *testing.T) {
+	config := `
+[image_resizer]
+max_filesize = 350000
+`
+
+	fileName := createTempFile(t, []byte(config))
+
+	cfg, err := LoadConfigFromFile(&fileName)
+	require.NoError(t, err)
+
+	require.Equal(t, uint64(350000), cfg.ImageResizerConfig.MaxFilesize)
+}
+
+func createTempFile(t *testing.T, contents []byte) string {
+	t.Helper()
+
+	tmpFile, err := os.CreateTemp(t.TempDir(), "config.toml")
+	require.NoError(t, err)
+	defer tmpFile.Close()
+
+	_, err = tmpFile.Write(contents)
+	require.NoError(t, err)
+
+	return tmpFile.Name()
+}
diff --git a/workhorse/main.go b/workhorse/main.go
index 0c470d36e3e30cfd15fdcab57b3c0e3a48af6dfd..4d14d60df92da5fe0934cd3b2ae93c024b45ba37 100644
--- a/workhorse/main.go
+++ b/workhorse/main.go
@@ -138,16 +138,7 @@ func buildConfig(arg0 string, args []string) (*bootConfig, *config.Config, error
 		cfg.CableBackend = cfg.Backend
 	}
 
-	tomlData := ""
-	if *configFile != "" {
-		buf, err := os.ReadFile(*configFile)
-		if err != nil {
-			return nil, nil, fmt.Errorf("configFile: %v", err)
-		}
-		tomlData = string(buf)
-	}
-
-	cfgFromFile, err := config.LoadConfig(tomlData)
+	cfgFromFile, err := config.LoadConfigFromFile(configFile)
 	if err != nil {
 		return nil, nil, fmt.Errorf("configFile: %v", err)
 	}