• 2.0.2 e0bdcb5990

    Version 2.0.2
    pytest / acls (push) Failing after 25s
    Build Docker images / worker-amd64 (push) Successful in 46s
    Worker Clippy check / clippy_check (push) Successful in 46s
    Build Docker images / static-arm64 (push) Successful in 47s
    Build Docker images / static-amd64 (push) Successful in 59s
    Build Docker images / django-amd64 (push) Successful in 2m12s
    Build Docker images / worker-arm64 (push) Successful in 2m25s
    Build Docker images / django-arm64 (push) Successful in 5m7s
    Stable

    prettysunflower released this 2026-04-19 20:19:44 +00:00 | 5 commits to main since this release

    Not really any major changes, mainly dependency updates

    Full Changelog: 2.0.1...2.0.2

    Downloads
  • 2.0.1 3a2b9e31b4

    Version 2.0.1
    pytest / acls (push) Failing after 29s
    Build Docker images / static-arm64 (push) Successful in 34s
    Worker Clippy check / clippy_check (push) Successful in 36s
    Build Docker images / worker-arm64 (push) Successful in 2m29s
    Build Docker images / django-arm64 (push) Successful in 3m50s
    Build Docker images / django-amd64 (push) Successful in 1m36s
    Build Docker images / static-amd64 (push) Successful in 39s
    Build Docker images / worker-amd64 (push) Successful in 38s
    Stable

    prettysunflower released this 2025-12-08 17:51:38 +00:00 | 27 commits to main since this release

    Changes:

    • 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 ede044db6e

    2.0.0
    Build Docker images for static folder / acls (push) Successful in 36s
    pytest / acls (push) Successful in 1m0s
    Build worker Docker image / acls (push) Successful in 1m17s
    Build Docker images / acls (push) Successful in 1m49s
    Stable

    prettysunflower released this 2025-10-05 15:47:16 +00:00 | 82 commits to main since this release

    Comparison 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_TYPES environment 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.py file, configuration for database, RabbitMQ, S3, DEBUG and SECRET_KEY are done through environment variables

    Standardized 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 correct Content-Type is 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