- Add a vips builder stage that compiles libvips 8.18.6 from source
(pinned tarball + sha256), linked against distro libheif/aom/dav1d
(AVIF/HEIC) and libjxl (JPEG XL).
- Trim delegates to the formats Pixelfed uses: jpeg, png, gif, webp,
avif/heic, jxl; disable tiff, pdf, svg, openexr, magick, etc. to keep
the library small and reduce attack surface on untrusted uploads.
- Drop the ext-vips C extension (incompatible with libvips 8.18 and
unused: Pixelfed uses jcupitt/vips via FFI) and keep ffi enabled.
- Update runtime deps to match the compiled library.
- Add MEDIA_TYPES (webp/avif/jxl) to .env.example and .env.docker.example.
Switch IMAGE_DRIVER default from gd to vips in config/image.php and the
shipped .env examples. libvips is faster, lower-memory, and has strong
WebP/AVIF support; both libvips and the php-vips extension ship in the
official Docker image. ImageDriverManager already maps 'vips' to the
installed Intervention Vips driver, so no code change is needed.
.env.testing stays on gd because the CI test runners install the gd
extension, not php-vips.
- Remove Passport::personalAccessClientId() (removed in Passport v13, auto-discovers now)
- Remove Passport::enableImplicitGrant() (legacy grant, no clients use it)
- Flatten config instance.oauth.pat to pat_enabled (remove dead pat.id key)
- Add OAUTH_PAT_ENABLED=false to .env.example and .env.docker.example
- Show swal alert when PATs disabled instead of hidden API error
- Improve store() error handling to surface 403 messages in the UI
- Remove OAUTH_PAT_ID row from admin diagnostics blade
* Update .env.docker
Registry has changed. Old registry has been discontinued in August 2024. New Registry added, format of Docker tag has been adjusted as it now contains the Debian Release as well.
Sample Version is set to current stable but can be adjusted to any of the available branches.
* Update .env.docker
Stick major.minor according to https://jippi.github.io/docker-pixelfed/customize/tags/#pixelfed-version
Disable Debian Release Check until it's solved in dottie.
Closes https://github.com/pixelfed/pixelfed/issues/5264
* New translations web.php (Finnish)
[ci skip]
* New translations web.php (Finnish)
[ci skip]
* fix: don't restore memory limit after cities import
Since this command can only be invoked by CLI, the process will exit after a successful import, so restoring the transient PHP memory limit doesn't really have any affect.
In PHP 8.4, this throws the following error (which doesn't happen in 8.3 and below)
> [entrypoint / 11-first-time-setup.sh] - (stderr) 128769/128769 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%[2025-01-20 11:29:23] production.ERROR: Failed to set memory limit to 134217728 bytes (Current memory usage is 134746112 bytes) {"exception":"[object] (ErrorException(code: 0): Failed to set memory limit to 134217728 bytes (Current memory usage is 134746112 bytes) at /var/www/app/Console/Commands/ImportCities.php:140)
It seems to be a 8.4 behavior change, so removing the logic would make it go away
* New translations web.php (Finnish)
[ci skip]
* New translations web.php (Finnish)
[ci skip]
* New translations web.php (Portuguese)
[ci skip]
* New translations web.php (Portuguese)
[ci skip]
* fix(compose-modal): avoid WebGL if it's not needed
* fix(compose-modal): update webgl-media-editor
* New translations web.php (Hungarian)
[ci skip]
* New translations web.php (Russian)
[ci skip]
* New translations web.php (Russian)
[ci skip]
* Update .env.example
Adding the parameter INSTANCE_DISCOVER_PUBLIC="true" to prevent a HTTP 403 error at the explorer tab in the instance preview.
* New variable for lang spanish
* Variable for lang spanish
* Update Dockerfile, fixes#5535#5559
* Fix#5582
* Fix#5632
* Update status twitter:card to summary_large_image for images/albums
* Update changelog
---------
Co-authored-by: Lioh Moeller <lioh.moeller@gmx.net>
Co-authored-by: Christian Winther <jippignu@gmail.com>
Co-authored-by: Taye Adeyemi <dev@taye.me>
Co-authored-by: stemy2 <stemy2@users.noreply.github.com>
Co-authored-by: Uthanien <feldarec@gmail.com>