Skip to content

Commit 888e964

Browse files
authored
Merge branch 'main' into main
2 parents b84576c + 0eea315 commit 888e964

File tree

79 files changed

+1245
-222
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+1245
-222
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
name: Coolify Realtime Development (v4)
2+
3+
on:
4+
push:
5+
branches: [ "next" ]
6+
paths:
7+
- .github/workflows/coolify-realtime.yml
8+
- docker/coolify-realtime/Dockerfile
9+
- docker/coolify-realtime/terminal-server.js
10+
- docker/coolify-realtime/package.json
11+
- docker/coolify-realtime/soketi-entrypoint.sh
12+
13+
env:
14+
REGISTRY: ghcr.io
15+
IMAGE_NAME: "coollabsio/coolify-realtime"
16+
17+
jobs:
18+
amd64:
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
packages: write
23+
steps:
24+
- uses: actions/checkout@v4
25+
- name: Login to ghcr.io
26+
uses: docker/login-action@v3
27+
with:
28+
registry: ${{ env.REGISTRY }}
29+
username: ${{ github.actor }}
30+
password: ${{ secrets.GITHUB_TOKEN }}
31+
- name: Get Version
32+
id: version
33+
run: |
34+
echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app ghcr.io/jqlang/jq:latest '.coolify.realtime.version' versions.json)"|xargs >> $GITHUB_OUTPUT
35+
- name: Build image and push to registry
36+
uses: docker/build-push-action@v5
37+
with:
38+
no-cache: true
39+
context: .
40+
file: docker/coolify-realtime/Dockerfile
41+
platforms: linux/amd64
42+
push: true
43+
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next
44+
labels: |
45+
coolify.managed=true
46+
aarch64:
47+
runs-on: [ self-hosted, arm64 ]
48+
permissions:
49+
contents: read
50+
packages: write
51+
steps:
52+
- uses: actions/checkout@v4
53+
- name: Login to ghcr.io
54+
uses: docker/login-action@v3
55+
with:
56+
registry: ${{ env.REGISTRY }}
57+
username: ${{ github.actor }}
58+
password: ${{ secrets.GITHUB_TOKEN }}
59+
- name: Get Version
60+
id: version
61+
run: |
62+
echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app ghcr.io/jqlang/jq:latest '.coolify.realtime.version' versions.json)"|xargs >> $GITHUB_OUTPUT
63+
- name: Build image and push to registry
64+
uses: docker/build-push-action@v5
65+
with:
66+
no-cache: true
67+
context: .
68+
file: docker/coolify-realtime/Dockerfile
69+
platforms: linux/aarch64
70+
push: true
71+
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-aarch64
72+
labels: |
73+
coolify.managed=true
74+
merge-manifest:
75+
runs-on: ubuntu-latest
76+
permissions:
77+
contents: read
78+
packages: write
79+
needs: [ amd64, aarch64 ]
80+
steps:
81+
- name: Checkout
82+
uses: actions/checkout@v4
83+
- name: Set up QEMU
84+
uses: docker/setup-qemu-action@v3
85+
- name: Set up Docker Buildx
86+
uses: docker/setup-buildx-action@v3
87+
- name: Login to ghcr.io
88+
uses: docker/login-action@v3
89+
with:
90+
registry: ${{ env.REGISTRY }}
91+
username: ${{ github.actor }}
92+
password: ${{ secrets.GITHUB_TOKEN }}
93+
- name: Get Version
94+
id: version
95+
run: |
96+
echo "VERSION=$(docker run --rm -v "$(pwd):/app" -w /app ghcr.io/jqlang/jq:latest '.coolify.realtime.version' versions.json)"|xargs >> $GITHUB_OUTPUT
97+
- name: Create & publish manifest
98+
run: |
99+
docker buildx imagetools create --append ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next-aarch64 --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}-next
100+
- uses: sarisia/actions-status-discord@v1
101+
if: always()
102+
with:
103+
webhook: ${{ secrets.DISCORD_WEBHOOK_PROD_RELEASE_CHANNEL }}

.github/workflows/coolify-realtime.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Coolify Realtime (v4)
22

33
on:
44
push:
5-
branches: [ "main", "next" ]
5+
branches: [ "main" ]
66
paths:
77
- .github/workflows/coolify-realtime.yml
88
- docker/coolify-realtime/Dockerfile

app/Actions/Database/StartDragonfly.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,6 @@ public function handle(StandaloneDragonfly $database)
4646
'networks' => [
4747
$this->database->destination->network,
4848
],
49-
'ulimits' => [
50-
'memlock' => '-1',
51-
],
5249
'labels' => [
5350
'coolify.managed' => 'true',
5451
],

app/Actions/Fortify/CreateNewUser.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace App\Actions\Fortify;
44

5-
use App\Models\InstanceSettings;
65
use App\Models\User;
76
use Illuminate\Support\Facades\Hash;
87
use Illuminate\Support\Facades\Validator;
@@ -20,7 +19,7 @@ class CreateNewUser implements CreatesNewUsers
2019
*/
2120
public function create(array $input): User
2221
{
23-
$settings = InstanceSettings::get();
22+
$settings = instanceSettings();
2423
if (! $settings->is_registration_enabled) {
2524
abort(403);
2625
}
@@ -48,7 +47,7 @@ public function create(array $input): User
4847
$team = $user->teams()->first();
4948

5049
// Disable registration after first user is created
51-
$settings = InstanceSettings::get();
50+
$settings = instanceSettings();
5251
$settings->is_registration_enabled = false;
5352
$settings->save();
5453
} else {

app/Actions/License/CheckResaleLicense.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace App\Actions\License;
44

5-
use App\Models\InstanceSettings;
65
use Illuminate\Support\Facades\Http;
76
use Lorisleiva\Actions\Concerns\AsAction;
87

@@ -13,7 +12,7 @@ class CheckResaleLicense
1312
public function handle()
1413
{
1514
try {
16-
$settings = InstanceSettings::get();
15+
$settings = instanceSettings();
1716
if (isDev()) {
1817
$settings->update([
1918
'is_resale_license_active' => true,

app/Actions/Server/CleanupDocker.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace App\Actions\Server;
44

5-
use App\Models\InstanceSettings;
65
use App\Models\Server;
76
use Lorisleiva\Actions\Concerns\AsAction;
87

@@ -12,7 +11,7 @@ class CleanupDocker
1211

1312
public function handle(Server $server)
1413
{
15-
$settings = InstanceSettings::get();
14+
$settings = instanceSettings();
1615
$helperImageVersion = data_get($settings, 'helper_version');
1716
$helperImage = config('coolify.helper_image');
1817
$helperImageWithVersion = "$helperImage:$helperImageVersion";

app/Actions/Server/UpdateCoolify.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace App\Actions\Server;
44

55
use App\Jobs\PullHelperImageJob;
6-
use App\Models\InstanceSettings;
76
use App\Models\Server;
87
use Lorisleiva\Actions\Concerns\AsAction;
98

@@ -20,7 +19,7 @@ class UpdateCoolify
2019
public function handle($manual_update = false)
2120
{
2221
try {
23-
$settings = InstanceSettings::get();
22+
$settings = instanceSettings();
2423
$this->server = Server::find(0);
2524
if (! $this->server) {
2625
return;

app/Console/Commands/Dev.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@ public function init()
4848
echo "Generating APP_KEY.\n";
4949
Artisan::call('key:generate');
5050
}
51+
52+
// Generate STORAGE link if not exists
53+
if (! file_exists(public_path('storage'))) {
54+
echo "Generating STORAGE link.\n";
55+
Artisan::call('storage:link');
56+
}
57+
5158
// Seed database if it's empty
5259
$settings = InstanceSettings::find(0);
5360
if (! $settings) {

app/Console/Commands/Init.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use App\Enums\ApplicationDeploymentStatus;
88
use App\Models\ApplicationDeploymentQueue;
99
use App\Models\Environment;
10-
use App\Models\InstanceSettings;
1110
use App\Models\ScheduledDatabaseBackup;
1211
use App\Models\Server;
1312
use App\Models\StandalonePostgresql;
@@ -69,7 +68,7 @@ public function handle()
6968
} catch (\Throwable $e) {
7069
echo "Could not setup dynamic configuration: {$e->getMessage()}\n";
7170
}
72-
$settings = InstanceSettings::get();
71+
$settings = instanceSettings();
7372
if (! is_null(env('AUTOUPDATE', null))) {
7473
if (env('AUTOUPDATE') == true) {
7574
$settings->update(['is_auto_update_enabled' => true]);
@@ -196,7 +195,7 @@ private function send_alive_signal()
196195
{
197196
$id = config('app.id');
198197
$version = config('version');
199-
$settings = InstanceSettings::get();
198+
$settings = instanceSettings();
200199
$do_not_track = data_get($settings, 'do_not_track');
201200
if ($do_not_track == true) {
202201
echo "Skipping alive as do_not_track is enabled\n";

app/Console/Kernel.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
use App\Jobs\PullTemplatesFromCDN;
1313
use App\Jobs\ScheduledTaskJob;
1414
use App\Jobs\ServerCheckJob;
15+
use App\Jobs\ServerStorageCheckJob;
1516
use App\Jobs\UpdateCoolifyJob;
16-
use App\Models\InstanceSettings;
1717
use App\Models\ScheduledDatabaseBackup;
1818
use App\Models\ScheduledTask;
1919
use App\Models\Server;
@@ -28,7 +28,7 @@ class Kernel extends ConsoleKernel
2828
protected function schedule(Schedule $schedule): void
2929
{
3030
$this->all_servers = Server::all();
31-
$settings = InstanceSettings::get();
31+
$settings = instanceSettings();
3232

3333
$schedule->job(new CleanupStaleMultiplexedConnections)->hourly();
3434

@@ -66,7 +66,7 @@ protected function schedule(Schedule $schedule): void
6666

6767
private function pull_images($schedule)
6868
{
69-
$settings = InstanceSettings::get();
69+
$settings = instanceSettings();
7070
$servers = $this->all_servers->where('settings.is_usable', true)->where('settings.is_reachable', true)->where('ip', '!=', '1.2.3.4');
7171
foreach ($servers as $server) {
7272
if ($server->isSentinelEnabled()) {
@@ -88,7 +88,7 @@ private function pull_images($schedule)
8888

8989
private function schedule_updates($schedule)
9090
{
91-
$settings = InstanceSettings::get();
91+
$settings = instanceSettings();
9292

9393
$updateCheckFrequency = $settings->update_check_frequency;
9494
$schedule->job(new CheckForUpdatesJob)
@@ -116,6 +116,7 @@ private function check_resources($schedule)
116116
}
117117
foreach ($servers as $server) {
118118
$schedule->job(new ServerCheckJob($server))->everyMinute()->onOneServer();
119+
// $schedule->job(new ServerStorageCheckJob($server))->everyMinute()->onOneServer();
119120
$serverTimezone = $server->settings->server_timezone;
120121
if ($server->settings->force_docker_cleanup) {
121122
$schedule->job(new DockerCleanupJob($server))->cron($server->settings->docker_cleanup_frequency)->timezone($serverTimezone)->onOneServer();

0 commit comments

Comments
 (0)