ORISO Dokumentation
Deployment

Deploy Matrix Communication

Deploy Matrix Synapse server, Element.io web client, and Discovery service for chat functionality

Deploy Matrix Communication

Deploy Matrix Synapse server, Element.io web client, and Discovery service for real-time chat and video calls. Matrix is deployed via Helm as part of the oriso-platform umbrella chart.

Matrix components are automatically deployed when you run helm install oriso-platform. This guide covers post-deployment configuration and verification.

Matrix should already be deployed via Helm. Verify all components are running.

# Check Matrix pods
kubectl get pods -n caritas | grep -E "matrix|element"

# Should see:
# oriso-platform-matrix-synapse-xxx    1/1     Running
# oriso-platform-matrix-discovery-xxx  1/1     Running
# oriso-platform-element-xxx            1/1     Running (if deployed)

All Matrix-related pods should show status Running and 1/1 ready.

If Matrix pods are not running, check the Helm deployment:

helm status oriso-platform -n caritas
kubectl logs -n caritas -l app=matrix-synapse --tail=50

If this is a fresh deployment, initialize the Matrix PostgreSQL database.

# Check PostgreSQL pod
kubectl get pods -n caritas | grep postgres

# Get Matrix PostgreSQL pod
MATRIX_PG_POD=$(kubectl get pods -n caritas -l app=matrix-postgres -o jsonpath="{.items[0].metadata.name}")

# Import schema (if not already done)
cd ~/online-beratung/caritas-workspace/ORISO-Matrix
kubectl exec -i -n caritas $MATRIX_PG_POD -- \
  psql -U synapse_user synapse < database/matrix-schema-current.sql

# Verify tables
kubectl exec -it -n caritas $MATRIX_PG_POD -- \
  psql -U synapse_user synapse -c "\dt" | head -20

Matrix tables should be created (users, rooms, events, devices, etc.).

Verify Matrix services are operational.

# Check Matrix Synapse API (internal)
kubectl exec -n caritas deployment/oriso-platform-matrix-synapse -- \
  curl -s http://localhost:8008/_matrix/client/versions

# Check Matrix Synapse API (via Ingress)
curl -s https://matrix.oriso.org/_matrix/client/versions

# Check Discovery service
curl -s http://91.99.219.182/.well-known/matrix/server

# Check Element.io (if deployed)
curl -I https://element.oriso.org
  • Matrix Synapse should return JSON with version information
  • Discovery service should return server configuration
  • Element.io should return HTTP 200 OK

Configure backend and frontend to use Matrix.

Backend Configuration (UserService):

Matrix integration is configured in UserService. Verify configuration:

# Check UserService environment variables
kubectl get deployment oriso-platform-userservice -n caritas -o yaml | \
  grep -A 5 MATRIX

# Expected:
# - name: MATRIX_SYNAPSE_URL
#   value: http://oriso-platform-matrix-synapse.caritas.svc.cluster.local:8008
# - name: MATRIX_SERVER_NAME
#   value: caritas.local

Frontend Configuration:

Frontend Matrix configuration is baked into the Docker image at build time. Verify in .env:

cd ~/online-beratung/caritas-workspace/ORISO-Frontend
cat .env | grep MATRIX

Matrix Components

Matrix Synapse

  • Service: oriso-platform-matrix-synapse.caritas.svc.cluster.local:8008
  • External: https://matrix.oriso.org
  • Database: PostgreSQL (synapse database)
  • Purpose: Matrix homeserver for chat

Matrix Discovery Service

  • Service: oriso-platform-matrix-discovery
  • External: http://91.99.219.182/.well-known/matrix/server
  • Purpose: Federation discovery

Element.io (Optional)

  • Service: oriso-platform-element
  • External: https://element.oriso.org or http://91.99.219.182:8087
  • Purpose: Web client for Matrix

Integration Details

Backend Integration

UserService creates Matrix users and rooms:

  • User registration → Matrix account creation
  • Consultant assignment → Matrix room creation
  • Credentials stored in MariaDB user table

Frontend Integration

Frontend uses Matrix JS SDK:

  • Real-time messaging
  • WebRTC calls via LiveKit
  • Event synchronization

Troubleshooting

Matrix Synapse Not Starting

# Check logs
kubectl logs -n caritas -l app=matrix-synapse --tail=100

# Check database connection
kubectl exec -n caritas deployment/oriso-platform-matrix-synapse -- \
  env | grep DATABASE

# Verify PostgreSQL is accessible
kubectl exec -n caritas deployment/oriso-platform-matrix-synapse -- \
  curl http://oriso-platform-postgresql.caritas.svc.cluster.local:5432

Database Connection Issues

# Check PostgreSQL pod
kubectl get pods -n caritas | grep postgres

# Test connection
kubectl exec -it -n caritas deployment/oriso-platform-postgresql -- \
  psql -U synapse_user synapse -c "SELECT 1;"

Federation Not Working

# Check discovery service
kubectl logs -n caritas -l app=matrix-discovery

# Test well-known endpoint
curl http://91.99.219.182/.well-known/matrix/server

# Check federation API
curl http://91.99.219.182:8009/_matrix/federation/v1/version

Next Steps

Auf dieser Seite