diff --git a/app/Models/Service.php b/app/Models/Service.php index 93f274241..2309f5485 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -869,6 +869,30 @@ public function extraFields() } $fields->put('Meilisearch', $data->toArray()); break; + case $image->contains('linkding'): + $data = collect([]); + $SERVICE_USER_LINKDING = $this->environment_variables()->where('key', 'SERVICE_USER_LINKDING')->first(); + $SERVICE_PASSWORD_LINKDING = $this->environment_variables()->where('key', 'SERVICE_PASSWORD_LINKDING')->first(); + if ($SERVICE_USER_LINKDING) { + $data = $data->merge([ + 'Superuser Name' => [ + 'key' => data_get($SERVICE_USER_LINKDING, 'key'), + 'value' => data_get($SERVICE_USER_LINKDING, 'value'), + ], + ]); + } + if ($SERVICE_PASSWORD_LINKDING) { + $data = $data->merge([ + 'Superuser Password' => [ + 'key' => data_get($SERVICE_PASSWORD_LINKDING, 'key'), + 'value' => data_get($SERVICE_PASSWORD_LINKDING, 'value'), + 'isPassword' => true, + ], + ]); + } + + $fields->put('Linkding', $data->toArray()); + break; case $image->contains('ghost'): $data = collect([]); $MAIL_OPTIONS_AUTH_PASS = $this->environment_variables()->where('key', 'MAIL_OPTIONS_AUTH_PASS')->first(); diff --git a/public/svgs/linkding.svg b/public/svgs/linkding.svg new file mode 100644 index 000000000..e3a79db4e --- /dev/null +++ b/public/svgs/linkding.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/templates/compose/linkding-plus.yaml b/templates/compose/linkding-plus.yaml new file mode 100644 index 000000000..6d48e2385 --- /dev/null +++ b/templates/compose/linkding-plus.yaml @@ -0,0 +1,20 @@ +# documentation: https://linkding.link/ +# slogan: A self-hosted bookmark manager designed to be minimal, fast, and easy to set up. (Includes feature for archiving websites as HTML snapshots) +# category: RSS +# tags: rss, feed +# logo: svgs/linkding.svg +# port: 9090 + +services: + linkding-plus: + image: sissbruecker/linkding:latest-plus + volumes: + - 'linkding_data:/etc/linkding/data' + environment: + - SERVICE_URL_LINKDING_9090 + - LD_SUPERUSER_NAME=${SERVICE_USER_LINKDING} + - LD_SUPERUSER_PASSWORD=${SERVICE_PASSWORD_LINKDING} + healthcheck: + test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/9090' || exit 1"] + interval: 5s + timeout: 5s diff --git a/templates/compose/linkding.yaml b/templates/compose/linkding.yaml new file mode 100644 index 000000000..50c2a29d2 --- /dev/null +++ b/templates/compose/linkding.yaml @@ -0,0 +1,20 @@ +# documentation: https://linkding.link/ +# slogan: A self-hosted bookmark manager designed to be minimal, fast, and easy to set up. +# category: RSS +# tags: rss, feed +# logo: svgs/linkding.svg +# port: 9090 + +services: + linkding: + image: sissbruecker/linkding:latest + volumes: + - 'linkding_data:/etc/linkding/data' + environment: + - SERVICE_URL_LINKDING_9090 + - LD_SUPERUSER_NAME=${SERVICE_USER_LINKDING} + - LD_SUPERUSER_PASSWORD=${SERVICE_PASSWORD_LINKDING} + healthcheck: + test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/9090' || exit 1"] + interval: 5s + timeout: 5s diff --git a/templates/service-templates-latest.json b/templates/service-templates-latest.json index d86255c1e..483ff8928 100644 --- a/templates/service-templates-latest.json +++ b/templates/service-templates-latest.json @@ -2357,6 +2357,32 @@ "minversion": "0.0.0", "port": "80" }, + "linkding-plus": { + "documentation": "https://linkding.link/?utm_source=coolify.io", + "slogan": "A self-hosted bookmark manager designed to be minimal, fast, and easy to set up. (Includes feature for archiving websites as HTML snapshots)", + "compose": "c2VydmljZXM6CiAgbGlua2RpbmctcGx1czoKICAgIGltYWdlOiAnc2lzc2JydWVja2VyL2xpbmtkaW5nOmxhdGVzdC1wbHVzJwogICAgdm9sdW1lczoKICAgICAgLSAnbGlua2RpbmdfZGF0YTovZXRjL2xpbmtkaW5nL2RhdGEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9MSU5LRElOR185MDkwCiAgICAgIC0gJ0xEX1NVUEVSVVNFUl9OQU1FPSR7U0VSVklDRV9VU0VSX0xJTktESU5HfScKICAgICAgLSAnTERfU1VQRVJVU0VSX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9MSU5LRElOR30nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gImJhc2ggLWMgJzo+IC9kZXYvdGNwLzEyNy4wLjAuMS85MDkwJyB8fCBleGl0IDEiCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiA1cwo=", + "tags": [ + "rss", + "feed" + ], + "category": "RSS", + "logo": "svgs/linkding.svg", + "minversion": "0.0.0", + "port": "9090" + }, + "linkding": { + "documentation": "https://linkding.link/?utm_source=coolify.io", + "slogan": "A self-hosted bookmark manager designed to be minimal, fast, and easy to set up.", + "compose": "c2VydmljZXM6CiAgbGlua2Rpbmc6CiAgICBpbWFnZTogJ3Npc3NicnVlY2tlci9saW5rZGluZzpsYXRlc3QnCiAgICB2b2x1bWVzOgogICAgICAtICdsaW5rZGluZ19kYXRhOi9ldGMvbGlua2RpbmcvZGF0YScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0xJTktESU5HXzkwOTAKICAgICAgLSAnTERfU1VQRVJVU0VSX05BTUU9JHtTRVJWSUNFX1VTRVJfTElOS0RJTkd9JwogICAgICAtICdMRF9TVVBFUlVTRVJfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX0xJTktESU5HfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAiYmFzaCAtYyAnOj4gL2Rldi90Y3AvMTI3LjAuMC4xLzkwOTAnIHx8IGV4aXQgMSIKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDVzCg==", + "tags": [ + "rss", + "feed" + ], + "category": "RSS", + "logo": "svgs/linkding.svg", + "minversion": "0.0.0", + "port": "9090" + }, "listmonk": { "documentation": "https://listmonk.app/?utm_source=coolify.io", "slogan": "Self-hosted newsletter and mailing list manager", diff --git a/templates/service-templates.json b/templates/service-templates.json index fa5cfb13d..09a538c7a 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -2357,6 +2357,32 @@ "minversion": "0.0.0", "port": "80" }, + "linkding-plus": { + "documentation": "https://linkding.link/?utm_source=coolify.io", + "slogan": "A self-hosted bookmark manager designed to be minimal, fast, and easy to set up. (Includes feature for archiving websites as HTML snapshots)", + "compose": "c2VydmljZXM6CiAgbGlua2RpbmctcGx1czoKICAgIGltYWdlOiAnc2lzc2JydWVja2VyL2xpbmtkaW5nOmxhdGVzdC1wbHVzJwogICAgdm9sdW1lczoKICAgICAgLSAnbGlua2RpbmdfZGF0YTovZXRjL2xpbmtkaW5nL2RhdGEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fTElOS0RJTkdfOTA5MAogICAgICAtICdMRF9TVVBFUlVTRVJfTkFNRT0ke1NFUlZJQ0VfVVNFUl9MSU5LRElOR30nCiAgICAgIC0gJ0xEX1NVUEVSVVNFUl9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTElOS0RJTkd9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICJiYXNoIC1jICc6PiAvZGV2L3RjcC8xMjcuMC4wLjEvOTA5MCcgfHwgZXhpdCAxIgogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogNXMK", + "tags": [ + "rss", + "feed" + ], + "category": "RSS", + "logo": "svgs/linkding.svg", + "minversion": "0.0.0", + "port": "9090" + }, + "linkding": { + "documentation": "https://linkding.link/?utm_source=coolify.io", + "slogan": "A self-hosted bookmark manager designed to be minimal, fast, and easy to set up.", + "compose": "c2VydmljZXM6CiAgbGlua2Rpbmc6CiAgICBpbWFnZTogJ3Npc3NicnVlY2tlci9saW5rZGluZzpsYXRlc3QnCiAgICB2b2x1bWVzOgogICAgICAtICdsaW5rZGluZ19kYXRhOi9ldGMvbGlua2RpbmcvZGF0YScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9MSU5LRElOR185MDkwCiAgICAgIC0gJ0xEX1NVUEVSVVNFUl9OQU1FPSR7U0VSVklDRV9VU0VSX0xJTktESU5HfScKICAgICAgLSAnTERfU1VQRVJVU0VSX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9MSU5LRElOR30nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gImJhc2ggLWMgJzo+IC9kZXYvdGNwLzEyNy4wLjAuMS85MDkwJyB8fCBleGl0IDEiCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiA1cwo=", + "tags": [ + "rss", + "feed" + ], + "category": "RSS", + "logo": "svgs/linkding.svg", + "minversion": "0.0.0", + "port": "9090" + }, "listmonk": { "documentation": "https://listmonk.app/?utm_source=coolify.io", "slogan": "Self-hosted newsletter and mailing list manager",