feat: minversion for services
This commit is contained in:
parent
4ae2087c2e
commit
63487cf3ec
@ -79,6 +79,12 @@ private function process_file($file)
|
||||
} else {
|
||||
$logo = 'svgs/unknown.svg';
|
||||
}
|
||||
$minversion = collect(preg_grep('/^# minversion:/', explode("\n", $content)))->values();
|
||||
if ($minversion->count() > 0) {
|
||||
$minversion = str($minversion[0])->after('# minversion:')->trim()->value();
|
||||
} else {
|
||||
$minversion = '0.0.0';
|
||||
}
|
||||
$env_file = collect(preg_grep('/^# env_file:/', explode("\n", $content)))->values();
|
||||
if ($env_file->count() > 0) {
|
||||
$env_file = str($env_file[0])->after('# env_file:')->trim()->value();
|
||||
@ -103,6 +109,7 @@ private function process_file($file)
|
||||
'compose' => $yaml,
|
||||
'tags' => $tags,
|
||||
'logo' => $logo,
|
||||
'minversion' => $minversion,
|
||||
];
|
||||
if ($env_file) {
|
||||
$env_file_content = file_get_contents(base_path("templates/compose/$env_file"));
|
||||
|
@ -15,6 +15,7 @@ public function __construct(
|
||||
public ?string $wire = null,
|
||||
public ?string $logo = null,
|
||||
public ?string $documentation = null,
|
||||
public bool $upgrade = false,
|
||||
)
|
||||
{
|
||||
|
||||
|
@ -1,14 +1,21 @@
|
||||
<div class="h-20 transition-all duration-150 cursor-pointer box-without-bg bg-coolgray-100 group hover:border-coollabs"
|
||||
wire:click={{ $wire }}>
|
||||
<div @class([
|
||||
'h-20 transition-all duration-150 box-without-bg bg-coolgray-100 group border-l-2 border-transparent',
|
||||
'hover:border-coollabs cursor-pointer' => !$upgrade,
|
||||
'hover:border-red-500 cursor-not-allowed ' => $upgrade,
|
||||
]) @if (!$upgrade) wire:click={{ $wire }} @endif>
|
||||
<div class="flex items-center">
|
||||
{{ $logo }}
|
||||
<div class="flex flex-col pl-2 ">
|
||||
<div class="text-white text-md">
|
||||
{{ $title }}
|
||||
</div>
|
||||
<div class="hidden text-xs font-bold text-neutral-500 group-hover:flex">
|
||||
{{ $description }}
|
||||
</div>
|
||||
@if($upgrade)
|
||||
<div class="text-neutral-500">{{ $upgrade }}</div>
|
||||
@else
|
||||
<div class="hidden text-xs font-bold text-neutral-500 group-hover:flex">
|
||||
{{ $description }}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@isset($documentation)
|
||||
@ -20,4 +27,5 @@
|
||||
</a>
|
||||
</div>
|
||||
@endisset
|
||||
|
||||
</div>
|
||||
|
@ -175,15 +175,37 @@ class="w-full text-white rounded input input-sm bg-coolgray-200 disabled:bg-cool
|
||||
<span class="loading loading-xs loading-spinner"></span>
|
||||
@else
|
||||
@forelse ($services as $serviceName => $service)
|
||||
@if (data_get($service, 'disabled'))
|
||||
<button class="text-left cursor-not-allowed bg-coolgray-200/20 box-without-bg" disabled>
|
||||
@if (data_get($service, 'minversion') && version_compare(config('version'), data_get($service, 'minversion'), '<'))
|
||||
<x-resource-view wire="setType('one-click-service-{{ $serviceName }}')">
|
||||
<x-slot:title> {{ Str::headline($serviceName) }}</x-slot>
|
||||
<x-slot:description>
|
||||
@if (data_get($service, 'slogan'))
|
||||
{{ data_get($service, 'slogan') }}
|
||||
@endif
|
||||
|
||||
</x-slot>
|
||||
<x-slot:logo>
|
||||
@if (data_get($service, 'logo'))
|
||||
<img class="w-[4.5rem]
|
||||
aspect-square h-[4.5rem] p-2 transition-all duration-200 opacity-30 grayscale group-hover:grayscale-0 group-hover:opacity-100"
|
||||
src="{{ asset(data_get($service, 'logo')) }}">
|
||||
@endif
|
||||
</x-slot:logo>
|
||||
<x-slot:documentation>
|
||||
{{ data_get($service, 'documentation') }}
|
||||
</x-slot>
|
||||
<x-slot:upgrade>
|
||||
You need to upgrade Coolify to {{ data_get($service, 'minversion') }} to use this service.
|
||||
</x-slot>
|
||||
</x-resource-view>
|
||||
{{-- <button class="text-left cursor-not-allowed bg-coolgray-100 box-without-bg" disabled>
|
||||
<div class="flex flex-col mx-6">
|
||||
<div class="font-bold">
|
||||
{{ Str::headline($serviceName) }}
|
||||
</div>
|
||||
You need to upgrade to {{ data_get($service, 'minVersion') }} to use this service.
|
||||
You need to upgrade to {{ data_get($service, 'minversion') }} to use this service.
|
||||
</div>
|
||||
</button>
|
||||
</button> --}}
|
||||
@else
|
||||
<x-resource-view wire="setType('one-click-service-{{ $serviceName }}')">
|
||||
<x-slot:title> {{ Str::headline($serviceName) }}</x-slot>
|
||||
|
@ -2,6 +2,7 @@
|
||||
# slogan: The single platform to analyze, test, observe, and deploy new features
|
||||
# tags: analytics, product, open-source, self-hosted, ab-testing, event-tracking
|
||||
# logo: svgs/posthog.svg
|
||||
# minversion: 4.0.0-beta.222
|
||||
|
||||
services:
|
||||
db:
|
||||
|
@ -1,5 +1,5 @@
|
||||
# documentation: https://syncthing.net/
|
||||
# slogan: Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time.
|
||||
# slogan: Syncthing synchronizes files between two or more computers in real time.
|
||||
# tags: filestorage, data, synchronization
|
||||
# logo: svgs/syncthing.svg
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# documentation: https://umami.is
|
||||
# slogan: Umami is a lightweight, self-hosted web analytics platform designed to provide website owners with insights into visitor behavior without compromising user privacy.
|
||||
# slogan: Umami is web analytics platform which provides insights into visitor behavior without compromising user privacy.
|
||||
# tags: analytics, insights, privacy
|
||||
# logo: svgs/umami.svg
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# documentation: https://github.com/louislam/uptime-kuma?tab=readme-ov-file
|
||||
# slogan: Uptime Kuma is a free, self-hosted monitoring tool for tracking the status and performance of your web services and applications in real-time.
|
||||
# slogan: Uptime Kuma is a monitoring tool for tracking the status and performance of your applications in real-time.
|
||||
# tags: monitoring, status, performance, web, services, applications, real-time
|
||||
# logo: svgs/uptime-kuma.svg
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# documentation: https://github.com/dani-garcia/vaultwarden
|
||||
# slogan: Vaultwarden is an open-source password manager that allows you to securely store and manage your passwords, helping you stay organized and protected.
|
||||
# slogan: Vaultwarden is a password manager that allows you to securely store and manage your passwords.
|
||||
# tags: password manager, security
|
||||
# logo: svgs/bitwarden.svg
|
||||
|
||||
|
@ -10,7 +10,8 @@
|
||||
"low",
|
||||
"platform"
|
||||
],
|
||||
"logo": "svgs\/appsmith.svg"
|
||||
"logo": "svgs\/appsmith.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"appwrite": {
|
||||
"documentation": "https:\/\/appwrite.io",
|
||||
@ -21,6 +22,7 @@
|
||||
"platform"
|
||||
],
|
||||
"logo": "svgs\/appwrite.svg",
|
||||
"minversion": "0.0.0",
|
||||
"envs": "X0FQUF9FTlY9cHJvZHVjdGlvbgpfQVBQX0xPQ0FMRT1lbgpfQVBQX09QVElPTlNfQUJVU0U9ZW5hYmxlZApfQVBQX09QVElPTlNfRk9SQ0VfSFRUUFM9ZGlzYWJsZWQKX0FQUF9PUEVOU1NMX0tFWV9WMT0KX0FQUF9ET01BSU49Cl9BUFBfRE9NQUlOX1RBUkdFVD0KX0FQUF9ET01BSU5fRlVOQ1RJT05TPQpfQVBQX0NPTlNPTEVfV0hJVEVMSVNUX1JPT1Q9ZW5hYmxlZApfQVBQX0NPTlNPTEVfV0hJVEVMSVNUX0VNQUlMUz0KX0FQUF9DT05TT0xFX1dISVRFTElTVF9JUFM9Cl9BUFBfU1lTVEVNX0VNQUlMX05BTUU9QXBwd3JpdGUKX0FQUF9TWVNURU1fRU1BSUxfQUREUkVTUz10ZWFtQGFwcHdyaXRlLmlvCl9BUFBfU1lTVEVNX1JFU1BPTlNFX0ZPUk1BVD0KX0FQUF9TWVNURU1fU0VDVVJJVFlfRU1BSUxfQUREUkVTUz1jZXJ0c0BhcHB3cml0ZS5pbwpfQVBQX1VTQUdFX1NUQVRTPWVuYWJsZWQKX0FQUF9MT0dHSU5HX1BST1ZJREVSPQpfQVBQX0xPR0dJTkdfQ09ORklHPQpfQVBQX1VTQUdFX0FHR1JFR0FUSU9OX0lOVEVSVkFMPTMwCl9BUFBfVVNBR0VfVElNRVNFUklFU19JTlRFUlZBTD0zMApfQVBQX1VTQUdFX0RBVEFCQVNFX0lOVEVSVkFMPTkwMApfQVBQX1dPUktFUl9QRVJfQ09SRT02Cl9BUFBfUkVESVNfSE9TVD1hcHB3cml0ZS1yZWRpcwpfQVBQX1JFRElTX1BPUlQ9NjM3OQpfQVBQX1JFRElTX1VTRVI9Cl9BUFBfUkVESVNfUEFTUz0KX0FQUF9EQl9IT1NUPWFwcHdyaXRlLW1hcmlhZGIKX0FQUF9EQl9QT1JUPTMzMDYKX0FQUF9EQl9TQ0hFTUE9YXBwd3JpdGUKX0FQUF9EQl9VU0VSPSRTRVJWSUNFX1VTRVJfTVlTUUwKX0FQUF9EQl9QQVNTPSRTRVJWSUNFX1BBU1NXT1JEX01ZU1FMCl9BUFBfREJfUk9PVF9QQVNTPSRTRVJWSUNFX1BBU1NXT1JEX1JPT1RNWVNRTApfQVBQX0lORkxVWERCX0hPU1Q9YXBwd3JpdGUtaW5mbHV4ZGIKX0FQUF9JTkZMVVhEQl9QT1JUPTgwODYKX0FQUF9TVEFUU0RfSE9TVD1hcHB3cml0ZS10ZWxlZ3JhZgpfQVBQX1NUQVRTRF9QT1JUPTgxMjUKX0FQUF9TTVRQX0hPU1Q9Cl9BUFBfU01UUF9QT1JUPQpfQVBQX1NNVFBfU0VDVVJFPQpfQVBQX1NNVFBfVVNFUk5BTUU9Cl9BUFBfU01UUF9QQVNTV09SRD0KX0FQUF9TTVNfUFJPVklERVI9Cl9BUFBfU01TX0ZST009Cl9BUFBfU1RPUkFHRV9MSU1JVD0zMDAwMDAwMApfQVBQX1NUT1JBR0VfUFJFVklFV19MSU1JVD0yMDAwMDAwMApfQVBQX1NUT1JBR0VfQU5USVZJUlVTPWRpc2FibGVkCl9BUFBfU1RPUkFHRV9BTlRJVklSVVNfSE9TVD1hcHB3cml0ZS1jbGFtYXYKX0FQUF9TVE9SQUdFX0FOVElWSVJVU19QT1JUPTMzMTAKX0FQUF9TVE9SQUdFX0RFVklDRT1sb2NhbApfQVBQX1NUT1JBR0VfUzNfQUNDRVNTX0tFWT0KX0FQUF9TVE9SQUdFX1MzX1NFQ1JFVD0KX0FQUF9TVE9SQUdFX1MzX1JFR0lPTj11cy1lYXN0LTEKX0FQUF9TVE9SQUdFX1MzX0JVQ0tFVD0KX0FQUF9TVE9SQUdFX0RPX1NQQUNFU19BQ0NFU1NfS0VZPQpfQVBQX1NUT1JBR0VfRE9fU1BBQ0VTX1NFQ1JFVD0KX0FQUF9TVE9SQUdFX0RPX1NQQUNFU19SRUdJT049dXMtZWFzdC0xCl9BUFBfU1RPUkFHRV9ET19TUEFDRVNfQlVDS0VUPQpfQVBQX1NUT1JBR0VfQkFDS0JMQVpFX0FDQ0VTU19LRVk9Cl9BUFBfU1RPUkFHRV9CQUNLQkxBWkVfU0VDUkVUPQpfQVBQX1NUT1JBR0VfQkFDS0JMQVpFX1JFR0lPTj11cy13ZXN0LTAwNApfQVBQX1NUT1JBR0VfQkFDS0JMQVpFX0JVQ0tFVD0KX0FQUF9TVE9SQUdFX0xJTk9ERV9BQ0NFU1NfS0VZPQpfQVBQX1NUT1JBR0VfTElOT0RFX1NFQ1JFVD0KX0FQUF9TVE9SQUdFX0xJTk9ERV9SRUdJT049ZXUtY2VudHJhbC0xCl9BUFBfU1RPUkFHRV9MSU5PREVfQlVDS0VUPQpfQVBQX1NUT1JBR0VfV0FTQUJJX0FDQ0VTU19LRVk9Cl9BUFBfU1RPUkFHRV9XQVNBQklfU0VDUkVUPQpfQVBQX1NUT1JBR0VfV0FTQUJJX1JFR0lPTj1ldS1jZW50cmFsLTEKX0FQUF9TVE9SQUdFX1dBU0FCSV9CVUNLRVQ9Cl9BUFBfRlVOQ1RJT05TX1NJWkVfTElNSVQ9MzAwMDAwMDAKX0FQUF9GVU5DVElPTlNfVElNRU9VVD05MDAKX0FQUF9GVU5DVElPTlNfQlVJTERfVElNRU9VVD05MDAKX0FQUF9GVU5DVElPTlNfQ09OVEFJTkVSUz0xMApfQVBQX0ZVTkNUSU9OU19DUFVTPTAKX0FQUF9GVU5DVElPTlNfTUVNT1JZPTAKX0FQUF9GVU5DVElPTlNfTUVNT1JZX1NXQVA9MApfQVBQX0ZVTkNUSU9OU19SVU5USU1FUz1ub2RlLTIwLjAscGhwLTguMixweXRob24tMy4xMSxydWJ5LTMuMgpfQVBQX0VYRUNVVE9SX1NFQ1JFVD0kU0VSVklDRV9QQVNTV09SRF82NF9BUFBXUklURQpfQVBQX0VYRUNVVE9SX0hPU1Q9aHR0cDovL2FwcHdyaXRlLWV4ZWN1dG9yL3YxCl9BUFBfRVhFQ1VUT1JfUlVOVElNRV9ORVRXT1JLPWFwcHdyaXRlX3J1bnRpbWVzCl9BUFBfRlVOQ1RJT05TX0lOQUNUSVZFX1RIUkVTSE9MRD02MApET0NLRVJIVUJfUFVMTF9VU0VSTkFNRT0KRE9DS0VSSFVCX1BVTExfUEFTU1dPUkQ9CkRPQ0tFUkhVQl9QVUxMX0VNQUlMPQpPUEVOX1JVTlRJTUVTX05FVFdPUks9YXBwd3JpdGVfcnVudGltZXMKX0FQUF9GVU5DVElPTlNfUlVOVElNRVNfTkVUV09SSz1ydW50aW1lcwpfQVBQX0RPQ0tFUl9IVUJfVVNFUk5BTUU9Cl9BUFBfRE9DS0VSX0hVQl9QQVNTV09SRD0KX0FQUF9GVU5DVElPTlNfTUFJTlRFTkFOQ0VfSU5URVJWQUw9MzYwMApfQVBQX1ZDU19HSVRIVUJfQVBQX05BTUU9Cl9BUFBfVkNTX0dJVEhVQl9QUklWQVRFX0tFWT0KX0FQUF9WQ1NfR0lUSFVCX0FQUF9JRD0KX0FQUF9WQ1NfR0lUSFVCX0NMSUVOVF9JRD0KX0FQUF9WQ1NfR0lUSFVCX0NMSUVOVF9TRUNSRVQ9Cl9BUFBfVkNTX0dJVEhVQl9XRUJIT09LX1NFQ1JFVD0KX0FQUF9NQUlOVEVOQU5DRV9JTlRFUlZBTD04NjQwMApfQVBQX01BSU5URU5BTkNFX1JFVEVOVElPTl9DQUNIRT0yNTkyMDAwCl9BUFBfTUFJTlRFTkFOQ0VfUkVURU5USU9OX0VYRUNVVElPTj0xMjA5NjAwCl9BUFBfTUFJTlRFTkFOQ0VfUkVURU5USU9OX0FVRElUPTEyMDk2MDAKX0FQUF9NQUlOVEVOQU5DRV9SRVRFTlRJT05fQUJVU0U9ODY0MDAKX0FQUF9NQUlOVEVOQU5DRV9SRVRFTlRJT05fVVNBR0VfSE9VUkxZPTg2NDAwMDAKX0FQUF9NQUlOVEVOQU5DRV9SRVRFTlRJT05fU0NIRURVTEVTPTg2NDAwCl9BUFBfR1JBUEhRTF9NQVhfQkFUQ0hfU0laRT0xMApfQVBQX0dSQVBIUUxfTUFYX0NPTVBMRVhJVFk9MjUwCl9BUFBfR1JBUEhRTF9NQVhfREVQVEg9MwpfQVBQX01JR1JBVElPTlNfRklSRUJBU0VfQ0xJRU5UX0lEPQpfQVBQX01JR1JBVElPTlNfRklSRUJBU0VfQ0xJRU5UX1NFQ1JFVD0KX0FQUF9BU1NJU1RBTlRfT1BFTkFJX0FQSV9LRVk9Cg=="
|
||||
},
|
||||
"babybuddy": {
|
||||
@ -34,7 +36,8 @@
|
||||
"growth",
|
||||
"activities"
|
||||
],
|
||||
"logo": "svgs\/babybuddy.png"
|
||||
"logo": "svgs\/babybuddy.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"budge": {
|
||||
"documentation": "https:\/\/github.com\/linuxserver\/budge",
|
||||
@ -45,7 +48,8 @@
|
||||
"budgeting",
|
||||
"expense tracking"
|
||||
],
|
||||
"logo": "svgs\/unknown.svg"
|
||||
"logo": "svgs\/unknown.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"code-server": {
|
||||
"documentation": "https:\/\/coder.com\/docs\/code-server\/latest",
|
||||
@ -57,7 +61,8 @@
|
||||
"remote",
|
||||
"collaboration"
|
||||
],
|
||||
"logo": "svgs\/code-server.svg"
|
||||
"logo": "svgs\/code-server.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"dashboard": {
|
||||
"documentation": "https:\/\/github.com\/phntxx\/dashboard?tab=readme-ov-file#dashboard",
|
||||
@ -69,7 +74,8 @@
|
||||
"search",
|
||||
"bookmarks"
|
||||
],
|
||||
"logo": "svgs\/unknown.svg"
|
||||
"logo": "svgs\/unknown.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"directus-with-postgresql": {
|
||||
"documentation": "https:\/\/directus.io",
|
||||
@ -81,7 +87,8 @@
|
||||
"database",
|
||||
"sql"
|
||||
],
|
||||
"logo": "svgs\/directus.svg"
|
||||
"logo": "svgs\/directus.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"directus": {
|
||||
"documentation": "https:\/\/directus.io",
|
||||
@ -93,7 +100,8 @@
|
||||
"database",
|
||||
"sql"
|
||||
],
|
||||
"logo": "svgs\/directus.svg"
|
||||
"logo": "svgs\/directus.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"docker-registry": {
|
||||
"documentation": "https:\/\/docs.docker.com\/registry\/",
|
||||
@ -104,7 +112,8 @@
|
||||
"images",
|
||||
"docker"
|
||||
],
|
||||
"logo": "svgs\/docker-registry.png"
|
||||
"logo": "svgs\/docker-registry.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"dokuwiki": {
|
||||
"documentation": "https:\/\/www.dokuwiki.org\/",
|
||||
@ -116,7 +125,8 @@
|
||||
"knowledge",
|
||||
"base"
|
||||
],
|
||||
"logo": "svgs\/dokuwiki.png"
|
||||
"logo": "svgs\/dokuwiki.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"duplicati": {
|
||||
"documentation": "https:\/\/duplicati.readthedocs.io",
|
||||
@ -126,7 +136,8 @@
|
||||
"backup",
|
||||
"encryption"
|
||||
],
|
||||
"logo": "svgs\/duplicati.webp"
|
||||
"logo": "svgs\/duplicati.webp",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"emby": {
|
||||
"documentation": "https:\/\/emby.media\/support\/articles\/Home.html",
|
||||
@ -139,7 +150,8 @@
|
||||
"tv",
|
||||
"music"
|
||||
],
|
||||
"logo": "svgs\/emby.png"
|
||||
"logo": "svgs\/emby.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"embystat": {
|
||||
"documentation": "https:\/\/github.com\/mregni\/EmbyStat",
|
||||
@ -152,7 +164,8 @@
|
||||
"tv",
|
||||
"music"
|
||||
],
|
||||
"logo": "svgs\/unknown.svg"
|
||||
"logo": "svgs\/unknown.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"fider": {
|
||||
"documentation": "https:\/\/fider.io",
|
||||
@ -162,7 +175,8 @@
|
||||
"feedback",
|
||||
"user-feedback"
|
||||
],
|
||||
"logo": "svgs\/fider.svg"
|
||||
"logo": "svgs\/fider.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"filebrowser": {
|
||||
"documentation": "https:\/\/filebrowser.org",
|
||||
@ -175,7 +189,8 @@
|
||||
"file-utilization",
|
||||
"administration-tool"
|
||||
],
|
||||
"logo": "svgs\/filebrowser.svg"
|
||||
"logo": "svgs\/filebrowser.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"formbricks": {
|
||||
"documentation": "https:\/\/formbricks.com",
|
||||
@ -191,7 +206,8 @@
|
||||
"self-hosted",
|
||||
"docker"
|
||||
],
|
||||
"logo": "svgs\/formbricks.png"
|
||||
"logo": "svgs\/formbricks.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"ghost": {
|
||||
"documentation": "https:\/\/ghost.org",
|
||||
@ -204,7 +220,8 @@
|
||||
"management",
|
||||
"system"
|
||||
],
|
||||
"logo": "svgs\/ghost.svg"
|
||||
"logo": "svgs\/ghost.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"gitea-with-mariadb": {
|
||||
"documentation": "https:\/\/docs.gitea.com",
|
||||
@ -218,7 +235,8 @@
|
||||
"lightweight",
|
||||
"mariadb"
|
||||
],
|
||||
"logo": "svgs\/gitea.svg"
|
||||
"logo": "svgs\/gitea.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"gitea-with-mysql": {
|
||||
"documentation": "https:\/\/docs.gitea.com",
|
||||
@ -232,7 +250,8 @@
|
||||
"lightweight",
|
||||
"mysql"
|
||||
],
|
||||
"logo": "svgs\/gitea.svg"
|
||||
"logo": "svgs\/gitea.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"gitea-with-postgresql": {
|
||||
"documentation": "https:\/\/docs.gitea.com",
|
||||
@ -246,7 +265,8 @@
|
||||
"lightweight",
|
||||
"postgresql"
|
||||
],
|
||||
"logo": "svgs\/gitea.svg"
|
||||
"logo": "svgs\/gitea.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"gitea": {
|
||||
"documentation": "https:\/\/docs.gitea.com",
|
||||
@ -259,7 +279,8 @@
|
||||
"hosting",
|
||||
"lightweight"
|
||||
],
|
||||
"logo": "svgs\/gitea.svg"
|
||||
"logo": "svgs\/gitea.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"glitchtip": {
|
||||
"documentation": "https:\/\/glitchtip.com",
|
||||
@ -272,7 +293,8 @@
|
||||
"self-hosted",
|
||||
"sentry"
|
||||
],
|
||||
"logo": "svgs\/glitchtip.png"
|
||||
"logo": "svgs\/glitchtip.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"grafana-with-postgresql": {
|
||||
"documentation": "https:\/\/grafana.com",
|
||||
@ -284,7 +306,8 @@
|
||||
"monitoring",
|
||||
"dashboard"
|
||||
],
|
||||
"logo": "svgs\/grafana.svg"
|
||||
"logo": "svgs\/grafana.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"grafana": {
|
||||
"documentation": "https:\/\/grafana.com",
|
||||
@ -296,7 +319,8 @@
|
||||
"monitoring",
|
||||
"dashboard"
|
||||
],
|
||||
"logo": "svgs\/grafana.svg"
|
||||
"logo": "svgs\/grafana.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"grocy": {
|
||||
"documentation": "https:\/\/github.com\/grocy\/grocy",
|
||||
@ -309,7 +333,8 @@
|
||||
"grocery",
|
||||
"shopping"
|
||||
],
|
||||
"logo": "svgs\/grocy.svg"
|
||||
"logo": "svgs\/grocy.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"heimdall": {
|
||||
"documentation": "https:\/\/github.com\/linuxserver\/Heimdall",
|
||||
@ -321,7 +346,8 @@
|
||||
"applications",
|
||||
"interface"
|
||||
],
|
||||
"logo": "svgs\/unknown.svg"
|
||||
"logo": "svgs\/unknown.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"jellyfin": {
|
||||
"documentation": "https:\/\/jellyfin.org",
|
||||
@ -334,7 +360,8 @@
|
||||
"tv",
|
||||
"music"
|
||||
],
|
||||
"logo": "svgs\/jellyfin.svg"
|
||||
"logo": "svgs\/jellyfin.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"kuzzle": {
|
||||
"documentation": "https:\/\/kuzzle.io",
|
||||
@ -352,7 +379,8 @@
|
||||
"geofencing",
|
||||
"low-code"
|
||||
],
|
||||
"logo": "svgs\/unknown.svg"
|
||||
"logo": "svgs\/unknown.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"meilisearch": {
|
||||
"documentation": "https:\/\/www.meilisearch.com",
|
||||
@ -366,7 +394,8 @@
|
||||
"text",
|
||||
"meilisearch"
|
||||
],
|
||||
"logo": "svgs\/meilisearch.svg"
|
||||
"logo": "svgs\/meilisearch.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"metabase": {
|
||||
"documentation": "https:\/\/www.metabase.com",
|
||||
@ -378,7 +407,8 @@
|
||||
"business",
|
||||
"intelligence"
|
||||
],
|
||||
"logo": "svgs\/metabase.svg"
|
||||
"logo": "svgs\/metabase.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"metube": {
|
||||
"documentation": "https:\/\/github.com\/alexta69\/metube",
|
||||
@ -390,7 +420,8 @@
|
||||
"videos",
|
||||
"playlist"
|
||||
],
|
||||
"logo": "svgs\/unknown.svg"
|
||||
"logo": "svgs\/unknown.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"minio": {
|
||||
"documentation": "https:\/\/min.io\/docs\/minio\/container\/index.html",
|
||||
@ -403,7 +434,8 @@
|
||||
"s3",
|
||||
"api"
|
||||
],
|
||||
"logo": "svgs\/minio.svg"
|
||||
"logo": "svgs\/minio.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"moodle": {
|
||||
"documentation": "https:\/\/moodle.org",
|
||||
@ -420,7 +452,8 @@
|
||||
"low",
|
||||
"code"
|
||||
],
|
||||
"logo": "svgs\/moodle.png"
|
||||
"logo": "svgs\/moodle.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"n8n-with-postgresql": {
|
||||
"documentation": "https:\/\/n8n.io",
|
||||
@ -435,7 +468,8 @@
|
||||
"low",
|
||||
"code"
|
||||
],
|
||||
"logo": "svgs\/n8n.png"
|
||||
"logo": "svgs\/n8n.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"n8n": {
|
||||
"documentation": "https:\/\/n8n.io",
|
||||
@ -450,7 +484,8 @@
|
||||
"low",
|
||||
"code"
|
||||
],
|
||||
"logo": "svgs\/n8n.png"
|
||||
"logo": "svgs\/n8n.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"nextcloud": {
|
||||
"documentation": "https:\/\/docs.nextcloud.com",
|
||||
@ -463,7 +498,8 @@
|
||||
"filestorage",
|
||||
"data"
|
||||
],
|
||||
"logo": "svgs\/nextcloud.svg"
|
||||
"logo": "svgs\/nextcloud.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"nocodb": {
|
||||
"documentation": "https:\/\/nocodb.com\/",
|
||||
@ -478,7 +514,8 @@
|
||||
"sqlite",
|
||||
"mariadb"
|
||||
],
|
||||
"logo": "svgs\/nocodb.svg"
|
||||
"logo": "svgs\/nocodb.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"openblocks": {
|
||||
"documentation": "https:\/\/openblocks.dev",
|
||||
@ -494,7 +531,8 @@
|
||||
"low",
|
||||
"code"
|
||||
],
|
||||
"logo": "svgs\/openblocks.svg"
|
||||
"logo": "svgs\/openblocks.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"pairdrop": {
|
||||
"documentation": "https:\/\/pairdrop.net\/",
|
||||
@ -506,7 +544,8 @@
|
||||
"collaboration",
|
||||
"teamwork"
|
||||
],
|
||||
"logo": "svgs\/unknown.svg"
|
||||
"logo": "svgs\/unknown.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"phpmyadmin": {
|
||||
"documentation": "https:\/\/phpmyadmin.net",
|
||||
@ -515,7 +554,8 @@
|
||||
"tags": [
|
||||
"database management"
|
||||
],
|
||||
"logo": "svgs\/phpmyadmin.svg"
|
||||
"logo": "svgs\/phpmyadmin.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"pocketbase": {
|
||||
"documentation": "https:\/\/pocketbase.io\/docs\/",
|
||||
@ -528,7 +568,8 @@
|
||||
"mobile",
|
||||
"api"
|
||||
],
|
||||
"logo": "svgs\/pocketbase.svg"
|
||||
"logo": "svgs\/pocketbase.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"posthog": {
|
||||
"documentation": "https:\/\/posthog.com",
|
||||
@ -542,7 +583,8 @@
|
||||
"ab-testing",
|
||||
"event-tracking"
|
||||
],
|
||||
"logo": "svgs\/posthog.svg"
|
||||
"logo": "svgs\/posthog.svg",
|
||||
"minversion": "4.0.0-beta.222"
|
||||
},
|
||||
"snapdrop": {
|
||||
"documentation": "https:\/\/github.com\/RobinLinus\/snapdrop",
|
||||
@ -556,7 +598,8 @@
|
||||
"network",
|
||||
"internet"
|
||||
],
|
||||
"logo": "svgs\/unknown.svg"
|
||||
"logo": "svgs\/unknown.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"stirling-pdf": {
|
||||
"documentation": "https:\/\/github.com\/Stirling-Tools\/Stirling-PDF",
|
||||
@ -568,18 +611,20 @@
|
||||
"web",
|
||||
"tool"
|
||||
],
|
||||
"logo": "svgs\/stirling.png"
|
||||
"logo": "svgs\/stirling.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"syncthing": {
|
||||
"documentation": "https:\/\/syncthing.net\/",
|
||||
"slogan": "Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time.",
|
||||
"slogan": "Syncthing synchronizes files between two or more computers in real time.",
|
||||
"compose": "c2VydmljZXM6CiAgc3luY3RoaW5nOgogICAgaW1hZ2U6ICdsc2NyLmlvL2xpbnV4c2VydmVyL3N5bmN0aGluZzpsYXRlc3QnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fU1lOQ1RISU5HCiAgICAgIC0gUFVJRD0xMDAwCiAgICAgIC0gUEdJRD0xMDAwCiAgICAgIC0gVFo9RXRjL1VUQwogICAgdm9sdW1lczoKICAgICAgLSAnc3luY3RoaW5nLWNvbmZpZzovY29uZmlnJwogICAgICAtICdzeW5jdGhpbmctZGF0YTE6L2RhdGExJwogICAgICAtICdzeW5jdGhpbmctZGF0YTI6L2RhdGEyJwogICAgcG9ydHM6CiAgICAgIC0gJzIyMDAwOjIyMDAwL3RjcCcKICAgICAgLSAnMjIwMDA6MjIwMDAvdWRwJwogICAgICAtICcyMTAyNzoyMTAyNy91ZHAnCg==",
|
||||
"tags": [
|
||||
"filestorage",
|
||||
"data",
|
||||
"synchronization"
|
||||
],
|
||||
"logo": "svgs\/syncthing.svg"
|
||||
"logo": "svgs\/syncthing.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"trigger-with-external-database": {
|
||||
"documentation": "https:\/\/trigger.dev",
|
||||
@ -594,7 +639,8 @@
|
||||
"cron",
|
||||
"scheduler"
|
||||
],
|
||||
"logo": "svgs\/trigger.png"
|
||||
"logo": "svgs\/trigger.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"trigger": {
|
||||
"documentation": "https:\/\/trigger.dev",
|
||||
@ -609,22 +655,24 @@
|
||||
"cron",
|
||||
"scheduler"
|
||||
],
|
||||
"logo": "svgs\/trigger.png"
|
||||
"logo": "svgs\/trigger.png",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"umami": {
|
||||
"documentation": "https:\/\/umami.is",
|
||||
"slogan": "Umami is a lightweight, self-hosted web analytics platform designed to provide website owners with insights into visitor behavior without compromising user privacy.",
|
||||
"slogan": "Umami is web analytics platform which provides insights into visitor behavior without compromising user privacy.",
|
||||
"compose": "c2VydmljZXM6CiAgdW1hbWk6CiAgICBpbWFnZTogJ2doY3IuaW8vdW1hbWktc29mdHdhcmUvdW1hbWk6cG9zdGdyZXNxbC1sYXRlc3QnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fVU1BTUkKICAgICAgLSAnREFUQUJBU0VfVVJMPXBvc3RncmVzOi8vJFNFUlZJQ0VfVVNFUl9QT1NUR1JFUzokU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU0Bwb3N0Z3Jlc3FsOjU0MzIvJFBPU1RHUkVTX0RCJwogICAgICAtIERBVEFCQVNFX1RZUEU9cG9zdGdyZXMKICAgICAgLSBBUFBfU0VDUkVUPSRTRVJWSUNFX1BBU1NXT1JEXzY0X1VNQU1JCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3Jlc3FsOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgcG9zdGdyZXNxbDoKICAgIGltYWdlOiAncG9zdGdyZXM6MTYtYWxwaW5lJwogICAgdm9sdW1lczoKICAgICAgLSAncG9zdGdyZXNxbC1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX1VTRVI9JFNFUlZJQ0VfVVNFUl9QT1NUR1JFUwogICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPSRTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNfREI6LXVtYW1pfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAncGdfaXNyZWFkeSAtVSAkJHtQT1NUR1JFU19VU0VSfSAtZCAkJHtQT1NUR1JFU19EQn0nCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAK",
|
||||
"tags": [
|
||||
"analytics",
|
||||
"insights",
|
||||
"privacy"
|
||||
],
|
||||
"logo": "svgs\/umami.svg"
|
||||
"logo": "svgs\/umami.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"uptime-kuma": {
|
||||
"documentation": "https:\/\/github.com\/louislam\/uptime-kuma?tab=readme-ov-file",
|
||||
"slogan": "Uptime Kuma is a free, self-hosted monitoring tool for tracking the status and performance of your web services and applications in real-time.",
|
||||
"slogan": "Uptime Kuma is a monitoring tool for tracking the status and performance of your applications in real-time.",
|
||||
"compose": "c2VydmljZXM6CiAgdXB0aW1lLWt1bWE6CiAgICBpbWFnZTogJ2xvdWlzbGFtL3VwdGltZS1rdW1hOjEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE4KICAgIHZvbHVtZXM6CiAgICAgIC0gJ3VwdGltZS1rdW1hOi9hcHAvZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSBleHRyYS9oZWFsdGhjaGVjawogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1Cg==",
|
||||
"tags": [
|
||||
"monitoring",
|
||||
@ -635,17 +683,19 @@
|
||||
"applications",
|
||||
"real-time"
|
||||
],
|
||||
"logo": "svgs\/uptime-kuma.svg"
|
||||
"logo": "svgs\/uptime-kuma.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"vaultwarden": {
|
||||
"documentation": "https:\/\/github.com\/dani-garcia\/vaultwarden",
|
||||
"slogan": "Vaultwarden is an open-source password manager that allows you to securely store and manage your passwords, helping you stay organized and protected.",
|
||||
"slogan": "Vaultwarden is a password manager that allows you to securely store and manage your passwords.",
|
||||
"compose": "c2VydmljZXM6CiAgdmF1bHR3YXJkZW46CiAgICBpbWFnZTogJ3ZhdWx0d2FyZGVuL3NlcnZlcjpsYXRlc3QnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fVkFVTFRXQVJERU4KICAgIHZvbHVtZXM6CiAgICAgIC0gJ3ZhdWx0d2FyZGVuLWRhdGE6L2RhdGEnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUK",
|
||||
"tags": [
|
||||
"password manager",
|
||||
"security"
|
||||
],
|
||||
"logo": "svgs\/bitwarden.svg"
|
||||
"logo": "svgs\/bitwarden.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"weblate": {
|
||||
"documentation": "https:\/\/weblate.org",
|
||||
@ -660,7 +710,8 @@
|
||||
"libre",
|
||||
"software"
|
||||
],
|
||||
"logo": "svgs\/weblate.webp"
|
||||
"logo": "svgs\/weblate.webp",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"whoogle": {
|
||||
"documentation": "https:\/\/github.com\/benbusby\/whoogle-search?tab=readme-ov-file",
|
||||
@ -670,7 +721,8 @@
|
||||
"privacy",
|
||||
"search engine"
|
||||
],
|
||||
"logo": "svgs\/unknown.svg"
|
||||
"logo": "svgs\/unknown.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"wordpress-with-mariadb": {
|
||||
"documentation": "https:\/\/wordpress.org",
|
||||
@ -683,7 +735,8 @@
|
||||
"management",
|
||||
"mariadb"
|
||||
],
|
||||
"logo": "svgs\/wordpress.svg"
|
||||
"logo": "svgs\/wordpress.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"wordpress-with-mysql": {
|
||||
"documentation": "https:\/\/wordpress.org",
|
||||
@ -696,7 +749,8 @@
|
||||
"management",
|
||||
"mysql"
|
||||
],
|
||||
"logo": "svgs\/wordpress.svg"
|
||||
"logo": "svgs\/wordpress.svg",
|
||||
"minversion": "0.0.0"
|
||||
},
|
||||
"wordpress-without-database": {
|
||||
"documentation": "https:\/\/wordpress.org",
|
||||
@ -708,6 +762,7 @@
|
||||
"content",
|
||||
"management"
|
||||
],
|
||||
"logo": "svgs\/wordpress.svg"
|
||||
"logo": "svgs\/wordpress.svg",
|
||||
"minversion": "0.0.0"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user