fshy

fshy / Storage

Lemmy + pict-rs

join-lemmy.org · Storage · 1 record · JSON

Lemmy + pict-rs — per-instance image store, no per-user quota Storage

fails: quotainstitutionno cardRper-object-cap

join-lemmy.org/docs/administration/configuration.html · fediverse-lemmy · storage/lemmy-pict-rs-per-instance-image-store-no-per-user-quota · JSON · compare

Free tierNo per-user quota in Lemmy's own schema — the bound is pict-rs (the separate Rust image server) and the instance's disk. Upload is gated per-instance by the image_upload / image_mode local-site flag rather than by bytes.
unit mixed; metered on unstated
Pricenone stated
Per-object capper-object-cap set by pict-rs (max_file_size, commonly 40 MB (40000000 bytes)
Retentionnot stated
EgressFree.
Identityinstitution derived from the record's prose, not from an identity field, and no signup was executed: stration gated on the big instances. Also note Lemmy stores federated/remote images too, so operator disk fills from other people's content, which is why uploads get turned off. Lemmy is th
Limits
  • per-object-cap per-object-cap set by pict-rs (max_file_size, commonly 40 MB source
per-object-cap set by pict-rs (max_file_size, commonly 40 MB); no per-user byte quota; per-instance disk.
Bindingper-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota
Interfacerest rest
ToolingLemmy API v3: POST /api/v3/pictrs/image (multipart) or /api/v3/upload; needs a JWT from POST /api/v3/user/login. pict-rs itself exposes POST /image on its own port (often 8080) — on instances that expose it, that is a cleaner upload path than the Lemmy API.
Composes withLemmy is the weakest of the family: most large instances now REQUIRE an application (lemmy.world registration_mode = 'RequireApplication'), and image_mode is frequently set to block uploads entirely or to proxy-only. Multiplier depends entirely on finding a permissive instance.
ReliabilityRegistration gated on the big instances. Also note Lemmy stores federated/remote images too, so operator disk fills from other people's content, which is why uploads get turned off.
NotesNo per-user quota in Lemmy's own schema — the bound is pict-rs (the separate Rust image server) and the instance's disk. Upload is gated per-instance by the image_upload / image_mode local-site flag rather than by bytes.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Parsed numbers
  • $.limits[0].value limit:per-object-cap 40.0 MB
Evidence (2)
datesourcewhat it proved
2026-10-21lemmy.world/api/v3/siteprobe: GET -> 200, local_site.registration_mode='RequireApplication', version 0.19.19-9-gc55dd1b1a; local_site carries NO image upload size field (only image_mode/enable_nsfw-style flags) — confirms the quota lives in pict-rs, not Lemmy
2026-10-21join-lemmy.org/docs/administration/configuration.htmlpict-rs is a separate service; 'Generate thumbnails for external post urls and store them persistently in pict-rs. This also increases storage usage.'
More fields (2)
{
 "verdict_note": "PLAN.md §3.2 rules fails-quota by default, because no row in this set clears 500 GiB per unit for a user.",
 "dead_end": {
  "failure_class": "quota",
  "why": "No per-user quota in Lemmy's own schema — the bound is pict-rs (the separate Rust image server) and the instance's disk. Upload is gated per-instance by the `image_upload` / `image_mode` local-site flag rather than by bytes.",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (5)
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted