-
Version 2.0.2
Stablepytest / acls (push) Failing after 25sBuild Docker images / worker-amd64 (push) Successful in 46sWorker Clippy check / clippy_check (push) Successful in 46sBuild Docker images / static-arm64 (push) Successful in 47sBuild Docker images / static-amd64 (push) Successful in 59sBuild Docker images / django-amd64 (push) Successful in 2m12sBuild Docker images / worker-arm64 (push) Successful in 2m25sBuild Docker images / django-arm64 (push) Successful in 5m7sreleased this
2026-04-19 20:19:44 +00:00 | 5 commits to main since this releaseNot really any major changes, mainly dependency updates
Full Changelog: 2.0.1...2.0.2
Downloads
-
Version 2.0.1
Stablepytest / acls (push) Failing after 29sBuild Docker images / static-arm64 (push) Successful in 34sWorker Clippy check / clippy_check (push) Successful in 36sBuild Docker images / worker-arm64 (push) Successful in 2m29sBuild Docker images / django-arm64 (push) Successful in 3m50sBuild Docker images / django-amd64 (push) Successful in 1m36sBuild Docker images / static-amd64 (push) Successful in 39sBuild Docker images / worker-amd64 (push) Successful in 38sreleased this
2025-12-08 17:51:38 +00:00 | 27 commits to main since this releaseChanges:
- chore: Consolidated workflows for Docker build into one, and added auto-deploy to ghcr.io and docker.io
- feat: Added native arm64 runner
- fix: Prevent crash of worker's processing results command when variant ID is not an UUID
- feat: Re-wrote the worker in Rust
- feat: Activated Postgres pooling
- chore: Updated dependencies
Downloads
-
2.0.0
Stablereleased this
2025-10-05 15:47:16 +00:00 | 82 commits to main since this releaseComparison since last version: 023f6ac05c...2d21be01da
Nyallo! This is really a big release that has probably been a year in the works, and that we should have published in several smaller releases~ ^^
Reliability improvement of image workers with RabbitMQ
Previously, Kakigoori depended on (unpublished) scripts to execute the tasks of converting images to AVIF and WebP, and used a SQL table, an API, and Python scripts to do that. Now, tasks are distributed instead with RabbitMQ, and the worker code is now available, and packaged in a neat container!
This ensures that:
- Image tasks are distributed way more frequently (almost instantly or when a worker is available), instead of once every minute or when the worker is not busy anymore.
- You can now run multiple workers in parallel (and scale it if you know you're gonna need more of them in a pinch!)
- There is way less overhead. There is a task to be executed, it is sent to RabbitMQ, and the result is also sent through RabbitMQ. No more not-updated tables.
Workers now support the
WORKER_FILE_TYPESenvironment variable to assign different file formats to each worker. You can have all workers process both AVIF and WebP, or you can separate workers for file formats and assign a number of workers independently!Compatibility with Docker and Kubernetes
Kakigoori is now running on k8s! Container images of Kakigoori are now available, and were designed to be stateless (no PVC required) and be able to scale horizontally.
An example of a Kakigoori deployment on k8s is available here: https://git.prettysunflower.moe/prettysunflower/infra/src/commit/a5aa26cba5558d06d2ec5d192e48b2ca847f8233/apps/yuiman/kakigoori
Configuration through environment variables
Instead of using a
local_settings.pyfile, configuration for database, RabbitMQ, S3, DEBUG and SECRET_KEY are done through environment variablesStandardized AVIF and WebP builds
libavif is now standardized on the workers, and are using https://git.prettysunflower.moe/prettysunflower/avif-docker/ with libaom. libwebp is also now using the most upstream version available on Alpine packages repository.
Content-Type on S3 uploads
This is a fix for viewing images outside on
<img>. The correctContent-Typeis now assigned to uploads, and passed through when getting the image.Delete files on S3 when deleted from Kakigoori
Files are now automatically deleted from the S3 remote when deleted from Kakigoori (this does not apply to deletions directly in database)
Uploads are no longer limited to JPEG/PNG
As long as the image is a format recognized by
Pillow, uploads that are not JPEG/PNG should be converted into a JPEG, and processed through the system ^^.Removed GPS data from uploads
For privacy reasons, images containing GPS data in their EXIF now have that data deleted.
Renovate to watch over the dependencies
Yeah, this was long due. Renovate is now here to watch over the dependencies versions and update them when needed
Beggining of automated testing
This work will continue over the next versions, but we started integrating PyTest into the development workflow. Right now, only workers are tested, but there should be more to come.
New homepage!
To celebrate the 2.0.0 release of Kakigoori, we made a new homepage! It's more colourful, and we hope you will like it!
This was a lot of work (and I'm blaming ADHD for the fact it took so long). Next releases should be smaller, see you soon for them ^^
Downloads