21
How can I make my Lemmy server delete cached images?
(gregtech.eu)
cross-posted from: https://gregtech.eu/post/4809104
The storage usage is at 340GB currently, which is a lot and it's rapidly increasing. I use Backblaze B2 for my storage. Here is my docker compose file: x-logging: &default-logging driver: "json-file" options: max-size: "50m" max-file: "4"
services: proxy: image: docker.io/library/nginx volumes: - ./nginx_internal.conf:/etc/nginx/nginx.conf:ro,Z - ./proxy_params:/etc/nginx/proxy_params:ro,Z restart: always logging: *default-logging depends_on: - pictrs - lemmy-ui labels: - traefik.enable=true - traefik.http.routers.http-lemmy.entryPoints=http - traefik.http.routers.http-lemmy.rule=Host(`gregtech.eu`) - traefik.http.middlewares.https_redirect.redirectscheme.scheme=https - traefik.http.middlewares.https_redirect.redirectscheme.permanent=true - traefik.http.routers.http-lemmy.middlewares=https_redirect - traefik.http.routers.https-lemmy.entryPoints=https - traefik.http.routers.https-lemmy.rule=Host(`gregtech.eu`) - traefik.http.routers.https-lemmy.service=lemmy - traefik.http.routers.https-lemmy.tls=true - traefik.http.services.lemmy.loadbalancer.server.port=8536 - traefik.http.routers.https-lemmy.tls.certResolver=le-ssl lemmy: image: dessalines/lemmy:0.19.8 hostname: lemmy restart: always logging: *default-logging volumes: - ./lemmy.hjson:/config/config.hjson:Z depends_on: - postgres - pictrs networks: - default - database lemmy-ui: image: dessalines/lemmy-ui:0.19.8 volumes: - ./volumes/lemmy-ui/extra_themes:/app/extra_themes:Z depends_on: - lemmy restart: always logging: *default-logging environment: - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy:8536 - LEMMY_UI_LEMMY_EXTERNAL_HOST=gregtech.eu - LEMMY_UI_HTTPS=true pictrs: image: docker.io/asonix/pictrs:0.5 # this needs to match the pictrs url in lemmy.hjson hostname: pictrs # we can set options to pictrs like this, here we set max. image size and forced format for conversion # entrypoint: /sbin/tini -- /usr/local/bin/pict-rs -p /mnt -m 4 --image-format webp #entrypoint: /sbin/tini -- /usr/local/bin/pict-rs run --max-file-count 10 --media-max-file-size 500 --media-retention-proxy 10d --media-retention-variants 10d filesystem sled -p /mnt user: 991:991 environment: - PICTRS__STORE__TYPE=object_storage - PICTRS__STORE__ENDPOINT=https://s3.eu-central-003.backblazeb2.com/ - PICTRS__STORE__BUCKET_NAME=gregtech-lemmy - PICTRS__STORE__REGION=eu-central - PICTRS__STORE__USE_PATH_STYLE=false - PICTRS__STORE__ACCESS_KEY=redacted - PICTRS__STORE__SECRET_KEY=redacted - MEDIA__RETENTION__VARIANTS=4d - MEDIA__RETENTION__PROXY=4d #- PICTRS__MEDIA__IMAGE__FORMAT=webp #- PICTRS__MEDIA__IMAGE__QUALITY__WEBP=50 #- PICTRS__MEDIA__ANIMATION__QUALITY=50 volumes: - ./volumes/pictrs:/mnt:Z restart: always logging: *default-logging postgres: image: docker.io/postgres:16-alpine hostname: postgres volumes: - ./volumes/postgres:/var/lib/postgresql/data:Z #- ./customPostgresql.conf:/etc/postgresql.conf:Z restart: always #command: postgres -c config_file=/etc/postgresql.conf shm_size: 256M logging: *default-logging environment: - POSTGRES_PASSWORD=password - POSTGRES_USER=lemmy - POSTGRES_DB=lemmy networks: - database postfix: image: docker.io/mwader/postfix-relay restart: "always" logging: *default-logging #pictrs-safety: # image: ghcr.io/db0/pictrs-safety:v1.2.2 # hostname: pictrs-safety # environment: # ports: # - "14051:14051" # user: 991:991 # restart: always # logging: *default-logging # depends_on: # - pictrs networks: default: name: traefik_access external: true database:
I didn't see your Lemmy config much but have you looked at setting in Lemmy for pictrs?
This stores images temporarily on your pictrs instance, I am sitting at 8GB since this feature came out.
Here's my config
This blog post talks about the image proxying mode here It basically downloads the pictures temporarily. This wouldn't account for your existing ones. Assuming you are on one of the most recent versions, you should be able to lookup and delete images on the admin UI as well,, but image proxying would only apply to new content.
What happens when every server is proxying images?