diff --git a/.gitignore b/.gitignore
index 57c87e13ef2d33c4f526de9c2b3549362f0f1b41..04a48f5fc85934da2693d654e1c2f771f4026ffe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,7 @@
 /pkg
 /logs
 
-media-repo.yaml
+media-repo*.yaml
 homeserver.yaml
 
 vendor/pkg
diff --git a/src/github.com/turt2live/matrix-media-repo/cmd/media_repo/main.go b/src/github.com/turt2live/matrix-media-repo/cmd/media_repo/main.go
index a7b7c22eab450691753666f77a45e3e9ff0d658d..bd55508b9fa8119a0b31ffe0e53da9f277d3368d 100644
--- a/src/github.com/turt2live/matrix-media-repo/cmd/media_repo/main.go
+++ b/src/github.com/turt2live/matrix-media-repo/cmd/media_repo/main.go
@@ -2,6 +2,7 @@ package main
 
 import (
 	"encoding/json"
+	"flag"
 	"fmt"
 	"io"
 	"net/http"
@@ -43,6 +44,11 @@ type ApiRoute struct {
 type EmptyResponse struct{}
 
 func main() {
+	configPath := flag.String("config", "media-repo.yaml", "The path to the configuration")
+	flag.Parse()
+
+	config.Path = *configPath
+
 	rtr := mux.NewRouter()
 
 	err := logging.Setup(config.Get().General.LogDirectory)
diff --git a/src/github.com/turt2live/matrix-media-repo/config/config.go b/src/github.com/turt2live/matrix-media-repo/config/config.go
index 2c7c9c5d7f9f7bfa13224513a35ae7abcc2f30b9..58c5e2cd1ac08af0d4202283396caf1e91234eea 100644
--- a/src/github.com/turt2live/matrix-media-repo/config/config.go
+++ b/src/github.com/turt2live/matrix-media-repo/config/config.go
@@ -71,11 +71,12 @@ type MediaRepoConfig struct {
 
 var instance *MediaRepoConfig
 var singletonLock = &sync.Once{}
+var Path = "media-repo.yaml"
 
-func LoadConfig() (error) {
+func ReloadConfig() (error) {
 	c := &MediaRepoConfig{}
 
-	f, err := os.Open("media-repo.yaml")
+	f, err := os.Open(Path)
 	if err != nil {
 		return err
 	}
@@ -95,7 +96,7 @@ func LoadConfig() (error) {
 func Get() (*MediaRepoConfig) {
 	if instance == nil {
 		singletonLock.Do(func() {
-			err := LoadConfig()
+			err := ReloadConfig()
 			if err != nil {
 				panic(err)
 			}