Merge branch 'next' into feat-db-ssl
This commit is contained in:
6685
CHANGELOG.md
Normal file
6685
CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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',
|
||||||
|
@@ -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()
|
||||||
|
@@ -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);
|
||||||
|
@@ -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',
|
||||||
|
@@ -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>استخدم نطاقك الخاص بدلاً من ذلك."
|
||||||
}
|
}
|
||||||
|
@@ -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."
|
||||||
}
|
}
|
||||||
|
11
lang/it.json
11
lang/it.json
@@ -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."
|
||||||
}
|
}
|
||||||
|
@@ -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).)'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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>
|
||||||
|
@@ -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" />
|
||||||
|
@@ -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>
|
||||||
|
@@ -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=""
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
@@ -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
Reference in New Issue
Block a user