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?
image_mode: "ProxyAllImages"
This stores images temporarily on your pictrs instance, I am sitting at 8GB since this feature came out.
Here’s my config
{ # for more info about the config, check out the documentation # https://join-lemmy.org/docs/en/administration/configuration.html database: { host: postgres password: "redacted" # Alternative way: #uri: "postgresql://lemmy:{{ postgres_password }}@postgres/lemmy" } hostname: "gregtech.eu" pictrs: { url: "http://pictrs:8080/" api_key: "redacted" } email: { smtp_server: "smtp.sendgrid.net:587" smtp_from_address: "lemmy@lemmy.gregtech.eu" tls_type: "starttls" smtp_login: "apikey" smtp_password: "redacted" } # Parameters for automatic configuration of new instance (only used at first start) setup: { # Username for the admin user admin_username: "gregor" # Password for the admin user. It must be between 10 and 60 characters. admin_password: "redacted" # Name of the site, can be changed later. Maximum 20 characters. site_name: "Gremmy" # Email for the admin user (optional, can be omitted and set later through the website) admin_email: "redacted" } }
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?