Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
11a1581
Update Node.js package dependencies (#2329)
notAreYouScared May 11, 2026
92bfccb
Fix multi file upload (#2331)
rxtted May 19, 2026
8f7dbe5
move some hardcoded ratelimits for the api to env vars (#2332)
O2theC May 19, 2026
dcba4a9
Listen for `install completed` event (#2345)
notAreYouScared May 20, 2026
81bb09f
Add option to disable password login (#2318)
karaolidis May 20, 2026
110fdd2
Laravel 13.11.2 Shift (#2348)
lancepioch May 20, 2026
8f01095
Update readme.md (#2351)
lancepioch May 21, 2026
a99f18b
chore(i18n): Automate Crowdin source sync and translation pull workfl…
apple050620312 May 22, 2026
447a8c1
ci: Fix Crowdin synchronization paths and optimize configs (#2354)
apple050620312 May 26, 2026
13bb47e
Make sure plugin name doesn't contain path when importing (#2356)
Boy132 May 26, 2026
cb21f13
composer upgrade (#2359)
notAreYouScared May 27, 2026
f676b6c
Add error handling when trying to get extension from url (#2361)
Boy132 May 28, 2026
02e4527
Replace hardcoded `pelican` with config value (#2362)
Boy132 May 28, 2026
2a328a2
Improve Global Searching in admin panel (#2327)
notAreYouScared May 28, 2026
be6abce
Add `acceptedFileTypes` to font upload and add can check to save sett…
Boy132 Jun 2, 2026
28452e2
Return empty array instead of null when plugin update checking fails …
Boy132 Jun 2, 2026
1362242
Fix dark mode (#2373)
hUwUtao Jun 3, 2026
4d11457
Laravel 13.14.0 Shift (#2374)
lancepioch Jun 8, 2026
b3fe96f
docker: Update php to 8.5 and node to 22 (#2380)
QuintenQVD0 Jun 8, 2026
f791a3a
new api settings ui stuff (#2350)
O2theC Jun 9, 2026
a46443e
restore daemon error surface for wings 4xx (#2325)
rxtted Jun 9, 2026
ac3db5a
Add back `bg-white` to small stat (#2381)
Boy132 Jun 9, 2026
90fbc87
Fix sed command syntax in docker-publish.yml (#2372)
hUwUtao Jun 9, 2026
1bd4492
Laravel 13.15.0 Shift (#2382)
lancepioch Jun 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ jobs:
- name: Update version in config/app.php (tag)
if: "github.event_name == 'release' && github.event.action == 'published'"
run: |
sed -i "s/'version' => 'canary',/'version' => '${{ steps.build_info.outputs.version_tag }}',/" config/app.php
sed -i "s|'version' => 'canary',|'version' => '${{ steps.build_info.outputs.version_tag }}',|" config/app.php

- name: Build and Push (tag)
uses: docker/build-push-action@v6
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/download-translations.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Download Crowdin Translations

on:
schedule:
- cron: '0 0 * * 0' # Every Sunday at midnight
workflow_dispatch:

jobs:
download-translations:
name: Download Translations from Crowdin
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Download Translations from Crowdin
uses: crowdin/github-action@v2
with:
upload_sources: false
upload_translations: false
download_translations: true
export_only_approved: true
localization_branch_name: i18n_crowdin_translations
create_pull_request: true
pull_request_title: 'New Crowdin Translations'
pull_request_body: 'New Crowdin translations by [Crowdin GH Action](https://github.com/crowdin/github-action)'
pull_request_base_branch_name: 'main'
crowdin_branch_name: main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
32 changes: 32 additions & 0 deletions .github/workflows/upload-sources.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Upload Crowdin Sources

on:
push:
branches: [ main ]
paths:
- 'lang/en/**'
- 'crowdin.yml'
workflow_dispatch:

jobs:
upload-sources:
name: Upload Sources to Crowdin
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Upload Sources to Crowdin
uses: crowdin/github-action@v2
with:
upload_sources: true
upload_translations: false
download_translations: false
crowdin_branch_name: main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ RUN composer install --no-dev --no-interaction --no-autoloader --no-scripts
# ================================
# Stage 1-2: Yarn Install
# ================================
FROM --platform=$TARGETOS/$TARGETARCH node:20-alpine AS yarn
FROM --platform=$TARGETOS/$TARGETARCH node:22-alpine AS yarn

WORKDIR /build

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.base
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# ================================
# Stage 0: Build PHP Base Image
# ================================
FROM --platform=$TARGETOS/$TARGETARCH php:8.4-fpm-alpine
FROM --platform=$TARGETOS/$TARGETARCH php:8.5-fpm-alpine

ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/

Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# syntax=docker.io/docker/dockerfile:1.13-labs
# Pelican Development Dockerfile

FROM --platform=$TARGETOS/$TARGETARCH php:8.4-fpm-alpine AS base
FROM --platform=$TARGETOS/$TARGETARCH php:8.5-fpm-alpine AS base

ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/

Expand All @@ -26,7 +26,7 @@ RUN composer install --no-dev --no-interaction --no-autoloader --no-scripts
# ================================
# Stage 1-2: Yarn Install
# ================================
FROM --platform=$TARGETOS/$TARGETARCH node:20-alpine AS yarn
FROM --platform=$TARGETOS/$TARGETARCH node:22-alpine AS yarn

WORKDIR /build

Expand Down
9 changes: 7 additions & 2 deletions app/Console/Commands/Egg/CheckEggUpdatesCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,13 @@ private function check(Egg $egg, EggExporterService $exporterService): void
return;
}

$ext = strtolower(pathinfo(parse_url($egg->update_url, PHP_URL_PATH), PATHINFO_EXTENSION));
$isYaml = in_array($ext, ['yaml', 'yml']);
$extension = strtolower(pathinfo(parse_url($egg->update_url, PHP_URL_PATH), PATHINFO_EXTENSION));

if (empty($extension)) {
throw new Exception('Unsupported file format.');
}

$isYaml = in_array($extension, ['yaml', 'yml']);

$local = $isYaml
? Yaml::parse($exporterService->handle($egg->id, EggFormat::YAML))
Expand Down
12 changes: 6 additions & 6 deletions app/Enums/ResourceLimit.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ public function middleware(): string
public function limit(): Limit
{
return match ($this) {
self::Websocket => Limit::perMinute(5),
self::BackupRestore => Limit::perMinutes(15, 3),
self::DatabaseCreate => Limit::perMinute(2),
self::SubuserCreate => Limit::perMinutes(15, 10),
self::FilePull => Limit::perMinutes(10, 5),
default => Limit::perMinute(2),
self::Websocket => Limit::perMinutes(config('http.rate_limit.websocket_period'), config('http.rate_limit.websocket')),
self::BackupRestore => Limit::perMinutes(config('http.rate_limit.backup_restore_period'), config('http.rate_limit.backup_restore')),
self::DatabaseCreate => Limit::perMinutes(config('http.rate_limit.database_create_period'), config('http.rate_limit.database_create')),
self::SubuserCreate => Limit::perMinutes(config('http.rate_limit.subuser_create_period'), config('http.rate_limit.subuser_create')),
self::FilePull => Limit::perMinutes(config('http.rate_limit.file_pull_period'), config('http.rate_limit.file_pull')),
default => Limit::perMinutes(config('http.rate_limit.default_period'), config('http.rate_limit.default')),
};
}

Expand Down
2 changes: 1 addition & 1 deletion app/Filament/Admin/Pages/Dashboard.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public function getColumns(): int|array

public function getHeading(): string
{
return trans('admin/dashboard.heading');
return trans('admin/dashboard.heading', ['app' => config('app.name')]);
}

public function getSubheading(): string
Expand Down
Loading
Loading