{"eid":"join-lemmy","name":"Lemmy + pict-rs","domain":"join-lemmy.org","resolved_by":"domain","topics":["storage"],"n_records":1,"best_vorder":6,"review":null,"aliases":["Lemmy + pict-rs","Lemmy + pict-rs — per-instance image store, no per-user quota","join-lemmy.org"],"records":[{"rid":"storage/lemmy-pict-rs-per-instance-image-store-no-per-user-quota","card":{"rid":"storage/lemmy-pict-rs-per-instance-image-store-no-per-user-quota","eid":"join-lemmy","topic":"storage","slug":"lemmy-pict-rs-per-instance-image-store-no-per-user-quota","provider":"Lemmy + pict-rs — per-instance image store, no per-user quota","url":"https://join-lemmy.org/docs/administration/configuration.html","domain":"join-lemmy.org","category":"fediverse-lemmy","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"per-object-cap","identity_kind":"institution","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":1,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":40000000,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"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 ...","duplicate_of":null,"n_unknown":5},"record":{"topic":"storage","slug":"lemmy-pict-rs-per-instance-image-store-no-per-user-quota","provider":"Lemmy + pict-rs — per-instance image store, no per-user quota","url":"https://join-lemmy.org/docs/administration/configuration.html","category":"fediverse-lemmy","free_tier":{"stated":"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.","unit":"mixed","metered_on":"unstated","source_url":"https://join-lemmy.org/docs/administration/configuration.html","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"per-object-cap set by pict-rs (`max_file_size`, commonly 40 MB","bytes":40000000,"source_url":"https://join-lemmy.org/docs/administration/configuration.html","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://join-lemmy.org/docs/administration/configuration.html","notes":"not stated"},"egress":{"terms":"Free.","metered":false},"interface":["rest"],"interface_detail":"rest","tooling":"Lemmy 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.","chaining":"Lemmy 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.","limits":[{"kind":"per-object-cap","value":"per-object-cap set by pict-rs (`max_file_size`, commonly 40 MB","source":"https://join-lemmy.org/docs/administration/configuration.html"}],"limits_note":"per-object-cap set by pict-rs (`max_file_size`, commonly 40 MB); no per-user byte quota; per-instance disk.","identity_cost":{"kind":"institution","detail":"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","country":null},"reliability_note":"Registration 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.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://lemmy.world/api/v3/site","date":"2026-10-21","proved":"probe: 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"},{"url":"https://join-lemmy.org/docs/administration/configuration.html","date":"2026-10-21","proved":"pict-rs is a separate service; 'Generate thumbnails for external post urls and store them persistently in pict-rs. This also increases storage usage.'"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"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.","extras":{"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"}},"binding":"per-object-cap","binding_note":"the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":40.0,"unit":"MB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]}]}