{"id":13551096,"url":"https://github.com/t2bot/matrix-media-repo","last_synced_at":"2026-01-15T22:18:20.822Z","repository":{"id":28164813,"uuid":"110321368","full_name":"t2bot/matrix-media-repo","owner":"t2bot","description":"Highly configurable multi-domain media repository for Matrix.","archived":false,"fork":false,"pushed_at":"2025-11-20T01:15:49.000Z","size":122419,"stargazers_count":225,"open_issues_count":109,"forks_count":84,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-13T03:35:47.921Z","etag":null,"topics":["hacktoberfest","homeserver","matrix","matrix-media","media","s3"],"latest_commit_sha":null,"homepage":"https://docs.t2bot.io/matrix-media-repo","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/t2bot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-11-11T05:41:50.000Z","updated_at":"2026-01-11T15:30:34.000Z","dependencies_parsed_at":"2023-02-14T04:16:09.042Z","dependency_job_id":"f2b3c439-4bf4-4766-ab05-f1f85b0e4f79","html_url":"https://github.com/t2bot/matrix-media-repo","commit_stats":null,"previous_names":["turt2live/matrix-media-repo"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/t2bot/matrix-media-repo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t2bot%2Fmatrix-media-repo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t2bot%2Fmatrix-media-repo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t2bot%2Fmatrix-media-repo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t2bot%2Fmatrix-media-repo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/t2bot","download_url":"https://codeload.github.com/t2bot/matrix-media-repo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t2bot%2Fmatrix-media-repo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28472625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T22:13:38.078Z","status":"ssl_error","status_checked_at":"2026-01-15T22:12:11.737Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","homeserver","matrix","matrix-media","media","s3"],"created_at":"2024-08-01T12:01:42.258Z","updated_at":"2026-01-15T22:18:20.806Z","avatar_url":"https://github.com/t2bot.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# matrix-media-repo\n\nMMR is a highly configurable multi-homeserver media repository for Matrix. It is an optional component of your homeserver \nsetup, and recommended only for large individual servers or hosting providers with many servers.\n\n**If you're looking for an S3 connector, please consider using [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) instead.**\n\nSmaller homeservers can still set this up, though may find it difficult to deploy or use. A high level of knowledge regarding\nthe Matrix homeserver stack is assumed.\n\n## Documentation and support\n\nMatrix room: [#media-repo:t2bot.io](https://matrix.to/#/#media-repo:t2bot.io)\n\nDocumentation: [docs.t2bot.io](https://docs.t2bot.io/matrix-media-repo/)\n\n## Developers\n\nMMR requires compiling at least once before it'll run in a development setting. See the [compilation steps](https://docs.t2bot.io/matrix-media-repo/unstable/installation/compile)\nbefore continuing.\n\nThis project offers a development environment you can use to test against a client and homeserver.\n\nAs a first-time setup, run:\n\n```bash\ndocker run --rm -it -v ./dev/synapse-db:/data -e SYNAPSE_SERVER_NAME=localhost -e SYNAPSE_REPORT_STATS=no matrixdotorg/synapse:latest generate\n```\n\nThen you can run `docker compose -f dev/docker-compose.yaml up` to always bring the service online. The homeserver will \nbe behind an nginx reverse proxy which routes media requests to `http://host.docker.internal:8001`. To test accurately, \nit is recommended to add the following homeserver configuration to your media repo config:\n\n```yaml\nname: \"localhost\"\ncsApi: \"http://localhost:8008\" # This is exposed by the nginx container\n```\n\nFederated media requests should function normally with this setup, though the homeserver itself will be unable to federate.\nFor convenience, an element-web instance is also hosted at the same port from the root. \n\nA postgresql server is also created by the docker stack for ease of use. To use it, add the following to your configuration:\n\n```yaml\ndatabase:\n  postgres: \"postgres://postgres:test1234@127.0.0.1:5432/postgres?sslmode=disable\"\n  pool:\n    maxConnections: 10\n    maxIdleConnections: 10\n```\n\nNote that the postgresql image is *insecure* and not recommended for production use. It also does not follow best practices\nfor database management - use at your own risk.\n\n**Note**: Running the Go tests requires Docker, and may pollute your cached images with tons of layers. It is suggested to\nclean these images up manually from time to time, or rely on an ephemeral build system instead.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft2bot%2Fmatrix-media-repo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ft2bot%2Fmatrix-media-repo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft2bot%2Fmatrix-media-repo/lists"}