Skip to content

Latest commit

 

History

History
139 lines (100 loc) · 3.25 KB

File metadata and controls

139 lines (100 loc) · 3.25 KB
  1. Set Up Matrix Infrastructure Matrix Homeserver Set up a Matrix homeserver using one of:

Synapse Dendrite Conduit

Element Server Suite

Deploy Element Server Suite using the Helm charts:

helm repo add element https://element-hq.github.io/ess-helm helm install element-server element/element-server-suite

Element Call

Deploy Element Call for video calling:

Using Docker

docker run -p 8080:8080 vectorim/element-call

Or build from source

git clone https://github.com/element-hq/element-call cd element-call npm install npm run build npm start

Configure the App

Go to Settings → Administration → Nextcloud Chat Configure your Matrix server URL and credentials Set up Element Web and Element Call URLs Test the connections Save the configuration

Configuration

Matrix Server Configuration

Matrix Server URL: Your Matrix homeserver URL (e.g., https://matrix.example.com) Matrix Server Name: Your server's domain name (e.g., matrix.example.com) Application Service Token: Token for Matrix application service authentication Identity Server URL: Optional identity server for user discovery

Element Configuration

Element Web URL: Your Element Web instance URL Element Call URL: Your Element Call instance URL Features: Enable/disable E2EE, federation, presence, etc. Call Settings: Participant limits and calling preferences

Development

Development Setup

Clone the repository

git clone cd nextcloud_chat

Install dependencies

composer install npm install

Start development server

npm run dev

Watch for changes

npm run watch

Building for Production

Build optimized assets

npm run build

Create distribution package

make dist

Architecture

Backend (PHP)

Controllers: Handle HTTP requests and API endpoints Services: Business logic for Matrix and Element integration Settings: Admin configuration interface

Frontend (Vue 3)

Components: Reusable UI components for chat, calls, and settings Views: Main application views (Chat, Call, Settings) Store: Vuex store for state management Router: Vue Router for navigation

Integration

Matrix SDK: Direct Matrix protocol integration using matrix-js-sdk Element Web: Embedded as iframe with custom configuration Element Call: Integrated as widget for video calling Nextcloud APIs: Deep integration with Nextcloud platform

API Endpoints

Room Management

GET /api/rooms - Get user's rooms POST /api/rooms - Create a new room POST /api/rooms/{roomId}/join - Join a room POST /api/rooms/{roomId}/leave - Leave a room

Call Management

POST /api/rooms/{roomId}/call - Start a call DELETE /api/rooms/{roomId}/call - End a call

Configuration

GET /api/config - Get app configuration GET /api/matrix/config - Get Matrix configuration PUT /api/element/config - Update Element configuration

Contributing

Fork the repository Create a feature branch Make your changes Add tests if applicable Submit a pull request

License This project is licensed under the AGPL-3.0 License - see the LICENSE file for details. Support

Documentation: Matrix Protocol Docs Element Docs: Element Documentation Issues: GitHub Issues Community: Nextcloud Community

Acknowledgments

Matrix.org for the Matrix protocol Element for Element Web and Element Call Nextcloud for the platform All contributors to the open source ecosystem