pixlwave / matrix-authentication-service

Matrix authentication service for MSC2964 & co. (WIP)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OAuth 2.0 authentication server for Matrix

This is an attempt to implement an OAuth 2.0 and OpenID Connect authentication server for Matrix, following MSC2964. Don't expect too much here for now, this is very much a work in progress.

See the Documentation for information on installation and use.

Running

  • Install Rust and Cargo
  • Install Node.js and npm
  • Install Open Policy Agent
  • Clone this repository
  • Build the frontend
    cd frontend
    npm ci
    npm run build
    cd ..
  • Build the Open Policy Agent policies
    cd policies
    make
    # OR, if you don't have `opa` installed and want to build through the OPA docker image
    make DOCKER=1
    cd ..
  • Generate the sample config via cargo run -- config generate > config.yaml
  • Run a PostgreSQL database locally
    docker run -p 5432:5432 -e 'POSTGRES_USER=postgres' -e 'POSTGRES_PASSWORD=postgres' -e 'POSTGRES_DATABASE=postgres' postgres
  • Update the database URI in config.yaml to postgresql://postgres:postgres@localhost/postgres
  • Run the database migrations via cargo run -- database migrate
  • Run the server via cargo run -- server -c config.yaml
  • Go to http://localhost:8080/

About

Matrix authentication service for MSC2964 & co. (WIP)

License:Apache License 2.0


Languages

Language:Rust 88.8%Language:TypeScript 6.5%Language:HTML 2.2%Language:Open Policy Agent 1.1%Language:PLpgSQL 0.4%Language:JavaScript 0.3%Language:Dockerfile 0.3%Language:Python 0.2%Language:Shell 0.1%Language:Makefile 0.0%Language:CSS 0.0%Language:HCL 0.0%