Coder Social home page Coder Social logo

dillfrescott / synapse-admin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from awesome-technologies/synapse-admin

0.0 0.0 0.0 3.4 MB

Admin console for synapse Matrix homeserver

Home Page: https://awesome-technologies.github.io/synapse-admin/

License: Apache License 2.0

HTML 1.85% Dockerfile 0.40% TypeScript 97.76%

synapse-admin's Introduction

GitHub license Build Status build-test gh-pages docker-release github-release

Synapse admin ui

This project is built using react-admin.

Usage

Supported Synapse

It needs at least Synapse v1.93.0 for all functions to work as expected!

You get your server version with the request /_synapse/admin/v1/server_version. See also Synapse version API.

After entering the URL on the login page of synapse-admin the server version appears below the input field.

Prerequisites

You need access to the following endpoints:

  • /_matrix
  • /_synapse/admin

See also Synapse administration endpoints

Use without install

You can use the current version of Synapse Admin without own installation direct via GitHub Pages.

Note: If you want to use the deployment, you have to make sure that the admin endpoints (/_synapse/admin) are accessible for your browser. Remember: You have no need to expose these endpoints to the internet but to your network. If you want your own deployment, follow the Step-By-Step Install Guide below.

Step-By-Step install

You have three options:

  1. Download the tarball and serve with any webserver
  2. Download the source code from github and run using nodejs
  3. Run the Docker container

Steps for 1)

  • make sure you have a webserver installed that can serve static files (any webserver like nginx or apache will do)
  • configure a vhost for synapse admin on your webserver
  • download the .tar.gz from the latest release: https://github.com/Awesome-Technologies/synapse-admin/releases/latest
  • unpack the .tar.gz
  • move or symlink the synapse-admin-x.x.x into your vhosts root dir
  • open the url of the vhost in your browser

Steps for 2)

  • make sure you have installed the following: git, yarn, nodejs
  • download the source code: git clone https://github.com/Awesome-Technologies/synapse-admin.git
  • change into downloaded directory: cd synapse-admin
  • download dependencies: yarn install
  • start web server: yarn start

Steps for 3)

  • 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 up -d

    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.

    services:
      synapse-admin:
        container_name: synapse-admin
        hostname: synapse-admin
        build:
          context: https://github.com/Awesome-Technologies/synapse-admin.git
          args:
            - BUILDKIT_CONTEXT_KEEP_GIT_DIR=1
          #   - NODE_OPTIONS="--max_old_space_size=1024"
          #   - BASE_PATH="/synapse-admin"
        ports:
          - "8080:80"
        restart: unless-stopped
  • browse to http://localhost:8080

Restricting available homeserver

You can restrict the homeserver(s), so that the user can no longer define it himself.

Edit config.json to restrict either to a single homeserver:

{
  "restrictBaseUrl": "https://your-matrixs-erver.example.com"
}

or to a list of homeservers:

{
  "restrictBaseUrl": ["https://your-first-matrix-server.example.com", "https://your-second-matrix-server.example.com"]
}

The config.json can be injected into a Docker container using a bind mount.

services:
  synapse-admin:
    ...
    volumes:
      ./config.json:/app/config.json:ro
    ...

Serving Synapse-Admin on a different path

The path prefix where synapse-admin is served can only be changed during the build step.

If you downloaded the source code, use yarn build --base=/my-prefix to set a path prefix.

If you want to build your own Docker container, use the BASE_PATH argument.

We 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.

Example for Traefik:

docker-compose.yml

services:
  traefik:
    image: traefik:mimolette
    restart: unless-stopped
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro

  synapse-admin:
    image: awesometechnologies/synapse-admin:latest
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.synapse-admin.rule=Host(`example.com`)&&PathPrefix(`/admin`)"
      - "traefik.http.routers.synapse-admin.middlewares=admin,admin_path"
      - "traefik.http.middlewares.admin.redirectregex.regex=^(.*)/admin/?"
      - "traefik.http.middlewares.admin.redirectregex.replacement=$${1}/admin/"
      - "traefik.http.middlewares.admin_path.stripprefix.prefixes=/admin"

Screenshots

Screenshots

Development

synapse-admin's People

Contributors

awesome-manuel avatar dklimpel avatar dependabot[bot] avatar awesome-michael avatar c-cal avatar fccapria avatar dotwee avatar aaronraimist avatar candinya avatar rom4nik avatar sebix avatar wagner-intevation avatar smoehrle avatar steffospieler avatar tgurr avatar csett86 avatar rkfg avatar sakkiii avatar teutat3s avatar findus23 avatar mexhigh avatar bigbadmonster17 avatar halkeye avatar fateme-shm avatar ezwen avatar dfuchss avatar dillfrescott avatar schildbach avatar iamtakingiteasy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.