My friends are open to leaving Discord which has finally given me a reason to look into Element/Matrix. I found the install instructions and am immediately put off. Is this it? No official docker compose? 😞

  • vane@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    2 days ago

    If you’re proficient it’s 30minutes

    Something like this for server.

    generate config

    docker run -it --rm \
        -v <your-data-path>:/data \
        -e SYNAPSE_SERVER_NAME=<your-public-address-subdomain> \
        -e SYNAPSE_REPORT_STATS=no \
        matrixdotorg/synapse:v1.136.0 generate
    

    run

    docker run -d \
      --restart=always \
      --name synapse \
      -e SYNAPSE_REPORT_STATS=no \
      -v <your-data-path>:/data \
      -p 8008:8008 matrixdotorg/synapse:v1.136.0
    

    register user

    docker exec -ti synapse register_new_matrix_user http://localhost:8008/ -c /data/homeserver.yaml -u <username> -p <password> --exists-ok
    

    Proxy it using ex. openresty / nginx

    location / {
            proxy_pass    http://127.0.0.1:8008/;
            proxy_http_version 1.1;
            proxy_set_header    Upgrade         $http_upgrade;
            proxy_set_header    Connection      "upgrade";
            proxy_set_header    Host            $host;
            proxy_set_header    X-Real-IP       $remote_addr;
            proxy_set_header    X-Forwarded-for $remote_addr;
            proxy_connect_timeout 600;
            proxy_read_timeout 86400;
        }
    

    For UI if you want element on your domain, download and unpack tar.gz from.
    https://github.com/element-hq/element-web/releases

    Point this location to your proxy server ex. openresty / nginx

    location / {
            root /opt/element-v1.11.109;
            index index.html;
        }
    

    Modify config.json inside /opt/element-v1.11.109 to point location to <your-public-address-subdomain>

    By default it’s using sqlite if you want postgres or other database then modify homeserver.yaml to use postgres

    • captcha_incorrect@lemmy.world
      link
      fedilink
      English
      arrow-up
      8
      ·
      2 days ago

      If you like compose files: https://www.composerize.com/

      docker run -it --rm -v <your-data-path>:/data -e SYNAPSE_SERVER_NAME=<your-public-address-subdomain> -e SYNAPSE_REPORT_STATS=no matrixdotorg/synapse:v1.136.0 generate:

      name: <your project name>
      services:
          synapse:
              stdin_open: true
              tty: true
              volumes:
                  - <your-data-path>:/data
              environment:
                  - SYNAPSE_SERVER_NAME=<your-public-address-subdomain>
                  - SYNAPSE_REPORT_STATS=no
              image: matrixdotorg/synapse:v1.136.0
              command: generate
      

      docker run -d --restart=always --name synapse -e SYNAPSE_REPORT_STATS=no -v <your-data-path>:/data -p 8008:8008 matrixdotorg/synapse:v1.136.0:

      name: <your project name>
      services:
          synapse:
              restart: always
              container_name: synapse
              environment:
                  - SYNAPSE_REPORT_STATS=no
              volumes:
                  - <your-data-path>:/data
              ports:
                  - 8008:8008
              image: matrixdotorg/synapse:v1.136.0
      
      
          • vane@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            12 hours ago

            I have a git repo with some directory convention and bash scripts. Ex stop is just

            #!/bin/bash
            name=synapse
            docker stop $name
            docker rm $name
            

            etc. depending on what actions I need to do against container I have bash script for that and if I need to perform same action against other container I just copy paste this file and change name variable. I pull this repo to my containers host and just type ./bin/synapse/stop and I stop synapse.

            Hope that makes sense.