{"id":22741818,"url":"https://github.com/t2bot/matrix-key-server","last_synced_at":"2025-04-14T07:22:46.741Z","repository":{"id":82642259,"uuid":"199206314","full_name":"t2bot/matrix-key-server","owner":"t2bot","description":"Implementation of a key server for Matrix","archived":false,"fork":false,"pushed_at":"2023-08-20T02:56:39.000Z","size":65,"stargazers_count":7,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T21:05:30.504Z","etag":null,"topics":["keys","keyserver","matrix","matrixdotorg","notary"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/t2bot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-27T19:35:33.000Z","updated_at":"2024-11-12T21:35:53.000Z","dependencies_parsed_at":"2024-06-21T19:15:47.197Z","dependency_job_id":"4a7857ff-5673-40c0-b1c3-70e804d2ee8f","html_url":"https://github.com/t2bot/matrix-key-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t2bot%2Fmatrix-key-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t2bot%2Fmatrix-key-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t2bot%2Fmatrix-key-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t2bot%2Fmatrix-key-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/t2bot","download_url":"https://codeload.github.com/t2bot/matrix-key-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837441,"owners_count":21169433,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["keys","keyserver","matrix","matrixdotorg","notary"],"created_at":"2024-12-11T00:18:03.630Z","updated_at":"2025-04-14T07:22:46.711Z","avatar_url":"https://github.com/t2bot.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# matrix-key-server\n\nImplementation of a key server for Matrix.\n\nSupport room: [#matrix-key-server:t2bot.io](https://matrix.to/#/#matrix-key-server:t2bot.io)\n\n**Caution**: Although this has notary server functionality, it is not yet recommended to point Synapse at this. It has not been tested - use at your own risk.\n\nDemo: [https://federationtester.matrix.org#keys.t2host.io](https://federationtester.matrix.org#keys.t2host.io)\n\n## Building and running\n\nThe key server will automatically generate itself a key to use on startup. The process is meant to be run \nonly attached to a postgres instance and does not have any on-disk requirements other than the executable \nitself.\n\nThis project uses Go modules and requires Go 1.20 or higher.\n\n```bash\n# Build\ngit clone https://github.com/t2bot/matrix-key-server.git\ncd matrix-key-server\ngo build -v -o bin/matrix-key-server\n\n# Run\n./bin/matrix-key-server -address=\"0.0.0.0\" -port=8080 -domain=\"keys.t2host.io\" -postgres=\"postgres://username:password@localhost/dbname?sslmode=disable\"\n```\n\n#### Docker\n\n```bash\ndocker run -it --rm -e \"ADDRESS=0.0.0.0\" -e \"PORT=8080\" -e \"DOMAIN=keys.t2host.io\" -e \"POSTGRES=postgres://username:password@localhost/dbname?sslmode=disable\" t2bot/matrix-key-server\n```\n\nBuild your own by checking out the repository and running `docker build -t t2bot/matrix-key-server .`\n\n## Custom APIs\n\nThe key server exposes some custom APIs which may aide the development of homeservers or Matrix services.\n\n#### `POST /_matrix/key/unstable/check_auth`\n\nVerifies an auth header according to the Matrix specification. The `Authorization` header is passed through\nand the remaining headers shown here demonstrate the additional information the key server needs. The content\nfor the API call is sent as the request body to this call.\n\n**Caution**: Trusting this endpoint can be bad if you don't trust the key server. You should always do your own\nauth wherever possible.\n\n**Example request**:\n```\nPOST /_matrix/key/unstable/check_auth\nAuthorization: X-Matrix origin=\"example.org\",key=\"ed25519:auto\",sig=\"ABCDEF...\"\nX-Keys-Method: GET\nX-Keys-URI: /_matrix/federation/v1/publicRooms?include_all_networks=false\u0026limit=20\nX-Keys-Destination: dest.example.org\n\n{... request body ...}\n```\n\nIf the response is a `200 OK`, the server is authorized. All other responses should be considered unauthorized.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft2bot%2Fmatrix-key-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ft2bot%2Fmatrix-key-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft2bot%2Fmatrix-key-server/lists"}