- Set Up Matrix Infrastructure Matrix Homeserver Set up a Matrix homeserver using one of:
Synapse Dendrite Conduit
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
Deploy Element Call for video calling:
docker run -p 8080:8080 vectorim/element-call
git clone https://github.com/element-hq/element-call cd element-call npm install npm run build npm start
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
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 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 Setup
git clone cd nextcloud_chat
composer install npm install
npm run dev
npm run watch
npm run build
make dist
Controllers: Handle HTTP requests and API endpoints Services: Business logic for Matrix and Element integration Settings: Admin configuration interface
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
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
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
POST /api/rooms/{roomId}/call - Start a call DELETE /api/rooms/{roomId}/call - End a call
GET /api/config - Get app configuration GET /api/matrix/config - Get Matrix configuration PUT /api/element/config - Update Element configuration
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