Online open-source workplace for distributed teams.
The objective of #matrix project is to offer a virtual environment office, as nice as physical offices. When we are working in a physical office is very common entering in discussion threads in many different environments, for example: on coffee, on lunch and others.
When we are working remotely there are no conversations like in a physical office. The #matrix project was born as a proposal to better that experience. The idea is to create a lot of virtual rooms where people can see and enter these rooms to participate.
#matrix produces a virtual office for remote teams. In this project, you can run a virtual office to simulate the physical environment. Read more on this post in Medium.
The login is so simple. You only need to create a google client id and configure the environment variable GOOGLE_CREDENTIAL=xxxxxxxxxxx.apps.googleusercontent.com
. Follow this step by step to configure your own google client key.
Login | Login in Dark Mode |
---|---|
The inside of #matrix there are some rooms. In this rooms is possible to see others colleagues and if they are talking or in a meeting in the avatar will appear a head set icon. (eg. In the image the guys in the Platform-Email room are in a meeting)
Office Page | With Sidebar |
---|---|
You can only enter in a room to show for the other that you are available there through the ENTER ROOM
button or enter in a meeting through the button ENTER MEETING
.
Meeting Room | With Sidebar |
---|---|
If you want run the #matrix, you need follow steps:
-
We are using Google to authorizations, you need create a credential here you can follow step by step
-
Run application with docker compose:
$ docker-compose up
-
Open your browser and access:
http://localhost:8080/
-
When you finish, you can run:
$ docker-compose down
If you prefer, you can run #matrix on GCP:
If you prefer, you can run #matrix in Heroku:
The #matrix project has some environments that important to define.
-
We are using Google to authorizations, you need create a credential here and before define this:
GOOGLE_CREDENTIAL=${paste_your_credention_here}
-
If you are running with ssl It's important to configure SSL, to define this:
ENFORCE_SSL=true
-
The #matrix needs to know, where it get rooms definitions:
ROOMS_SOURCE=ENVIRONMENT
-
There is a config that define the rooms of The #matrix, if you prefer you can generate the unique id per room here, to define this:
ROOMS_DATA=[ { "id":"${UUID}", "name":"Lounge", "disableMeeting":true }, { "id":"${UUID}", "name":"WAR ROOM CDP" }, { "id":"${UUID}", "name":"Data Services", "externalMeetUrl": "https://external-url-room/key-room" } ]
The default video conferencing in meetings is Jitsi, but you can change that in any room, using Meet or Zoom. For that, you just need provide the parameter externalMeetUrl
in your room config:
ROOMS_DATA=[
{
"id":"${UUID}",
"name":"Meeting External",
"externalMeetUrl": "https://external-url-room/key-room"
}
]
If you will run in production we strongly recomend to you close your environmen using an internal VPN. In this solution everybody with the link and a valid google credential can enter in your virtual office. Because of this is important to you mantain your environment closed. Or you can help us implementing to define a whitelist domains with environment variable.
We encourage you to contribute to The #matrix!
Everyone interacting in #matrix codebase, issue trackers, chat rooms, and mailing lists is expected to follow code of conduct.
The #matrix is released under the MIT License
"The answer is out there, Neo, and it's looking for you, and it will find you if you want it to."