Merge branch 'next' into feat-db-ssl

This commit is contained in:
🏔️ Peak
2025-02-11 17:41:45 +01:00
committed by GitHub
19 changed files with 6756 additions and 32 deletions

6685
CHANGELOG.md Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -24,6 +24,7 @@ class SendMessageToSlackJob implements ShouldQueue
public function handle(): void public function handle(): void
{ {
Http::post($this->webhookUrl, [ Http::post($this->webhookUrl, [
'text' => $this->message->title,
'blocks' => [ 'blocks' => [
[ [
'type' => 'section', 'type' => 'section',

View File

@@ -33,17 +33,30 @@ class GithubApp extends BaseModel
public static function ownedByCurrentTeam() public static function ownedByCurrentTeam()
{ {
return GithubApp::whereTeamId(currentTeam()->id); return GithubApp::where(function ($query) {
$query->where('team_id', currentTeam()->id)
->orWhere('is_system_wide', true);
});
} }
public static function public() public static function public()
{ {
return GithubApp::whereTeamId(currentTeam()->id)->whereisPublic(true)->whereNotNull('app_id')->get(); return GithubApp::where(function ($query) {
$query->where(function ($q) {
$q->where('team_id', currentTeam()->id)
->orWhere('is_system_wide', true);
})->where('is_public', true);
})->whereNotNull('app_id')->get();
} }
public static function private() public static function private()
{ {
return GithubApp::whereTeamId(currentTeam()->id)->whereisPublic(false)->whereNotNull('app_id')->get(); return GithubApp::where(function ($query) {
$query->where(function ($q) {
$q->where('team_id', currentTeam()->id)
->orWhere('is_system_wide', true);
})->where('is_public', false);
})->whereNotNull('app_id')->get();
} }
public function team() public function team()

View File

@@ -248,15 +248,17 @@ class Team extends Model implements SendsDiscord, SendsEmail, SendsPushover, Sen
{ {
$sources = collect([]); $sources = collect([]);
$github_apps = GithubApp::where(function ($query) { $github_apps = GithubApp::where(function ($query) {
$query->where('team_id', $this->id) $query->where(function ($q) {
->Where('is_public', false) $q->where('team_id', $this->id)
->orWhere('is_system_wide', true); ->orWhere('is_system_wide', true);
})->where('is_public', false);
})->get(); })->get();
$gitlab_apps = GitlabApp::where(function ($query) { $gitlab_apps = GitlabApp::where(function ($query) {
$query->where('team_id', $this->id) $query->where(function ($q) {
->Where('is_public', false) $q->where('team_id', $this->id)
->orWhere('is_system_wide', true); ->orWhere('is_system_wide', true);
})->where('is_public', false);
})->get(); })->get();
return $sources->merge($github_apps)->merge($gitlab_apps); return $sources->merge($github_apps)->merge($gitlab_apps);

View File

@@ -80,7 +80,7 @@ class HighDiskUsage extends CustomEmailNotification
$description .= "Tips for cleanup: https://coolify.io/docs/knowledge-base/server/automated-cleanup\n"; $description .= "Tips for cleanup: https://coolify.io/docs/knowledge-base/server/automated-cleanup\n";
$description .= "Change settings:\n"; $description .= "Change settings:\n";
$description .= '- Threshold: '.base_url().'/server/'.$this->server->uuid."#advanced\n"; $description .= '- Threshold: '.base_url().'/server/'.$this->server->uuid."#advanced\n";
$description .= '- Notifications: '.base_url().'/notifications/discord'; $description .= '- Notifications: '.base_url().'/notifications/slack';
return new SlackMessage( return new SlackMessage(
title: 'High disk usage detected', title: 'High disk usage detected',

View File

@@ -1,5 +1,6 @@
{ {
"auth.login": "تسجيل الدخول", "auth.login": "تسجيل الدخول",
"auth.login.authentik": "تسجيل الدخول باستخدام Authentik",
"auth.login.azure": "تسجيل الدخول باستخدام Microsoft", "auth.login.azure": "تسجيل الدخول باستخدام Microsoft",
"auth.login.bitbucket": "تسجيل الدخول باستخدام Bitbucket", "auth.login.bitbucket": "تسجيل الدخول باستخدام Bitbucket",
"auth.login.github": "تسجيل الدخول باستخدام GitHub", "auth.login.github": "تسجيل الدخول باستخدام GitHub",
@@ -34,5 +35,6 @@
"resource.delete_volumes": "حذف جميع المجلدات والملفات المرتبطة بهذا المورد بشكل دائم.", "resource.delete_volumes": "حذف جميع المجلدات والملفات المرتبطة بهذا المورد بشكل دائم.",
"resource.delete_connected_networks": "حذف جميع الشبكات غير المحددة مسبقًا والمرتبطة بهذا المورد بشكل دائم.", "resource.delete_connected_networks": "حذف جميع الشبكات غير المحددة مسبقًا والمرتبطة بهذا المورد بشكل دائم.",
"resource.delete_configurations": "حذف جميع ملفات التعريف من الخادم بشكل دائم.", "resource.delete_configurations": "حذف جميع ملفات التعريف من الخادم بشكل دائم.",
"database.delete_backups_locally": "حذف كافة النسخ الاحتياطية نهائيًا من التخزين المحلي." "database.delete_backups_locally": "حذف كافة النسخ الاحتياطية نهائيًا من التخزين المحلي.",
"warning.sslipdomain": "تم حفظ ملفات التعريف الخاصة بك، ولكن استخدام نطاق sslip مع https <span class='dark:text-red-500 text-red-500 font-bold'>غير</span> مستحسن، لأن خوادم Let's Encrypt مع هذا النطاق العام محدودة المعدل (ستفشل عملية التحقق من شهادة SSL). <br><br>استخدم نطاقك الخاص بدلاً من ذلك."
} }

View File

@@ -1,5 +1,6 @@
{ {
"auth.login": "Connexion", "auth.login": "Connexion",
"auth.login.authentik": "Connexion avec Authentik",
"auth.login.azure": "Connexion avec Microsoft", "auth.login.azure": "Connexion avec Microsoft",
"auth.login.bitbucket": "Connexion avec Bitbucket", "auth.login.bitbucket": "Connexion avec Bitbucket",
"auth.login.github": "Connexion avec GitHub", "auth.login.github": "Connexion avec GitHub",
@@ -34,5 +35,6 @@
"resource.delete_volumes": "Supprimer définitivement tous les volumes associés à cette ressource.", "resource.delete_volumes": "Supprimer définitivement tous les volumes associés à cette ressource.",
"resource.delete_connected_networks": "Supprimer définitivement tous les réseaux non-prédéfinis associés à cette ressource.", "resource.delete_connected_networks": "Supprimer définitivement tous les réseaux non-prédéfinis associés à cette ressource.",
"resource.delete_configurations": "Supprimer définitivement tous les fichiers de configuration du serveur.", "resource.delete_configurations": "Supprimer définitivement tous les fichiers de configuration du serveur.",
"database.delete_backups_locally": "Toutes les sauvegardes seront définitivement supprimées du stockage local." "database.delete_backups_locally": "Toutes les sauvegardes seront définitivement supprimées du stockage local.",
"warning.sslipdomain": "Votre configuration est enregistrée, mais l'utilisation du domaine sslip avec https <span class='dark:text-red-500 text-red-500 font-bold'>N'EST PAS</span> recommandée, car les serveurs Let's Encrypt avec ce domaine public sont limités en taux (la validation du certificat SSL échouera). <br><br>Utilisez plutôt votre propre domaine."
} }

View File

@@ -1,5 +1,6 @@
{ {
"auth.login": "Accedi", "auth.login": "Accedi",
"auth.login.authentik": "Accedi con Authentik",
"auth.login.azure": "Accedi con Microsoft", "auth.login.azure": "Accedi con Microsoft",
"auth.login.bitbucket": "Accedi con Bitbucket", "auth.login.bitbucket": "Accedi con Bitbucket",
"auth.login.github": "Accedi con GitHub", "auth.login.github": "Accedi con GitHub",
@@ -27,5 +28,13 @@
"input.code": "Codice monouso", "input.code": "Codice monouso",
"input.recovery_code": "Codice di recupero", "input.recovery_code": "Codice di recupero",
"button.save": "Salva", "button.save": "Salva",
"repository.url": "<span class='text-helper'>Esempi</span><br>Per i repository pubblici, utilizza <span class='text-helper'>https://...</span>.<br>Per i repository privati, utilizza <span class='text-helper'>git@...</span>.<br><br>https://github.com/coollabsio/coolify-examples verrà selezionato il branch <span class='text-helper'>main</span><br>https://github.com/coollabsio/coolify-examples/tree/nodejs-fastify verrà selezionato il branch <span class='text-helper'>nodejs-fastify</span>.<br>https://gitea.com/sedlav/expressjs.git verrà selezionato il branch <span class='text-helper'>main</span>.<br>https://gitlab.com/andrasbacsai/nodejs-example.git verrà selezionato il branch <span class='text-helper'>main</span>." "repository.url": "<span class='text-helper'>Esempi</span><br>Per i repository pubblici, utilizza <span class='text-helper'>https://...</span>.<br>Per i repository privati, utilizza <span class='text-helper'>git@...</span>.<br><br>https://github.com/coollabsio/coolify-examples verrà selezionato il branch <span class='text-helper'>main</span><br>https://github.com/coollabsio/coolify-examples/tree/nodejs-fastify verrà selezionato il branch <span class='text-helper'>nodejs-fastify</span>.<br>https://gitea.com/sedlav/expressjs.git verrà selezionato il branch <span class='text-helper'>main</span>.<br>https://gitlab.com/andrasbacsai/nodejs-example.git verrà selezionato il branch <span class='text-helper'>main</span>.",
"service.stop": "Questo servizio verrà arrestato.",
"resource.docker_cleanup": "Esegui pulizia Docker (rimuove immagini non utilizzate e cache del builder).",
"resource.non_persistent": "Tutti i dati non persistenti verranno eliminati.",
"resource.delete_volumes": "Elimina definitivamente tutti i volumi associati a questa risorsa.",
"resource.delete_connected_networks": "Elimina definitivamente tutte le reti non predefinite associate a questa risorsa.",
"resource.delete_configurations": "Elimina definitivamente tutti i file di configurazione dal server.",
"database.delete_backups_locally": "Tutti i backup verranno eliminati definitivamente dall'archiviazione locale.",
"warning.sslipdomain": "La tua configurazione è stata salvata, ma il dominio sslip con https <span class='dark:text-red-500 text-red-500 font-bold'>NON</span> è raccomandato, poiché i server di Let's Encrypt con questo dominio pubblico hanno limitazioni di frequenza (la convalida del certificato SSL fallirà). <br><br>Utilizza invece il tuo dominio personale."
} }

View File

@@ -23,7 +23,7 @@
if (checkNumber > 5) { if (checkNumber > 5) {
this.popups.realtime = true; this.popups.realtime = true;
console.error( console.error(
'Coolify could not connect to its real-time service. This will cause unusual problems on the UI if not fixed! Please check the related documentation (https://coolify.io/docs/knowledge-base/cloudflare/tunnels) or get help on Discord (https://coollabs.io/discord).)' 'Coolify could not connect to its real-time service. This will cause unusual problems on the UI if not fixed! Please check the related documentation (https://coolify.io/docs/knowledge-base/cloudflare/tunnels/overview) or get help on Discord (https://coollabs.io/discord).)'
); );
} }

View File

@@ -31,7 +31,7 @@
then you should validate the server. then you should validate the server.
<br /><br /> <br /><br />
For more information, please read our <a For more information, please read our <a
href="https://coolify.io/docs/knowledge-base/cloudflare/tunnels/" target="_blank" href="https://coolify.io/docs/knowledge-base/cloudflare/tunnels/overview" target="_blank"
class="font-medium underline hover:text-yellow-600 dark:hover:text-yellow-200">documentation</a>. class="font-medium underline hover:text-yellow-600 dark:hover:text-yellow-200">documentation</a>.
</div> </div>
@endif @endif

View File

@@ -1,6 +1,6 @@
<form wire:submit.prevent='submit' class="flex flex-col gap-2 w-full"> <form wire:submit.prevent='submit' class="flex flex-col gap-2 w-full">
<x-forms.input id="cloudflare_token" required label="Cloudflare Token" type="password" /> <x-forms.input id="cloudflare_token" required label="Cloudflare Token" type="password" />
<x-forms.input id="ssh_domain" label="Configured SSH Domain" required <x-forms.input id="ssh_domain" label="Configured SSH Domain" required
helper="The SSH domain you configured in Cloudflare. Make sure there is no protocol like http(s):// so you provide a FQDN not a URL. <a class='underline dark:text-white' href='https://coolify.io/docs/knowledge-base/cloudflare/tunnels/#automated' target='_blank'>Documentation</a>" /> helper="The SSH domain you configured in Cloudflare. Make sure there is no protocol like http(s):// so you provide a FQDN not a URL. <a class='underline dark:text-white' href='https://coolify.io/docs/knowledge-base/cloudflare/tunnels/server-ssh' target='_blank'>Documentation</a>" />
<x-forms.button type="submit" isHighlighted @click="modalOpen=false">Continue</x-forms.button> <x-forms.button type="submit" isHighlighted @click="modalOpen=false">Continue</x-forms.button>
</form> </form>

View File

@@ -22,7 +22,7 @@
'If the storage location is in use by any backup jobs those backup jobs will only store the backup locally on the server.', 'If the storage location is in use by any backup jobs those backup jobs will only store the backup locally on the server.',
]" confirmationText="{{ $storage->name }}" ]" confirmationText="{{ $storage->name }}"
confirmationLabel="Please confirm the execution of the actions by entering the Storage Name below" confirmationLabel="Please confirm the execution of the actions by entering the Storage Name below"
shortConfirmationLabel="Storage Name" :confirmWithPassword="false" step2ButtonText="Permanently Delet" /> shortConfirmationLabel="Storage Name" :confirmWithPassword="false" step2ButtonText="Permanently Delete" />
</div> </div>
<div class="flex gap-2"> <div class="flex gap-2">
<x-forms.input label="Name" id="storage.name" /> <x-forms.input label="Name" id="storage.name" />

View File

@@ -27,7 +27,7 @@
<div>You can't delete your last / personal team.</div> <div>You can't delete your last / personal team.</div>
@elseif(currentTeam()->subscription) @elseif(currentTeam()->subscription)
<div>Please cancel your subscription <a class="underline dark:text-white" <div>Please cancel your subscription <a class="underline dark:text-white"
href="{{ route('subscription.show') }}">here</a> before delete this team.</div> href="{{ route('subscription.show') }}">here</a> before deleting this team.</div>
@else @else
@if (currentTeam()->isEmpty()) @if (currentTeam()->isEmpty())
<div class="pb-4">This will delete your team. Beware! There is no coming back!</div> <div class="pb-4">This will delete your team. Beware! There is no coming back!</div>

View File

@@ -20,5 +20,4 @@ services:
- /var/run/docker.sock:/var/run/docker.sock:ro - /var/run/docker.sock:/var/run/docker.sock:ro
environment: environment:
- PORT=45876 - PORT=45876
# Public Key from "Add a new system" in the UI and restart the agent - KEY=${KEY}
# - KEY=""

View File

@@ -1,4 +1,4 @@
# documentation: https://cal.com/docs # documentation: https://cal.com/docs/developing/introduction
# slogan: Scheduling infrastructure for everyone. # slogan: Scheduling infrastructure for everyone.
# tags: calcom,calendso,scheduling,open,source # tags: calcom,calendso,scheduling,open,source
# logo: svgs/calcom.svg # logo: svgs/calcom.svg

View File

@@ -11,7 +11,9 @@ services:
- SERVICE_FQDN_DUPLICATI_8200 - SERVICE_FQDN_DUPLICATI_8200
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
- TZ=Europe/Madrid - TZ=${TZ:-Europe/London}
- SETTINGS_ENCRYPTION_KEY=${SERVICE_PASSWORD_ENCRYPT}
- DUPLICATI__WEBSERVICE_PASSWORD=${SERVICE_PASSWORD_WEB}
volumes: volumes:
- duplicati-config:/config - duplicati-config:/config
- duplicati-backups:/backups - duplicati-backups:/backups

View File

@@ -63,6 +63,15 @@ services:
- DISCORD_SERVER_ROLES=${DISCORD_SERVER_ROLES} - DISCORD_SERVER_ROLES=${DISCORD_SERVER_ROLES}
- PGSSLMODE=${PGSSLMODE:-disable} - PGSSLMODE=${PGSSLMODE:-disable}
- FORCE_HTTPS=${FORCE_HTTPS:-true} - FORCE_HTTPS=${FORCE_HTTPS:-true}
- SMTP_HOST=${SMTP_HOST}
- SMTP_PORT=${SMTP_PORT}
- SMTP_USERNAME=${SMTP_USERNAME}
- SMTP_PASSWORD=${SMTP_PASSWORD}
- SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL}
- SMTP_REPLY_EMAIL=${SMTP_REPLY_EMAIL}
- SMTP_TLS_CIPHERS=${SMTP_TLS_CIPHERS}
- SMTP_SECURE=${SMTP_SECURE}
- SMTP_NAME=${SMTP_NAME}
healthcheck: healthcheck:
disable: true disable: true

View File

@@ -20,7 +20,7 @@ services:
content: | content: |
--- ---
# For configuration options and examples, please see: # For configuration options and examples, please see:
# https://gethomepage.dev/latest/configs/bookmarks # https://gethomepage.dev/configs/bookmarks
- Developer: - Developer:
- Github: - Github:
@@ -53,7 +53,7 @@ services:
content: | content: |
--- ---
# For configuration options and examples, please see: # For configuration options and examples, please see:
# https://gethomepage.dev/latest/configs/docker/ # https://gethomepage.dev/configs/docker/
# my-docker: # my-docker:
# host: 127.0.0.1 # host: 127.0.0.1
@@ -75,7 +75,7 @@ services:
content: | content: |
--- ---
# For configuration options and examples, please see: # For configuration options and examples, please see:
# https://gethomepage.dev/latest/configs/services # https://gethomepage.dev/configs/services
- My First Group: - My First Group:
- My First Service: - My First Service:
@@ -98,7 +98,7 @@ services:
content: | content: |
--- ---
# For configuration options and examples, please see: # For configuration options and examples, please see:
# https://gethomepage.dev/latest/configs/settings # https://gethomepage.dev/configs/settings
providers: providers:
openweathermap: openweathermapapikey openweathermap: openweathermapapikey
@@ -110,7 +110,7 @@ services:
content: | content: |
--- ---
# For configuration options and examples, please see: # For configuration options and examples, please see:
# https://gethomepage.dev/latest/configs/service-widgets # https://gethomepage.dev/widgets/services
- resources: - resources:
cpu: true cpu: true

File diff suppressed because one or more lines are too long