Merge pull request #4556 from ezyostudio/next-oauth-infomaniak

feat: add infomaniak oauth
This commit is contained in:
🏔️ Peak
2024-12-16 18:23:06 +01:00
committed by GitHub
25 changed files with 79 additions and 17 deletions

View File

@@ -11,6 +11,7 @@ use Illuminate\Foundation\Events\MaintenanceModeEnabled;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use SocialiteProviders\Authentik\AuthentikExtendSocialite; use SocialiteProviders\Authentik\AuthentikExtendSocialite;
use SocialiteProviders\Azure\AzureExtendSocialite; use SocialiteProviders\Azure\AzureExtendSocialite;
use SocialiteProviders\Infomaniak\InfomaniakExtendSocialite;
use SocialiteProviders\Manager\SocialiteWasCalled; use SocialiteProviders\Manager\SocialiteWasCalled;
class EventServiceProvider extends ServiceProvider class EventServiceProvider extends ServiceProvider
@@ -25,6 +26,7 @@ class EventServiceProvider extends ServiceProvider
SocialiteWasCalled::class => [ SocialiteWasCalled::class => [
AzureExtendSocialite::class.'@handle', AzureExtendSocialite::class.'@handle',
AuthentikExtendSocialite::class.'@handle', AuthentikExtendSocialite::class.'@handle',
InfomaniakExtendSocialite::class.'@handle',
], ],
ProxyStarted::class => [ ProxyStarted::class => [
ProxyStartedNotification::class, ProxyStartedNotification::class,

View File

@@ -40,6 +40,7 @@ function get_socialite_provider(string $provider)
'github' => \Laravel\Socialite\Two\GithubProvider::class, 'github' => \Laravel\Socialite\Two\GithubProvider::class,
'gitlab' => \Laravel\Socialite\Two\GitlabProvider::class, 'gitlab' => \Laravel\Socialite\Two\GitlabProvider::class,
'google' => \Laravel\Socialite\Two\GoogleProvider::class, 'google' => \Laravel\Socialite\Two\GoogleProvider::class,
'infomaniak' => \SocialiteProviders\Infomaniak\Provider::class,
]; ];
return Socialite::buildProvider( return Socialite::buildProvider(

View File

@@ -40,6 +40,7 @@
"resend/resend-laravel": "^0.15.0", "resend/resend-laravel": "^0.15.0",
"sentry/sentry-laravel": "^4.6", "sentry/sentry-laravel": "^4.6",
"socialiteproviders/authentik": "^5.2", "socialiteproviders/authentik": "^5.2",
"socialiteproviders/infomaniak": "^4.0",
"socialiteproviders/microsoft-azure": "^5.1", "socialiteproviders/microsoft-azure": "^5.1",
"spatie/laravel-activitylog": "^4.7.3", "spatie/laravel-activitylog": "^4.7.3",
"spatie/laravel-data": "^4.11", "spatie/laravel-data": "^4.11",

53
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "871067cb42e6347ca53ff36e81ac5079", "content-hash": "5517a7becb5d31fa2ef3ecfaea06f7a7",
"packages": [ "packages": [
{ {
"name": "3sidedcube/laravel-redoc", "name": "3sidedcube/laravel-redoc",
@@ -7467,6 +7467,57 @@
}, },
"time": "2023-11-07T22:21:16+00:00" "time": "2023-11-07T22:21:16+00:00"
}, },
{
"name": "socialiteproviders/infomaniak",
"version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/SocialiteProviders/Infomaniak.git",
"reference": "9796ad686204443bfdf3ff19a6c409e8771667e1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/SocialiteProviders/Infomaniak/zipball/9796ad686204443bfdf3ff19a6c409e8771667e1",
"reference": "9796ad686204443bfdf3ff19a6c409e8771667e1",
"shasum": ""
},
"require": {
"ext-json": "*",
"php": "^8.0",
"socialiteproviders/manager": "^4.4"
},
"type": "library",
"autoload": {
"psr-4": {
"SocialiteProviders\\Infomaniak\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Leopold Jacquot",
"email": "leopold.jacquot@infomaniak.com"
}
],
"description": "Infomaniak OAuth2 Provider for Laravel Socialite",
"keywords": [
"infomaniak",
"laravel",
"oauth",
"oauth2",
"provider",
"socialite"
],
"support": {
"docs": "https://socialiteproviders.com/qq",
"issues": "https://github.com/socialiteproviders/providers/issues",
"source": "https://github.com/socialiteproviders/providers"
},
"time": "2024-11-20T05:42:36+00:00"
},
{ {
"name": "socialiteproviders/manager", "name": "socialiteproviders/manager",
"version": "v4.7.0", "version": "v4.7.0",

View File

@@ -19,6 +19,7 @@ class OauthSettingSeeder extends Seeder
'gitlab', 'gitlab',
'google', 'google',
'authentik', 'authentik',
'infomaniak',
]); ]);
$isOauthSeeded = OauthSetting::count() > 0; $isOauthSeeded = OauthSetting::count() > 0;

View File

@@ -5,6 +5,7 @@
"auth.login.github": "تسجيل الدخول باستخدام GitHub", "auth.login.github": "تسجيل الدخول باستخدام GitHub",
"auth.login.gitlab": "تسجيل الدخول باستخدام Gitlab", "auth.login.gitlab": "تسجيل الدخول باستخدام Gitlab",
"auth.login.google": "تسجيل الدخول باستخدام Google", "auth.login.google": "تسجيل الدخول باستخدام Google",
"auth.login.infomaniak": "تسجيل الدخول باستخدام Infomaniak",
"auth.already_registered": "هل سبق لك التسجيل؟", "auth.already_registered": "هل سبق لك التسجيل؟",
"auth.confirm_password": "تأكيد كلمة المرور", "auth.confirm_password": "تأكيد كلمة المرور",
"auth.forgot_password": "نسيت كلمة المرور", "auth.forgot_password": "نسيت كلمة المرور",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "Přihlásit se pomocí GitHubu", "auth.login.github": "Přihlásit se pomocí GitHubu",
"auth.login.gitlab": "Přihlásit se pomocí Gitlabu", "auth.login.gitlab": "Přihlásit se pomocí Gitlabu",
"auth.login.google": "Přihlásit se pomocí Google", "auth.login.google": "Přihlásit se pomocí Google",
"auth.login.infomaniak": "Přihlásit se pomocí Infomaniak",
"auth.already_registered": "Již jste registrováni?", "auth.already_registered": "Již jste registrováni?",
"auth.confirm_password": "Potvrďte heslo", "auth.confirm_password": "Potvrďte heslo",
"auth.forgot_password": "Zapomněli jste heslo", "auth.forgot_password": "Zapomněli jste heslo",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "Mit GitHub anmelden", "auth.login.github": "Mit GitHub anmelden",
"auth.login.gitlab": "Mit GitLab anmelden", "auth.login.gitlab": "Mit GitLab anmelden",
"auth.login.google": "Mit Google anmelden", "auth.login.google": "Mit Google anmelden",
"auth.login.infomaniak": "Mit Infomaniak anmelden",
"auth.already_registered": "Bereits registriert?", "auth.already_registered": "Bereits registriert?",
"auth.confirm_password": "Passwort bestätigen", "auth.confirm_password": "Passwort bestätigen",
"auth.forgot_password": "Passwort vergessen", "auth.forgot_password": "Passwort vergessen",

View File

@@ -6,6 +6,7 @@
"auth.login.github": "Login with GitHub", "auth.login.github": "Login with GitHub",
"auth.login.gitlab": "Login with Gitlab", "auth.login.gitlab": "Login with Gitlab",
"auth.login.google": "Login with Google", "auth.login.google": "Login with Google",
"auth.login.infomaniak": "Login with Infomaniak",
"auth.already_registered": "Already registered?", "auth.already_registered": "Already registered?",
"auth.confirm_password": "Confirm password", "auth.confirm_password": "Confirm password",
"auth.forgot_password": "Forgot password", "auth.forgot_password": "Forgot password",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "Acceder con GitHub", "auth.login.github": "Acceder con GitHub",
"auth.login.gitlab": "Acceder con Gitlab", "auth.login.gitlab": "Acceder con Gitlab",
"auth.login.google": "Acceder con Google", "auth.login.google": "Acceder con Google",
"auth.login.infomaniak": "Acceder con Infomaniak",
"auth.already_registered": "¿Ya estás registrado?", "auth.already_registered": "¿Ya estás registrado?",
"auth.confirm_password": "Confirmar contraseña", "auth.confirm_password": "Confirmar contraseña",
"auth.forgot_password": "¿Olvidaste tu contraseña?", "auth.forgot_password": "¿Olvidaste tu contraseña?",
@@ -27,4 +28,4 @@
"input.recovery_code": "Código de recuperación", "input.recovery_code": "Código de recuperación",
"button.save": "Guardar", "button.save": "Guardar",
"repository.url": "<span class='text-helper'>Examples</span><br>Para repositorios públicos, usar <span class='text-helper'>https://...</span>.<br>Para repositorios privados, usar <span class='text-helper'>git@...</span>.<br><br>https://github.com/coollabsio/coolify-examples <span class='text-helper'>main</span> la rama 'main' será seleccionada.<br>https://github.com/coollabsio/coolify-examples/tree/nodejs-fastify <span class='text-helper'>nodejs-fastify</span> la rama 'nodejs-fastify' será seleccionada.<br>https://gitea.com/sedlav/expressjs.git <span class='text-helper'>main</span> la rama 'main' será seleccionada.<br>https://gitlab.com/andrasbacsai/nodejs-example.git <span class='text-helper'>main</span> la rama 'main' será seleccionada." "repository.url": "<span class='text-helper'>Examples</span><br>Para repositorios públicos, usar <span class='text-helper'>https://...</span>.<br>Para repositorios privados, usar <span class='text-helper'>git@...</span>.<br><br>https://github.com/coollabsio/coolify-examples <span class='text-helper'>main</span> la rama 'main' será seleccionada.<br>https://github.com/coollabsio/coolify-examples/tree/nodejs-fastify <span class='text-helper'>nodejs-fastify</span> la rama 'nodejs-fastify' será seleccionada.<br>https://gitea.com/sedlav/expressjs.git <span class='text-helper'>main</span> la rama 'main' será seleccionada.<br>https://gitlab.com/andrasbacsai/nodejs-example.git <span class='text-helper'>main</span> la rama 'main' será seleccionada."
} }

View File

@@ -5,6 +5,7 @@
"auth.login.github": "ورود با گیت هاب", "auth.login.github": "ورود با گیت هاب",
"auth.login.gitlab": "ورود با گیت لب", "auth.login.gitlab": "ورود با گیت لب",
"auth.login.google": "ورود با گوگل", "auth.login.google": "ورود با گوگل",
"auth.login.infomaniak": "ورود با Infomaniak",
"auth.already_registered": "قبلاً ثبت نام کرده‌اید؟", "auth.already_registered": "قبلاً ثبت نام کرده‌اید؟",
"auth.confirm_password": "تایید رمز عبور", "auth.confirm_password": "تایید رمز عبور",
"auth.forgot_password": "فراموشی رمز عبور", "auth.forgot_password": "فراموشی رمز عبور",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "Connexion avec GitHub", "auth.login.github": "Connexion avec GitHub",
"auth.login.gitlab": "Connexion avec Gitlab", "auth.login.gitlab": "Connexion avec Gitlab",
"auth.login.google": "Connexion avec Google", "auth.login.google": "Connexion avec Google",
"auth.login.infomaniak": "Connexion avec Infomaniak",
"auth.already_registered": "Déjà enregistré ?", "auth.already_registered": "Déjà enregistré ?",
"auth.confirm_password": "Confirmer le mot de passe", "auth.confirm_password": "Confirmer le mot de passe",
"auth.forgot_password": "Mot de passe oublié", "auth.forgot_password": "Mot de passe oublié",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "Accedi con GitHub", "auth.login.github": "Accedi con GitHub",
"auth.login.gitlab": "Accedi con Gitlab", "auth.login.gitlab": "Accedi con Gitlab",
"auth.login.google": "Accedi con Google", "auth.login.google": "Accedi con Google",
"auth.login.infomaniak": "Accedi con Infomaniak",
"auth.already_registered": "Già registrato?", "auth.already_registered": "Già registrato?",
"auth.confirm_password": "Conferma password", "auth.confirm_password": "Conferma password",
"auth.forgot_password": "Password dimenticata", "auth.forgot_password": "Password dimenticata",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "GitHubでログイン", "auth.login.github": "GitHubでログイン",
"auth.login.gitlab": "Gitlabでログイン", "auth.login.gitlab": "Gitlabでログイン",
"auth.login.google": "Googleでログイン", "auth.login.google": "Googleでログイン",
"auth.login.infomaniak": "Infomaniakでログイン",
"auth.already_registered": "すでに登録済みですか?", "auth.already_registered": "すでに登録済みですか?",
"auth.confirm_password": "パスワードを確認", "auth.confirm_password": "パスワードを確認",
"auth.forgot_password": "パスワードを忘れた", "auth.forgot_password": "パスワードを忘れた",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "Entrar com GitHub", "auth.login.github": "Entrar com GitHub",
"auth.login.gitlab": "Entrar com Gitlab", "auth.login.gitlab": "Entrar com Gitlab",
"auth.login.google": "Entrar com Google", "auth.login.google": "Entrar com Google",
"auth.login.infomaniak": "Entrar com Infomaniak",
"auth.already_registered": "Já tem uma conta?", "auth.already_registered": "Já tem uma conta?",
"auth.confirm_password": "Confirmar senha", "auth.confirm_password": "Confirmar senha",
"auth.forgot_password": "Esqueceu a senha?", "auth.forgot_password": "Esqueceu a senha?",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "Autentificare prin GitHub", "auth.login.github": "Autentificare prin GitHub",
"auth.login.gitlab": "Autentificare prin Gitlab", "auth.login.gitlab": "Autentificare prin Gitlab",
"auth.login.google": "Autentificare prin Google", "auth.login.google": "Autentificare prin Google",
"auth.login.infomaniak": "Autentificare prin Infomaniak",
"auth.already_registered": "Sunteți deja înregistrat?", "auth.already_registered": "Sunteți deja înregistrat?",
"auth.confirm_password": "Confirmați parola", "auth.confirm_password": "Confirmați parola",
"auth.forgot_password": "Ați uitat parola", "auth.forgot_password": "Ați uitat parola",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "GitHub ile Giriş Yap", "auth.login.github": "GitHub ile Giriş Yap",
"auth.login.gitlab": "GitLab ile Giriş Yap", "auth.login.gitlab": "GitLab ile Giriş Yap",
"auth.login.google": "Google ile Giriş Yap", "auth.login.google": "Google ile Giriş Yap",
"auth.login.infomaniak": "Infomaniak ile Giriş Yap",
"auth.already_registered": "Zaten kayıtlı mısınız?", "auth.already_registered": "Zaten kayıtlı mısınız?",
"auth.confirm_password": "Şifreyi Onayla", "auth.confirm_password": "Şifreyi Onayla",
"auth.forgot_password": "Şifremi Unuttum", "auth.forgot_password": "Şifremi Unuttum",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "Đăng Nhập Bằng GitHub", "auth.login.github": "Đăng Nhập Bằng GitHub",
"auth.login.gitlab": "Đăng Nhập Bằng Gitlab", "auth.login.gitlab": "Đăng Nhập Bằng Gitlab",
"auth.login.google": "Đăng Nhập Bằng Google", "auth.login.google": "Đăng Nhập Bằng Google",
"auth.login.infomaniak": "Đăng Nhập Bằng Infomaniak",
"auth.already_registered": "Đã đăng ký?", "auth.already_registered": "Đã đăng ký?",
"auth.confirm_password": "Nhập lại mật khẩu", "auth.confirm_password": "Nhập lại mật khẩu",
"auth.forgot_password": "Quên mật khẩu", "auth.forgot_password": "Quên mật khẩu",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "使用 GitHub 登录", "auth.login.github": "使用 GitHub 登录",
"auth.login.gitlab": "使用 Gitlab 登录", "auth.login.gitlab": "使用 Gitlab 登录",
"auth.login.google": "使用 Google 登录", "auth.login.google": "使用 Google 登录",
"auth.login.infomaniak": "使用 Infomaniak 登录",
"auth.already_registered": "已经注册?", "auth.already_registered": "已经注册?",
"auth.confirm_password": "确认密码", "auth.confirm_password": "确认密码",
"auth.forgot_password": "忘记密码", "auth.forgot_password": "忘记密码",

View File

@@ -5,6 +5,7 @@
"auth.login.github": "使用 GitHub 登入", "auth.login.github": "使用 GitHub 登入",
"auth.login.gitlab": "使用 Gitlab 登入", "auth.login.gitlab": "使用 Gitlab 登入",
"auth.login.google": "使用 Google 登入", "auth.login.google": "使用 Google 登入",
"auth.login.infomaniak": "使用 Infomaniak 登入",
"auth.already_registered": "已經註冊?", "auth.already_registered": "已經註冊?",
"auth.confirm_password": "確認密碼", "auth.confirm_password": "確認密碼",
"auth.forgot_password": "忘記密碼", "auth.forgot_password": "忘記密碼",

View File

@@ -258,6 +258,7 @@
<input type="text" x-model="confirmationText" <input type="text" x-model="confirmationText"
class="p-2 pr-10 w-full text-black rounded cursor-text input" readonly> class="p-2 pr-10 w-full text-black rounded cursor-text input" readonly>
<button @click="copyConfirmationText()" <button @click="copyConfirmationText()"
x-show="window.isSecureContext"
class="absolute right-2 top-1/2 text-gray-500 transform -translate-y-1/2 hover:text-gray-700" class="absolute right-2 top-1/2 text-gray-500 transform -translate-y-1/2 hover:text-gray-700"
title="Copy confirmation text" x-ref="copyButton"> title="Copy confirmation text" x-ref="copyButton">
<template x-if="!copied"> <template x-if="!copied">

View File

@@ -59,6 +59,7 @@
class="font-mono pr-10" class="font-mono pr-10"
/> />
<button <button
x-show="window.isSecureContext"
@click="navigator.clipboard.writeText(secretKey); copiedSecretKey = true; setTimeout(() => copiedSecretKey = false, 2000)" @click="navigator.clipboard.writeText(secretKey); copiedSecretKey = true; setTimeout(() => copiedSecretKey = false, 2000)"
class="absolute right-2 bottom-1 p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-700" class="absolute right-2 bottom-1 p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-700"
> >
@@ -78,6 +79,7 @@
class="font-mono pr-10" class="font-mono pr-10"
/> />
<button <button
x-show="window.isSecureContext"
@click="navigator.clipboard.writeText(otpUrl); copiedOtpUrl = true; setTimeout(() => copiedOtpUrl = false, 2000)" @click="navigator.clipboard.writeText(otpUrl); copiedOtpUrl = true; setTimeout(() => copiedOtpUrl = false, 2000)"
class="absolute right-2 bottom-1 p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-700" class="absolute right-2 bottom-1 p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-700"
> >

View File

@@ -5,7 +5,7 @@
# port: 5000 # port: 5000
services: services:
radarr: fileflows:
image: revenz/fileflows image: revenz/fileflows
environment: environment:
- SERVICE_FQDN_FILEFLOWS_5000 - SERVICE_FQDN_FILEFLOWS_5000

View File

@@ -1,3 +1,4 @@
# ignore: true
# documentation: https://docs.twenty.com # documentation: https://docs.twenty.com
# slogan: Twenty is a CRM designed to fit your unique business needs. # slogan: Twenty is a CRM designed to fit your unique business needs.
# tags: crm, self-hosted, dashboard # tags: crm, self-hosted, dashboard

View File

@@ -743,7 +743,7 @@
"fileflows": { "fileflows": {
"documentation": "https://fileflows.com/docs/?utm_source=coolify.io", "documentation": "https://fileflows.com/docs/?utm_source=coolify.io",
"slogan": "FileFlows can drastically reduce your files, up to 90%, saving you space and money. No need to buy more hard drives, just shrink your files and start saving.", "slogan": "FileFlows can drastically reduce your files, up to 90%, saving you space and money. No need to buy more hard drives, just shrink your files and start saving.",
"compose": "c2VydmljZXM6CiAgcmFkYXJyOgogICAgaW1hZ2U6IHJldmVuei9maWxlZmxvd3MKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSUxFRkxPV1NfNTAwMAogICAgICAtIF9BUFBfVVJMPSRTRVJWSUNFX0ZRRE5fRklMRV9GTE9XUwogICAgICAtIFBVSUQ9MTAwMAogICAgICAtIFBHSUQ9MTAwMAogICAgICAtICdUWj0ke1RaOi1BbWVyaWNhL1Rvcm9udG99JwogICAgdm9sdW1lczoKICAgICAgLSAnZmlsZWZsb3dzX3RlbXA6L3RlbXAnCiAgICAgIC0gJ2ZpbGVmbG93c19jb25maWdzOi9hcHAvRGF0YScKICAgICAgLSAnZmlsZWZsb3dzX2xvZ3M6L2FwcC9Mb2dzJwogICAgICAtICdmaWxlZmxvd3NfY29tbW9uOi9hcHAvY29tbW9uJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjUwMDAvYXBpL3N5c3RlbS92ZXJzaW9uJwogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1Cg==", "compose": "c2VydmljZXM6CiAgZmlsZWZsb3dzOgogICAgaW1hZ2U6IHJldmVuei9maWxlZmxvd3MKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GSUxFRkxPV1NfNTAwMAogICAgICAtIF9BUFBfVVJMPSRTRVJWSUNFX0ZRRE5fRklMRV9GTE9XUwogICAgICAtIFBVSUQ9MTAwMAogICAgICAtIFBHSUQ9MTAwMAogICAgICAtICdUWj0ke1RaOi1BbWVyaWNhL1Rvcm9udG99JwogICAgdm9sdW1lczoKICAgICAgLSAnZmlsZWZsb3dzX3RlbXA6L3RlbXAnCiAgICAgIC0gJ2ZpbGVmbG93c19jb25maWdzOi9hcHAvRGF0YScKICAgICAgLSAnZmlsZWZsb3dzX2xvZ3M6L2FwcC9Mb2dzJwogICAgICAtICdmaWxlZmxvd3NfY29tbW9uOi9hcHAvY29tbW9uJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjUwMDAvYXBpL3N5c3RlbS92ZXJzaW9uJwogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1Cg==",
"tags": [ "tags": [
"media", "media",
"transcode", "transcode",
@@ -2803,19 +2803,6 @@
"minversion": "0.0.0", "minversion": "0.0.0",
"port": "3000" "port": "3000"
}, },
"twenty": {
"documentation": "https://docs.twenty.com?utm_source=coolify.io",
"slogan": "Twenty is a CRM designed to fit your unique business needs.",
"compose": "c2VydmljZXM6CiAgdHdlbnR5OgogICAgaW1hZ2U6ICd0d2VudHljcm0vdHdlbnR5OmxhdGVzdCcKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9UV0VOVFlfMzAwMAogICAgICAtIFNFUlZFUl9VUkw9JFNFUlZJQ0VfRlFETl9UV0VOVFkKICAgICAgLSBGUk9OVF9CQVNFX1VSTD0kU0VSVklDRV9GUUROX1RXRU5UWQogICAgICAtIEVOQUJMRV9EQl9NSUdSQVRJT05TPXRydWUKICAgICAgLSAnQ0FDSEVfU1RPUkFHRV9UWVBFPSR7Q0FDSEVfU1RPUkFHRV9UWVBFOi1yZWRpc30nCiAgICAgIC0gJ1JFRElTX1VSTD1yZWRpczovL3JlZGlzOjYzNzknCiAgICAgIC0gJ0FQSV9SQVRFX0xJTUlUSU5HX1RUTD0ke0FQSV9SQVRFX0xJTUlUSU5HX1RUTDotMTAwfScKICAgICAgLSAnQVBJX1JBVEVfTElNSVRJTkdfTElNSVQ9JHtBUElfUkFURV9MSU1JVElOR19MSU1JVDotMTAwfScKICAgICAgLSBBUFBfU0VDUkVUPSRTRVJWSUNFX0JBU0U2NF8zMl9TRUNSRVQKICAgICAgLSBQT1NUR1JFU19BRE1JTl9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFUwogICAgICAtICdQR19EQVRBQkFTRV9VUkw9cG9zdGdyZXM6Ly9wb3N0Z3JlczokU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU0Bwb3N0Z3Jlczo1NDMyL2RlZmF1bHQnCiAgICAgIC0gJ0lTX1NJR05fVVBfRElTQUJMRUQ9JHtJU19TSUdOX1VQX0RJU0FCTEVEOi1mYWxzZX0nCiAgICAgIC0gJ1BBU1NXT1JEX1JFU0VUX1RPS0VOX0VYUElSRVNfSU49JHtQQVNTV09SRF9SRVNFVF9UT0tFTl9FWFBJUkVTX0lOOi01bX0nCiAgICAgIC0gV09SS1NQQUNFX0lOQUNUSVZFX0RBWVNfQkVGT1JFX05PVElGSUNBVElPTj0kV09SS1NQQUNFX0lOQUNUSVZFX0RBWVNfQkVGT1JFX05PVElGSUNBVElPTgogICAgICAtIFdPUktTUEFDRV9JTkFDVElWRV9EQVlTX0JFRk9SRV9ERUxFVElPTj0kV09SS1NQQUNFX0lOQUNUSVZFX0RBWVNfQkVGT1JFX0RFTEVUSU9OCiAgICAgIC0gJ1NUT1JBR0VfVFlQRT0ke1NUT1JBR0VfVFlQRTotbG9jYWx9JwogICAgICAtIFNUT1JBR0VfUzNfUkVHSU9OPSRTVE9SQUdFX1MzX1JFR0lPTgogICAgICAtIFNUT1JBR0VfUzNfTkFNRT0kU1RPUkFHRV9TM19OQU1FCiAgICAgIC0gU1RPUkFHRV9TM19FTkRQT0lOVD0kU1RPUkFHRV9TM19FTkRQT0lOVAogICAgICAtIFNUT1JBR0VfUzNfQUNDRVNTX0tFWV9JRD0kU1RPUkFHRV9TM19BQ0NFU1NfS0VZX0lECiAgICAgIC0gU1RPUkFHRV9TM19TRUNSRVRfQUNDRVNTX0tFWT0kU1RPUkFHRV9TM19TRUNSRVRfQUNDRVNTX0tFWQogICAgICAtICdNRVNTQUdFX1FVRVVFX1RZUEU9JHtNRVNTQUdFX1FVRVVFX1RZUEU6LXBnLWJvc3N9JwogICAgICAtIEVNQUlMX0ZST01fQUREUkVTUz0kRU1BSUxfRlJPTV9BRERSRVNTCiAgICAgIC0gRU1BSUxfRlJPTV9OQU1FPSRFTUFJTF9GUk9NX05BTUUKICAgICAgLSBFTUFJTF9TWVNURU1fQUREUkVTUz0kRU1BSUxfU1lTVEVNX0FERFJFU1MKICAgICAgLSAnRU1BSUxfRFJJVkVSPSR7RU1BSUxfRFJJVkVSOi1sb2dnZXJ9JwogICAgICAtIEVNQUlMX1NNVFBfSE9TVD0kRU1BSUxfU01UUF9IT1NUCiAgICAgIC0gRU1BSUxfU01UUF9QT1JUPSRFTUFJTF9TTVRQX1BPUlQKICAgICAgLSBFTUFJTF9TTVRQX1VTRVI9JEVNQUlMX1NNVFBfVVNFUgogICAgICAtIEVNQUlMX1NNVFBfUEFTU1dPUkQ9JEVNQUlMX1NNVFBfUEFTU1dPUkQKICAgICAgLSBTSUdOX0lOX1BSRUZJTExFRD1mYWxzZQogICAgICAtICdERUJVR19NT0RFPSR7REVCVUdfTU9ERTotZmFsc2V9JwogICAgICAtICdURUxFTUVUUllfRU5BQkxFRD0ke1RFTEVNRVRSWV9FTkFCTEVEOi1mYWxzZX0nCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3JlczoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjMwMDAvaGVhbHRoeicKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQogIHBvc3RncmVzOgogICAgaW1hZ2U6ICd0d2VudHljcm0vdHdlbnR5LXBvc3RncmVzOmxhdGVzdCcKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX1VTRVI9cG9zdGdyZXMKICAgICAgLSBQT1NUR1JFU19QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFUwogICAgICAtIFBPU1RHUkVTX0RCPWRlZmF1bHQKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3BnLWRhdGE6L2JpdG5hbWkvcG9zdGdyZXNxbCcKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAncGdfaXNyZWFkeSAtVSAkJHtQT1NUR1JFU19VU0VSfSAtZCAkJHtQT1NUR1JFU19EQn0nCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAKICByZWRpczoKICAgIGltYWdlOiAncmVkaXM6bGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAncmVkaXMtZGF0YTovZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSByZWRpcy1jbGkKICAgICAgICAtIHBpbmcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=",
"tags": [
"crm",
"self-hosted",
"dashboard"
],
"logo": "svgs/twenty.svg",
"minversion": "0.0.0",
"port": "3000"
},
"umami": { "umami": {
"documentation": "https://umami.is?utm_source=coolify.io", "documentation": "https://umami.is?utm_source=coolify.io",
"slogan": "Umami is web analytics platform which provides insights into visitor behavior without compromising user privacy.", "slogan": "Umami is web analytics platform which provides insights into visitor behavior without compromising user privacy.",