fshy

Home / Storage

Self-hosted Synapse media repository

matrix-org.github.io/synapse/latest/usage/configuration/confMessagingstorage/self-hosted-synapse-media-repositoryJSONcomparereport an errorprovider JSON

Free allowance
Unbounded — max_upload_size defaults to 50M and can be set to any value; storage and media retention are entirely operator-controlled.
Verdict
self-hosted, last resortverdict fails-egress: data cannot be read back out at a usable rate or price. Self-hosted options are listed last, because this site is for users who have no hardware.
Cost
free tier
Identity
institution?placeholder, not evidence; card unknown, phone unknown
Binding limit
noneno named constraint binds
Evidence
reported2 sources; a third party said so
Freshness
stale on 2026-11-05checked 2026-10-21 (inherited); stale on 2026-11-05
Free tierUnbounded — max_upload_size defaults to 50M and can be set to any value; storage and media retention are entirely operator-controlled.
unit mixed; metered on stored-bytes
Pricenone stated
Identityinstitution (inferred, not read) not published
EgressYour own server's bandwidth.
Per-object capnot stated
Retentionnot stated
Interfaces3, rest, webdav, rclone rest
ToolingSynapse (Python) or Dendrite/Conduit; standard Matrix media API so rclone's s3/webdav-adjacent tooling plus any Matrix SDK works. Admin media API allows listing and purging media per user/room.
Composes withNot a free provider — the multiplier angle is that media is content-addressed and deduplicated by Synapse, and federation lets you push copies to other homeservers as a second replica.
ReliabilityDefault installs are safe; the risk is operator misconfiguration — enabling media_retention turns the repo into a TTL cache. Federation media cache is the first thing purged.
Parsed numbers
  • has-free-tier 1
Evidence 2
datesourcewhat it proved
2026-10-21matrix-org.github.io/synapse/latest/usage/configuration/conf'max_upload_size — The largest allowed upload size in bytes... Defaults to 50M.'
2026-10-21matrix-org.github.io/synapse/latest/usage/configuration/conf'media_retention ... control whether media will be purged if it has not been accessed in a given amount of time'
More fields 1
dead end{"failure_class": "retention","why": "Unbounded — `max_upload_size` defaults to 50M and can be set to any value; storage and media retention are entirely operator-controlled.","retry_when": null,"first_recorded": "2026-10-21"}
Unknown values 4
  • per object cap notes: the field may be stated in a source that was not read
  • per object cap stated: the field may be stated in a source that was not read
  • retention notes: the field may be stated in a source that was not read
  • retention stated: the field may be stated in a source that was not read