diff --git a/.gitignore b/.gitignore index 958ec78..5b8833a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.dll *.so *.dylib +.idea/* # Test binary, build with `go test -c` *.test @@ -20,7 +21,7 @@ /logs/* # ignore configuration file -/config.json +/config.yml # Ignore Vagrant stuff /.vagrant diff --git a/api/_testdata/config.json b/api/_testdata/config.json deleted file mode 100644 index 327c993..0000000 --- a/api/_testdata/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "authKeys": [ - "existingkey" - ] -} diff --git a/api/_testdata/config.yml b/api/_testdata/config.yml new file mode 100644 index 0000000..2d04127 --- /dev/null +++ b/api/_testdata/config.yml @@ -0,0 +1 @@ +authKey: 'existingkey' diff --git a/api/auth_test.go b/api/auth_test.go index 086f4a0..c66e868 100644 --- a/api/auth_test.go +++ b/api/auth_test.go @@ -12,7 +12,7 @@ import ( "github.com/Pterodactyl/wings/control" ) -const configFile = "_testdata/config.json" +const configFile = "_testdata/config.yml" func TestAuthHandler(t *testing.T) { gin.SetMode(gin.ReleaseMode) diff --git a/api/routes_server.go b/api/routes_server.go index 955527a..9fa4e8c 100644 --- a/api/routes_server.go +++ b/api/routes_server.go @@ -7,7 +7,7 @@ func (api *API) registerServerRoutes() { api.router.POST("/servers", AuthHandler("c:create"), handlePostServers) api.router.GET("/servers/:server", AuthHandler("s:get"), handleGetServer) api.router.PATCH("/servers/:server", AuthHandler("s:config"), handlePatchServer) - api.router.DELETE("/servers/:server", AuthHandler("g:server:delete"), handleDeleteServer) + //api.router.DELETE("/servers/:server", AuthHandler("g:server:delete"), handleDeleteServer) api.router.POST("/servers/:server/reinstall", AuthHandler("s:install-server"), handlePostServerReinstall) api.router.POST("/servers/:server/rebuild", AuthHandler("g:server:rebuild"), handlePostServerRebuild) diff --git a/command/root.go b/command/root.go index ba4d945..148bfc3 100644 --- a/command/root.go +++ b/command/root.go @@ -20,7 +20,7 @@ var RootCommand = &cobra.Command{ var configPath string func init() { - RootCommand.Flags().StringVarP(&configPath, "config", "c", "./config.json", "Allows to set the path of the configuration file.") + RootCommand.Flags().StringVarP(&configPath, "config", "c", "./config.yml", "Allows to set the path of the configuration file.") } // Execute registers the RootCommand diff --git a/config.example.json b/config.example.json index 2ec2f77..195d48f 100644 --- a/config.example.json +++ b/config.example.json @@ -34,7 +34,5 @@ "level": "info", "deleteAfterDays": 100 }, - "authKeys": [ - "somekey" - ] + "authKey": "somekey" } diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..4c4d1a0 --- /dev/null +++ b/config.yml @@ -0,0 +1,28 @@ +debug: true +data: '/srv/daemon-data' +api: + host: '0.0.0.0' + port: 8080 + ssl: + enabled: false + cert: '' + key: '' + uploads: + maximumSize: 150000000 +docker: + socket: '/var/run/docker.sock' + autoupdateImages: true + networkInterface: '172.18.0.1' + timezonePath: '/etc/timezone' +sftp: + host: '0.0.0.0' + port: 2022 +query: + killOnFail: false + failLimit: 5 +remote: 'http://pterodactyl.app' +log: + path: './logs/' + level: 'debug' + deleteAfterDays: 10 +authKey: 'test123' diff --git a/config.yml.example b/config.yml.example new file mode 100644 index 0000000..a170504 --- /dev/null +++ b/config.yml.example @@ -0,0 +1,28 @@ +debug: false +data: '/srv/daemon-data' +api: + host: '0.0.0.0' + port: 8080 + ssl: + enabled: false + cert: '' + key: '' + uploads: + maximumSize: 150000000 +docker: + socket: '/var/run/docker.sock' + autoupdateImages: true + networkInterface: '172.18.0.1' + timezonePath: '/etc/timezone' +sftp: + host: '0.0.0.0' + port: 2022 +query: + killOnFail: true + failLimit: 5 +remote: 'http://example.com' +log: + path: './logs/' + level: 'info' + deleteAfterDays: 10 +authKey: 'test123' diff --git a/config/config.go b/config/config.go index 47bef4a..7635697 100644 --- a/config/config.go +++ b/config/config.go @@ -10,6 +10,7 @@ func LoadConfiguration(path string) error { viper.SetConfigFile(path) } else { viper.AddConfigPath("./") + viper.SetConfigType("yaml") viper.SetConfigName("config") } @@ -49,7 +50,7 @@ func setDefaults() { // ContainsAuthKey checks wether the config contains a specified authentication key func ContainsAuthKey(key string) bool { - for _, k := range viper.GetStringSlice(AuthKeys) { + for _, k := range viper.GetStringSlice(AuthKey) { if k == key { return true } diff --git a/config/config_test.go b/config/config_test.go index 3a89d1f..1773208 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/assert" ) -const configFile = "../config.example.json" +const configFile = "../config.yml.example" func TestLoadConfiguraiton(t *testing.T) { err := LoadConfiguration(configFile) diff --git a/config/keys.go b/config/keys.go index 5764edb..fcf6304 100644 --- a/config/keys.go +++ b/config/keys.go @@ -21,7 +21,7 @@ const ( SSLGenerateLetsencrypt = "api.ssl.letsencrypt" // SSLCertificate is a string containing the location of // a ssl certificate to use - SSLCertificate = "api.ssl.certificate" + SSLCertificate = "api.ssl.cert" // SSLKey is a string containing the location of the key // for the ssl certificate SSLKey = "api.ssl.key" @@ -61,6 +61,6 @@ const ( // logs should be stored. They will be deleted after. If set to 0 // logs will be stored indefinitely. LogDeleteAfterDays = "log.deleteAfterDays" - // AuthKeys contains an array of auth keys that will be replaced by something better - AuthKeys = "authkeys" + // AuthKey contains a key that will be replaced by something better + AuthKey = "authKey" ) diff --git a/tools/logging.go b/tools/logging.go index 24ea9b1..f7183ef 100644 --- a/tools/logging.go +++ b/tools/logging.go @@ -3,7 +3,7 @@ package tools import ( "time" - rotatelogs "github.com/lestrrat/go-file-rotatelogs" + "github.com/lestrrat/go-file-rotatelogs" "github.com/rifflock/lfshook" log "github.com/sirupsen/logrus" "github.com/spf13/viper"