Add Grafana service configuration and update service templates
This commit is contained in:
		@@ -102,6 +102,29 @@ class Service extends BaseModel
 | 
				
			|||||||
        foreach ($applications as $application) {
 | 
					        foreach ($applications as $application) {
 | 
				
			||||||
            $image = str($application->image)->before(':')->value();
 | 
					            $image = str($application->image)->before(':')->value();
 | 
				
			||||||
            switch ($image) {
 | 
					            switch ($image) {
 | 
				
			||||||
 | 
					                case str($image)?->contains('grafana'):
 | 
				
			||||||
 | 
					                    $data = collect([]);
 | 
				
			||||||
 | 
					                    $admin_password = $this->environment_variables()->where('key', 'SERVICE_PASSWORD_GRAFANA')->first();
 | 
				
			||||||
 | 
					                    $data = $data->merge([
 | 
				
			||||||
 | 
					                        'Admin User' => [
 | 
				
			||||||
 | 
					                            'key' => 'GF_SECURITY_ADMIN_USER',
 | 
				
			||||||
 | 
					                            'value' => 'admin',
 | 
				
			||||||
 | 
					                            'readonly' => true,
 | 
				
			||||||
 | 
					                            'rules' => 'required',
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                    ]);
 | 
				
			||||||
 | 
					                    if ($admin_password) {
 | 
				
			||||||
 | 
					                        $data = $data->merge([
 | 
				
			||||||
 | 
					                            'Admin Password' => [
 | 
				
			||||||
 | 
					                                'key' => 'GF_SECURITY_ADMIN_PASSWORD',
 | 
				
			||||||
 | 
					                                'value' => data_get($admin_password, 'value'),
 | 
				
			||||||
 | 
					                                'rules' => 'required',
 | 
				
			||||||
 | 
					                                'isPassword' => true,
 | 
				
			||||||
 | 
					                            ],
 | 
				
			||||||
 | 
					                        ]);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    $fields->put('Grafana', $data);
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
                case str($image)?->contains('directus'):
 | 
					                case str($image)?->contains('directus'):
 | 
				
			||||||
                    $data = collect([]);
 | 
					                    $data = collect([]);
 | 
				
			||||||
                    $admin_email = $this->environment_variables()->where('key', 'ADMIN_EMAIL')->first();
 | 
					                    $admin_email = $this->environment_variables()->where('key', 'ADMIN_EMAIL')->first();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -338,7 +338,7 @@
 | 
				
			|||||||
    "grafana-with-postgresql": {
 | 
					    "grafana-with-postgresql": {
 | 
				
			||||||
        "documentation": "https:\/\/grafana.com",
 | 
					        "documentation": "https:\/\/grafana.com",
 | 
				
			||||||
        "slogan": "Grafana is the open source analytics & monitoring solution for every database.",
 | 
					        "slogan": "Grafana is the open source analytics & monitoring solution for every database.",
 | 
				
			||||||
        "compose": "c2VydmljZXM6CiAgZ3JhZmFuYToKICAgIGltYWdlOiBncmFmYW5hL2dyYWZhbmEtb3NzCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fR1JBRkFOQQogICAgICAtICdHRl9TRVJWRVJfUk9PVF9VUkw9JHtTRVJWSUNFX0ZRRE5fR1JBRkFOQX0nCiAgICAgIC0gJ0dGX1NFUlZFUl9ET01BSU49JHtTRVJWSUNFX0ZRRE5fR1JBRkFOQX0nCiAgICAgIC0gJ0dGX1NFQ1VSSVRZX0FETUlOX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9HUkFGQU5BfScKICAgICAgLSBHRl9EQVRBQkFTRV9UWVBFPXBvc3RncmVzCiAgICAgIC0gR0ZfREFUQUJBU0VfSE9TVD1wb3N0Z3Jlc3FsCiAgICAgIC0gR0ZfREFUQUJBU0VfVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTCiAgICAgIC0gR0ZfREFUQUJBU0VfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVMKICAgICAgLSAnR0ZfREFUQUJBU0VfTkFNRT0ke1BPU1RHUkVTX0RCOi1ncmFmYW5hfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2dyYWZhbmEtZGF0YTovdmFyL2xpYi9ncmFmYW5hJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL2hlYWx0aCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAogICAgZGVwZW5kc19vbjoKICAgICAgLSBwb3N0Z3Jlc3FsCiAgcG9zdGdyZXNxbDoKICAgIGltYWdlOiAncG9zdGdyZXM6MTYtYWxwaW5lJwogICAgdm9sdW1lczoKICAgICAgLSAncG9zdGdyZXNxbC1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX1VTRVI9JFNFUlZJQ0VfVVNFUl9QT1NUR1JFUwogICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPSRTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNfREI6LWdyYWZhbmF9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=",
 | 
					        "compose": "c2VydmljZXM6CiAgZ3JhZmFuYToKICAgIGltYWdlOiBncmFmYW5hL2dyYWZhbmEtb3NzCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fR1JBRkFOQV8zMDAwCiAgICAgIC0gJ0dGX1NFUlZFUl9ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9HUkFGQU5BfScKICAgICAgLSAnR0ZfU0VSVkVSX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9HUkFGQU5BfScKICAgICAgLSAnR0ZfU0VDVVJJVFlfQURNSU5fUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX0dSQUZBTkF9JwogICAgICAtIEdGX0RBVEFCQVNFX1RZUEU9cG9zdGdyZXMKICAgICAgLSBHRl9EQVRBQkFTRV9IT1NUPXBvc3RncmVzcWwKICAgICAgLSBHRl9EQVRBQkFTRV9VU0VSPSRTRVJWSUNFX1VTRVJfUE9TVEdSRVMKICAgICAgLSBHRl9EQVRBQkFTRV9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFUwogICAgICAtICdHRl9EQVRBQkFTRV9OQU1FPSR7UE9TVEdSRVNfREI6LWdyYWZhbmF9JwogICAgdm9sdW1lczoKICAgICAgLSAnZ3JhZmFuYS1kYXRhOi92YXIvbGliL2dyYWZhbmEnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvaGVhbHRoJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCiAgICBkZXBlbmRzX29uOgogICAgICAtIHBvc3RncmVzcWwKICBwb3N0Z3Jlc3FsOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNi1hbHBpbmUnCiAgICB2b2x1bWVzOgogICAgICAtICdwb3N0Z3Jlc3FsLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUE9TVEdSRVNfVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTCiAgICAgIC0gUE9TVEdSRVNfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVMKICAgICAgLSAnUE9TVEdSRVNfREI9JHtQT1NUR1JFU19EQjotZ3JhZmFuYX0nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ3BnX2lzcmVhZHkgLVUgJCR7UE9TVEdSRVNfVVNFUn0gLWQgJCR7UE9TVEdSRVNfREJ9JwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==",
 | 
				
			||||||
        "tags": [
 | 
					        "tags": [
 | 
				
			||||||
            "grafana",
 | 
					            "grafana",
 | 
				
			||||||
            "analytics",
 | 
					            "analytics",
 | 
				
			||||||
@@ -346,12 +346,13 @@
 | 
				
			|||||||
            "dashboard"
 | 
					            "dashboard"
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "logo": "svgs\/grafana.svg",
 | 
					        "logo": "svgs\/grafana.svg",
 | 
				
			||||||
        "minversion": "0.0.0"
 | 
					        "minversion": "0.0.0",
 | 
				
			||||||
 | 
					        "port": "3000"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "grafana": {
 | 
					    "grafana": {
 | 
				
			||||||
        "documentation": "https:\/\/grafana.com",
 | 
					        "documentation": "https:\/\/grafana.com",
 | 
				
			||||||
        "slogan": "Grafana is the open source analytics & monitoring solution for every database.",
 | 
					        "slogan": "Grafana is the open source analytics & monitoring solution for every database.",
 | 
				
			||||||
        "compose": "c2VydmljZXM6CiAgZ3JhZmFuYToKICAgIGltYWdlOiBncmFmYW5hL2dyYWZhbmEtb3NzCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fR1JBRkFOQQogICAgICAtICdHRl9TRVJWRVJfUk9PVF9VUkw9JHtTRVJWSUNFX0ZRRE5fR1JBRkFOQX0nCiAgICAgIC0gJ0dGX1NFUlZFUl9ET01BSU49JHtTRVJWSUNFX0ZRRE5fR1JBRkFOQX0nCiAgICAgIC0gJ0dGX1NFQ1VSSVRZX0FETUlOX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9HUkFGQU5BfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2dyYWZhbmEtZGF0YTovdmFyL2xpYi9ncmFmYW5hJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL2hlYWx0aCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=",
 | 
					        "compose": "c2VydmljZXM6CiAgZ3JhZmFuYToKICAgIGltYWdlOiBncmFmYW5hL2dyYWZhbmEtb3NzCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fR1JBRkFOQV8zMDAwCiAgICAgIC0gJ0dGX1NFUlZFUl9ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9HUkFGQU5BfScKICAgICAgLSAnR0ZfU0VSVkVSX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9HUkFGQU5BfScKICAgICAgLSAnR0ZfU0VDVVJJVFlfQURNSU5fUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX0dSQUZBTkF9JwogICAgdm9sdW1lczoKICAgICAgLSAnZ3JhZmFuYS1kYXRhOi92YXIvbGliL2dyYWZhbmEnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvaGVhbHRoJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==",
 | 
				
			||||||
        "tags": [
 | 
					        "tags": [
 | 
				
			||||||
            "grafana",
 | 
					            "grafana",
 | 
				
			||||||
            "analytics",
 | 
					            "analytics",
 | 
				
			||||||
@@ -359,7 +360,8 @@
 | 
				
			|||||||
            "dashboard"
 | 
					            "dashboard"
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "logo": "svgs\/grafana.svg",
 | 
					        "logo": "svgs\/grafana.svg",
 | 
				
			||||||
        "minversion": "0.0.0"
 | 
					        "minversion": "0.0.0",
 | 
				
			||||||
 | 
					        "port": "3000"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "grocy": {
 | 
					    "grocy": {
 | 
				
			||||||
        "documentation": "https:\/\/github.com\/grocy\/grocy",
 | 
					        "documentation": "https:\/\/github.com\/grocy\/grocy",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user