Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zoom Sucks: Riot Chat + Jitsi Video Conference Setup

Featured Replies

On 12/4/2020 at 9:49 PM, HojojojoWololo said:

Yep, the tutorial kinda works with a few adjustments. But since I had to work my way through multiple posts and other sites I would love to spare you the pains.

 

My initial setup was an unraid server running Swag (since the Letsencrypt docker wont be supported anymore in the future due to naming rights - spaceinvaderone made a great tutorial how to switch from the Letsencrypt to the Swag docker). Yinzer's tutorial for the Letsencrypt docker still seems fine, though you really should use the Swag docker instead. Furthermore, Jitsi was already up and running when I started to install Matrix (thanks to spaceinvaderone, again 😄), so I will skip that part. If you have to set up a reverse proxy (be sure to use the Swag container instead of the Letsencrypt container) or want to switch to Swag, the spaceinvaders videos are really helpful. My adjustments to @yinzer's Matrix setup:

 

Setting up Swag (formerly Letsencrypt)

 

matrix.subdomain.conf - thanks to @akamemmnon for his config

server {
	listen 443 ssl;
	listen 8448 ssl;
	
	server_name bridge.*;

	include /config/nginx/ssl.conf;
	
	client_max_body_size 0;

	location / {
		include /config/nginx/proxy.conf;
		resolver 127.0.0.11 valid=30s;
		set $upstream_app your.unraid.server.ip;
		set $upstream_port 8008;
		set $upstream_proto http;
		proxy_pass $upstream_proto://$upstream_app:$upstream_port;
		proxy_set_header X-Forwarded-For $remote_addr;
	}
	
	location /.well-known/matrix/server {
        default_type application/json;
               return 200 '{"m.server": "yourdomain.com:443"}';
             add_header Access-Control-Allow-Origin *;
	}
}

Make sure to change your.unraid.server.ip to your unraid server's IP adress and yourdomain.com to your domain name 😁

 

Since Riot was renamed to Element, there is a new container so we will use that one instead of Riot and have to adjust the Swag configuration file.

 

element-web.subdomain.conf

 server {
       listen 443 ssl;
       server_name chat.*;
       include /config/nginx/ssl.conf;
       client_max_body_size 0;

       location / {
               include /config/nginx/proxy.conf;
               resolver 127.0.0.11 valid=30s;
               set $upstream_app element-web;
               set $upstream_port 80;
               set $upstream_proto http;
               proxy_pass $upstream_proto://$upstream_app:$upstream_port;
       }
}

 

Install Matrix and configure it according to yinzer's tutorial. Adjustments:

 

Setting up Matrix

 

homeserver.yaml

 

under "listeners" in the "# Unsecure HTTP listeners: for when matrix traffic passes through a reverse proxy" section:

  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    bind_addresses: ['0.0.0.0']
    
    resources:
      - names: ['client', 'federation']

  - port: 8448
    tls: false
    type: http
    x_forwarded: true
    bind_addresses: ['0.0.0.0']
    
    resources:
      - names: ['federation']

Make sure you respect the .yaml syntax - that's what created the syntax errors of @lewisd19, @jafi and @l2evy. No tabs, just spaces! Additionally, the resource names have to be commented with inverted commas: 'text'. The examples over this section can help you with this.

 

If you use the standard SQLite database, make sure you changed the database's direction - thanks to @spyd4r for your input.

database:
  name: sqlite3
  args:
    database: /homeserver.db

SHOULD BECOME

database:
  name: sqlite3
  args:
    database: /data/homeserver.db

 

turnserver.conf

 

Delete the first line which says "lt-cred-mech" since we use "use-auth-secret". Also think about adding the pidfile and userdb infos yinzer posted in his tutorial. My turnserver.conf looks like this:

use-auth-secret
static-auth-secret=YOUR-STATIC-AUTH-SECRET
realm=turn.bridge.yourdomain.com
cert=/data/bridge.yourdomain.com.tls.crt
pkey=/data/bridge.yourdomain.com.tls.key
dh-file=/data/bridge.yourdomain.com.tls.dh
cipher-list="HIGH"
pidfile=/data/turnserver.pid
userdb=/data/turnserver.db

 

Setting up Element-Web (based on @yinzer's tutorial for Riot Chat)

 

1. Before we start, we need to manually create the config path and pull in the default config. So open the terminal/SSH to your server.

2. Create the config path by executing

mkdir -p /mnt/user/appdata/element-web/config

3. Download the default config by executing

wget -O /mnt/user/appdata/element-web/config/config.json https://raw.githubusercontent.com/vector-im/element-web/develop/element.io/app/config.json

4. In Community Applications, search for `element-web' by vectorim
5. Set the `Network Type` to `Custom: ssl proxy`
6. Set the `Fixed IP address` to `172.20.0.20` (or whatever)
7. The rest of the settings should be fine. Create the container and run it.

 

Now lets edit our Element config. It's a JSON file, so make sure you respect JSON syntax


1. Edit  /mnt/user/appdata/riot-web/config/config.json

2. Change 'default_server_name' to

"default_server_name": "bridge.yourdomain.com",

3. Insert your domain to the 'roomDirectory'

"roomDirectory": {
        "servers": [
            "bridge.yourdomain.com",
            "matrix.org",
            "gitter.im"
        ]
    }

4. Add the following lines in the config:

{
  "jitsi": {
    "preferredDomain": "meet.yourdomain.com"
  }
},

 

Caution: Using a Jitsi server with enabled authentification doesn't work with Element! And this should also be noticed:

 

 

Jitsi Setup

 

Just follow spaceinvaderone's instructions in this video.

 

But for setting up a working Matrix synapse and the Element-web container, that should be it. @yinzer Feel free to update your initial post with this adjustments 😃

Hello can I use nginx proxy manager other than swag? And if so how thank you!

  • Replies 104
  • Views 39.5k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Nice catch! I'm a Unifi users as well, but my controller runs on the USG. The Matrix container config does give you the option to reassign the STUN ports, so you can give that a shot and reflect the s

  • That's a great question, and being kinda new to docker-composer, I'm not quite sure yet since i haven't had it up long enough to need to worry about that yet. When you bring up the containers with doc

  • Thanks! If you need to get in touch with the support team via Riot, you can connect directly to their main matrix server using their Riot install https://riot.im/app/ I just tested creating a mat

Posted Images

Can I use nginx proxy manager other than Swag for this and how ? Thank you!!

  • 2 months later...
On 10/16/2022 at 9:23 PM, Tweak91 said:

Hello can I use nginx proxy manager other than swag? And if so how thank you!

Actually, I have no clue since I have not tried that and because I stopped using Matrix/Element, I won't try it any time soon. Sorry :)

  • 5 months later...

Hello. My Matrix has e Problem sins newest Update v1.86.0. It wont start. Have antibody a idea whats can be?

 

Log:

2023-06-25 17:13:20,255 - root - 348 - WARNING - main - ***** STARTING SERVER *****
2023-06-25 17:13:20,255 - root - 349 - WARNING - main - Server /matrix/venv/lib/python3.11/site-packages/synapse/app/homeserver.py version 1.86.0
2023-06-25 17:13:20,255 - root - 354 - INFO - main - Server hostname: bridge.mbasler.ch
2023-06-25 17:13:20,255 - root - 355 - INFO - main - Instance name: master
2023-06-25 17:13:20,255 - root - 356 - INFO - main - Twisted reactor: EPollReactor
2023-06-25 17:13:20,255 - synapse.app.homeserver - 349 - INFO - main - Setting up server
2023-06-25 17:13:20,255 - synapse.server - 337 - INFO - main - Setting up.
2023-06-25 17:13:20,261 - synapse.storage.databases - 66 - INFO - main - [database config 'master']: Checking database server
2023-06-25 17:13:20,261 - synapse.storage.databases - 69 - INFO - main - [database config 'master']: Preparing for databases ['main', 'state']
2023-06-25 17:13:20,261 - synapse.storage.prepare_database - 120 - INFO - main - ['main', 'state']: Checking existing schema version
2023-06-25 17:13:20,262 - synapse.storage.prepare_database - 124 - INFO - main - ['main', 'state']: Existing schema is 77 (+5 deltas)
2023-06-25 17:13:20,262 - synapse.storage.databases.main - 288 - INFO - main - Checking database for consistency with configuration...
2023-06-25 17:13:20,264 - synapse.storage.prepare_database - 418 - INFO - main - Applying schema deltas for v77
2023-06-25 17:13:20,264 - synapse.storage.prepare_database - 418 - INFO - main - Applying schema deltas for v78
2023-06-25 17:13:20,265 - synapse.storage.prepare_database - 513 - INFO - main - Running 78/01_validate_and_update_profiles.py:run_upgrade
2023-06-25 17:13:20,278 - synapse.storage.prepare_database - 513 - INFO - main - Running 78/02_validate_and_update_user_filters.py:run_upgrade
2023-06-25 17:13:20,279 - synapse.app._base - 215 - ERROR - main - Exception during startup
Traceback (most recent call last):
  File "/matrix/venv/lib/python3.11/site-packages/synapse/app/homeserver.py", line 352, in setup
    hs.setup()
  File "/matrix/venv/lib/python3.11/site-packages/synapse/server.py", line 339, in setup
    self.datastores = Databases(self.DATASTORE_CLASS, self)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/matrix/venv/lib/python3.11/site-packages/synapse/storage/databases/__init__.py", line 74, in __init__
    prepare_database(
  File "/matrix/venv/lib/python3.11/site-packages/synapse/storage/prepare_database.py", line 141, in prepare_database
    _upgrade_existing_database(
  File "/matrix/venv/lib/python3.11/site-packages/synapse/storage/prepare_database.py", line 514, in _upgrade_existing_database
    module.run_upgrade(cur, database_engine, config=config)
  File "/matrix/venv/lib/python3.11/site-packages/synapse/storage/schema/main/delta/78/02_validate_and_update_user_filters.py", line 85, in run_upgrade
    cur.execute(copy_sql, (f"{hostname}",))
  File "/matrix/venv/lib/python3.11/site-packages/synapse/storage/database.py", line 417, in execute
    self._do_execute(self.txn.execute, sql, parameters)
  File "/matrix/venv/lib/python3.11/site-packages/synapse/storage/database.py", line 469, in _do_execute
    return func(sql, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.IntegrityError: UNIQUE constraint failed: temp_user_filters.user_id

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.