{"id":13788440,"url":"https://awesome-technologies.github.io/synapse-admin/","last_synced_at":"2025-05-12T02:33:23.370Z","repository":{"id":39172524,"uuid":"181942690","full_name":"Awesome-Technologies/synapse-admin","owner":"Awesome-Technologies","description":"Admin console for synapse Matrix homeserver","archived":false,"fork":false,"pushed_at":"2024-05-15T07:32:12.000Z","size":39000,"stargazers_count":740,"open_issues_count":58,"forks_count":119,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-05-20T00:01:50.510Z","etag":null,"topics":["matrix-org","react","react-admin","synapse-admin"],"latest_commit_sha":null,"homepage":"https://awesome-technologies.github.io/synapse-admin/","language":"TypeScript","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/Awesome-Technologies.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-04-17T17:57:16.000Z","updated_at":"2024-05-29T06:24:15.556Z","dependencies_parsed_at":"2024-01-13T09:35:14.383Z","dependency_job_id":"ad02c371-2bcd-4000-b8ba-aa8f713f7137","html_url":"https://github.com/Awesome-Technologies/synapse-admin","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Awesome-Technologies%2Fsynapse-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Awesome-Technologies%2Fsynapse-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Awesome-Technologies%2Fsynapse-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Awesome-Technologies%2Fsynapse-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Awesome-Technologies","download_url":"https://codeload.github.com/Awesome-Technologies/synapse-admin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225116975,"owners_count":17423313,"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":["matrix-org","react","react-admin","synapse-admin"],"created_at":"2024-08-03T21:00:46.435Z","updated_at":"2024-11-18T02:30:56.738Z","avatar_url":"https://github.com/Awesome-Technologies.png","language":"TypeScript","funding_links":[],"categories":["Usage"],"sub_categories":["Use without install"],"readme":"[![GitHub license](https://img.shields.io/github/license/Awesome-Technologies/synapse-admin)](https://github.com/Awesome-Technologies/synapse-admin/blob/master/LICENSE)\n[![Build Status](https://api.travis-ci.com/Awesome-Technologies/synapse-admin.svg?branch=master)](https://app.travis-ci.com/github/Awesome-Technologies/synapse-admin)\n[![build-test](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/build-test.yml/badge.svg)](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/build-test.yml)\n[![gh-pages](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/edge_ghpage.yml/badge.svg)](https://awesome-technologies.github.io/synapse-admin/)\n[![docker-release](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/docker-release.yml/badge.svg)](https://hub.docker.com/r/awesometechnologies/synapse-admin)\n[![github-release](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/github-release.yml/badge.svg)](https://github.com/Awesome-Technologies/synapse-admin/releases)\n\n# Synapse admin ui\n\nThis project is built using [react-admin](https://marmelab.com/react-admin/).\n\n## Usage\n\n### Supported Synapse\n\nIt needs at least [Synapse](https://github.com/element-hq/synapse) v1.93.0 for all functions to work as expected!\n\nYou get your server version with the request `/_synapse/admin/v1/server_version`.\nSee also [Synapse version API](https://element-hq.github.io/synapse/latest/admin_api/version_api.html).\n\nAfter entering the URL on the login page of synapse-admin the server version appears below the input field.\n\n### Prerequisites\n\nYou need access to the following endpoints:\n\n- `/_matrix`\n- `/_synapse/admin`\n\nSee also [Synapse administration endpoints](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints)\n\n### Use without install\n\nYou can use the current version of Synapse Admin without own installation direct\nvia [GitHub Pages](https://awesome-technologies.github.io/synapse-admin/).\n\n**Note:**\nIf you want to use the deployment, you have to make sure that the admin endpoints (`/_synapse/admin`) are accessible for your browser.\n**Remember: You have no need to expose these endpoints to the internet but to your network.**\nIf you want your own deployment, follow the [Step-By-Step Install Guide](#step-by-step-install) below.\n\n### Step-By-Step install\n\nYou have three options:\n\n1.  [Download the tarball and serve with any webserver](#steps-for-1)\n2.  [Download the source code from github and run using nodejs](#steps-for-2)\n3.  [Run the Docker container](#steps-for-3)\n\n#### Steps for 1)\n\n- make sure you have a webserver installed that can serve static files (any webserver like nginx or apache will do)\n- configure a vhost for synapse admin on your webserver\n- download the .tar.gz from the latest release: https://github.com/Awesome-Technologies/synapse-admin/releases/latest\n- unpack the .tar.gz\n- move or symlink the `synapse-admin-x.x.x` into your vhosts root dir\n- open the url of the vhost in your browser\n\n#### Steps for 2)\n\n- make sure you have installed the following: git, yarn, nodejs\n- download the source code: `git clone https://github.com/Awesome-Technologies/synapse-admin.git`\n- change into downloaded directory: `cd synapse-admin`\n- download dependencies: `yarn install`\n- start web server: `yarn start`\n\n#### Steps for 3)\n\n- run the Docker container from the public docker registry: `docker run -p 8080:80 awesometechnologies/synapse-admin` or use the [docker-compose.yml](docker-compose.yml): `docker-compose up -d`\n\n  \u003e note: if you're building on an architecture other than amd64 (for example a raspberry pi), make sure to define a maximum ram for node. otherwise the build will fail.\n\n  ```yml\n  services:\n    synapse-admin:\n      container_name: synapse-admin\n      hostname: synapse-admin\n      build:\n        context: https://github.com/Awesome-Technologies/synapse-admin.git\n        args:\n          - BUILDKIT_CONTEXT_KEEP_GIT_DIR=1\n        #   - NODE_OPTIONS=\"--max_old_space_size=1024\"\n        #   - BASE_PATH=\"/synapse-admin\"\n      ports:\n        - \"8080:80\"\n      restart: unless-stopped\n  ```\n\n- browse to http://localhost:8080\n\n### Restricting available homeserver\n\nYou can restrict the homeserver(s), so that the user can no longer define it himself.\n\nEdit `config.json` to restrict either to a single homeserver:\n\n```json\n{\n  \"restrictBaseUrl\": \"https://your-matrixs-erver.example.com\"\n}\n```\n\nor to a list of homeservers:\n\n```json\n{\n  \"restrictBaseUrl\": [\"https://your-first-matrix-server.example.com\", \"https://your-second-matrix-server.example.com\"]\n}\n```\n\nThe `config.json` can be injected into a Docker container using a bind mount.\n\n```yml\nservices:\n  synapse-admin:\n    ...\n    volumes:\n      ./config.json:/app/config.json:ro\n    ...\n```\n\n### Serving Synapse-Admin on a different path\n\nThe path prefix where synapse-admin is served can only be changed during the build step.\n\nIf you downloaded the source code, use `yarn build --base=/my-prefix` to set a path prefix.\n\nIf you want to build your own Docker container, use the `BASE_PATH` argument.\n\nWe do not support directly changing the path where Synapse-Admin is served in the pre-built Docker container. Instead please use a reverse proxy if you need to move Synapse-Admin to a different base path. If you want to serve multiple applications with different paths on the same domain, you need a reverse proxy anyway.\n\nExample for Traefik:\n\n`docker-compose.yml`\n\n```yml\nservices:\n  traefik:\n    image: traefik:mimolette\n    restart: unless-stopped\n    ports:\n      - 80:80\n      - 443:443\n    volumes:\n      - /var/run/docker.sock:/var/run/docker.sock:ro\n\n  synapse-admin:\n    image: awesometechnologies/synapse-admin:latest\n    restart: unless-stopped\n    labels:\n      - \"traefik.enable=true\"\n      - \"traefik.http.routers.synapse-admin.rule=Host(`example.com`)\u0026\u0026PathPrefix(`/admin`)\"\n      - \"traefik.http.routers.synapse-admin.middlewares=admin,admin_path\"\n      - \"traefik.http.middlewares.admin.redirectregex.regex=^(.*)/admin/?\"\n      - \"traefik.http.middlewares.admin.redirectregex.replacement=$${1}/admin/\"\n      - \"traefik.http.middlewares.admin_path.stripprefix.prefixes=/admin\"\n```\n\n## Screenshots\n\n![Screenshots](./screenshots.jpg)\n\n## Development\n\n- See https://yarnpkg.com/getting-started/editor-sdks how to setup your IDE\n- Use `yarn lint` to run all style and linter checks\n- Use `yarn test` to run all unit tests\n- Use `yarn fix` to fix the coding style\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/awesome-technologies.github.io%2Fsynapse-admin%2F","html_url":"https://awesome.ecosyste.ms/projects/awesome-technologies.github.io%2Fsynapse-admin%2F","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/awesome-technologies.github.io%2Fsynapse-admin%2F/lists"}